[Java] 자료형

2024. 10. 15. 22:28·☕ Java

Java의 자료형에 대한 이해

Java에는 다양한 자료형(data type)이 있으며, 이를 통해 메모리 사용의 효율성을 높이고 프로그램의 성능을 최적화할 수 있습니다. 자바의 자료형은 크게 정수 타입, 실수 타입, 논리 타입, 문자 타입, 문자열 타입으로 나눌 수 있습니다.

자료형의 종류

1. 정수 타입 (Integer Types)

정수 타입은 소수점 이하의 값을 가지지 않는 정수를 저장하는 데 사용됩니다. 자바가 제공하는 정수 타입의 종류는 다음과 같습니다:

  • byte: 8비트(1바이트) 크기로, -128부터 127까지의 정수 값을 저장할 수 있습니다. 작은 데이터를 저장하는 데 사용되며 메모리를 절약할 수 있습니다.
  • short: 16비트(2바이트) 크기로, -32,768부터 32,767까지의 정수 값을 저장합니다. byte보다 큰 범위를 다룰 때 사용됩니다.
  • int: 32비트(4바이트) 크기로, -2,147,483,648부터 2,147,483,647까지의 정수 값을 저장할 수 있습니다. 일반적인 정수 연산에 가장 널리 사용됩니다.
  • long: 64비트(8바이트) 크기로, 매우 큰 정수 값을 저장할 수 있습니다. -9,223,372,036,854,775,808부터 9,223,372,036,854,775,807까지의 값을 다룰 때 사용됩니다.

2. 실수 타입 (Floating-Point Types)

실수 타입은 소수점을 포함하는 숫자를 저장하는 데 사용되며, 과학적 계산이나 그래픽 처리 등에서 정밀한 계산이 필요할 때 사용됩니다. 자바가 제공하는 실수 타입의 종류는 다음과 같습니다:

  • float: 32비트(4바이트) 크기로, -3.4 * 10^38부터 3.4 * 10^38까지의 실수 값을 저장할 수 있습니다. 작은 데이터를 저장할 때 주로 사용되며, 메모리를 절약할 수 있습니다.
  • double: 64비트(8바이트) 크기로, -1.8 * 10^308부터 1.8 * 10^308까지의 실수 값을 저장합니다. 일반적으로 float보다 큰 범위의 실수를 다룰 때 사용됩니다.

Java의 실수 타입은 부동 소수점 방식으로 메모리에 저장됩니다.

부동 소수점이란?

부동 소수점 수는 컴퓨터에서 실수를 근사하여 표현하는 방식입니다. 가수(mantissa)와 지수(exponent)로 나누어 표현함으로써 매우 작거나 큰 숫자를 효율적으로 저장할 수 있습니다. 그러나, 부동 소수점 표현의 근사적인 성질 때문에 일부 실수는 정확히 표현되지 않아 계산 시 미세한 오차가 발생할 수 있습니다.

3. 논리 타입 (Boolean Type)

논리 타입은 참(true)과 거짓(false)을 나타내는 논리 리터럴을 저장하는 데 사용됩니다.

  • boolean: 참과 거짓을 저장합니다. 메모리 사용량은 자바 가상 머신(JVM)의 구현에 따라 다르며, 일반적으로 1바이트를 사용합니다.

4. 문자 타입 (Character Type)

문자 타입은 하나의 문자를 작은따옴표(')로 감싸서 저장합니다. 자바는 문자를 유니코드로 저장하여 전 세계의 언어를 표현할 수 있습니다.

  • char: 16비트(2바이트) 크기로, 유니코드 UTF-16 인코딩을 사용하여 0부터 65,535까지의 유니코드 값을 표현할 수 있습니다.

5. 문자열 타입 (String Type)

문자열 타입은 여러 문자를 큰따옴표(")로 감싸서 저장합니다.

  • String: 자바에서 문자열을 저장하고 관리하는 클래스입니다. String은 기본 자료형이 아니라 자바 라이브러리에 포함된 클래스이며, 문자의 시퀀스를 표현합니다.
    • 불변성(Immutability): String 객체는 한 번 생성되면 그 내용을 변경할 수 없습니다. 문자열 수정은 실제로는 새로운 String 객체를 생성하는 것입니다.
    • 메모리 저장: 문자열 리터럴은 **문자열 상수 풀(String Constant Pool)**에 저장되어 메모리 사용을 최적화합니다. 동일한 문자열 리터럴은 같은 메모리 주소를 가리킵니다.

정수형과 실수형을 나누는 이유

자바에서 정수형(integer types)과 실수형(floating-point types)을 여러 가지로 나누어 제공하는 이유는 메모리 사용과 연산의 효율성을 극대화하기 위함입니다. 각 자료형은 사용하는 메모리 양, 표현할 수 있는 값의 범위, 그리고 정밀도가 다르기 때문에, 개발자는 애플리케이션의 요구 사항에 맞게 가장 적절한 자료형을 선택할 수 있습니다.

마무리

Java의 다양한 자료형을 이해하면 메모리를 효율적으로 사용하고 프로그램 성능을 최적화할 수 있습니다.

'☕ Java' 카테고리의 다른 글

[Java] 메모리 영역  (1) 2024.10.16
[Java] 클래스에 대한 캐스팅(Casting)과 오버라이딩(Overriding)  (0) 2024.10.16
[Java] 추상클래스(Abstract class)와 인터페이스(Interface)  (0) 2024.10.16
[Java] Thread와 Java Thread  (0) 2024.10.15
'☕ Java' 카테고리의 다른 글
  • [Java] 메모리 영역
  • [Java] 클래스에 대한 캐스팅(Casting)과 오버라이딩(Overriding)
  • [Java] 추상클래스(Abstract class)와 인터페이스(Interface)
  • [Java] Thread와 Java Thread
kkongdo
kkongdo
kkongdo 님의 블로그 입니다.
  • kkongdo
    숲을 바라보며 나무를 심는 아이
    kkongdo
  • 전체
    오늘
    어제
    • 분류 전체보기 (32)
      • 🌏 Web (0)
      • ☕ Java (5)
      • 🌱 Spring (9)
        • Spring Boot (7)
        • Spring Data JPA & QueryDSL (2)
      • 🗂️ Database (5)
      • 💻 CS (12)
        • 운영체제 (4)
        • 네트워크 (5)
        • 자료구조 (3)
      • 🗃️Git (1)
      • 🔍 Algorithm (0)
      • 📡 DevOps (0)
        • Docker (0)
      • 🔭 ETC (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • GitHub
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    springbatch
    데이터베이스
    운영체제
    QueryDSL
    java
    spring
    JPA
    SpringMVC
    조인
    db
    DI
    네트워크기기
    자료구조
    CS
    SpringSecurity
    스케줄링
    네트워크
    @annotation
    OS
    복잡도
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
kkongdo
[Java] 자료형
상단으로

티스토리툴바