Java 자료형
자료형의 종류
- 정수 타입
- 실수 타입
- 논리 타입
- 문자 타입
- 문자열 타입
정수 타입
소수점 이하의 값을 가지지 않는 정수 값을 저장하는데 사용하는 자료형
Java가 제공하는 정수 타입의 종류가 무엇이 있을까?
- byte
8Bit(1Byte)의 크기로, -128 ~ 127까지의 정수값을 저장할 수 있다. 주로 작은 데이터를 저장하는데 사용되며 메모리를 매우 절약할 수 있다.
- short
16Bit(2Byte)의 크기로, -32,768 ~ 32,767까지의 정수값을 저장할 수 있다. byte 자료형보다 큰 범위의 정수값을 다룰 때 사용한다.
- int
32bit(4Byte)의 크기로, -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까지의 매우 큰 정수 값을 저장할 수 있다. 큰 정수를 다루어야 할 때 사용된다.
실수 타입
소수점 이하의 값을 포함하는 실수, 즉 분수나 소수를 저장하는데 사용하는 자료형
실수 타입을 사용하는 이유는?🤨
실수형 타입은 과학적 계산, 엔지니어링, 그래픽 처리 등 다양한 분야에서 필요로 하는 정밀한 수치 계산을 가능하게 하기 때문에 사용한다.
Java가 제공하는 실수 타입의 종류가 무엇이 있을까?
- float
32비트(4바이트)의 크기로, - 3.4 * 10^38 ~ 3.4 * 10^38까지의 실수값을 저장할 수 있다. 주로 작은 데이터를 저장하는데 사용되며 메모리를 매우 절약할 수 있다.
- double
64Bit(8Byte)의 크기로, - 1.8 * 10^308 ~ 1.8 * 10^308까지의 정수값을 저장할 수 있다. byte 자료형보다 큰 범위의 정수값을 다룰 때 사용한다.
Java의 실수타입은 부동 소수점 방식으로 메모리에 저장한다.
부동 소수점이란?
- 부동소수점 수는 컴퓨터에서 실수를 근사하여 표현하는 방식을 사용한다.
- 실수를 가수(mantissa)와 지수(exponent)로 분리하여 표현하며, 이를 통해 매우 작거나 큰 숫자를 효율적으로 나타낼 수 있다.
하지만, 부동소수점 표현의 근사적인 성질로 인해, 일부 실수는 정확히 표현되지 않을 수 있으며, 이는 계산에서 미묘한 오차를 일으킬 수 있다.
논리 타입
참(true)와 거짓(false)를 의미하는 논리 리터럴을 저장하는데 사용하는 자료형
Java가 제공하는 논리 타입의 종류가 무엇이 있을까?
- boolean
boolean 타입의 크기는 공식적으로는 정의되어 있지 않지만, 실제 메모리 사용량은 구현에 따라 달라질 수 있다.
대부분의 자바 가상 머신(JVM)에서는 1바이트를 사용하지만, 배열의 경우 더 효율적으로 메모리를 사용할 수 있습니다.
문자 타입
하나의 문자를 작은따옴표('')로 감싼 문자 리터럴을 유니코드로 변환하여 저장하는데 사용하는 자료형
Java가 제공하는 문자 타입의 종류가 무엇이 있을까?
- char
16비트(2바이트) 크기를 가지며, 유니코드 UTF-16 인코딩을 사용한다.
범위는 0에서 65,535까지의 유니코드 값을 표현할 수 있다.
문자열 타입
여러 개의 문자를 큰따옴표("")로 감싼 문자 리터럴을 유니코드로 변환하여 저장하는데 사용하는 자료형
Java가 제공하는 문자 타입의 종류가 무엇이 있을까?
- String
16비트(2바이트) 크기를 가지며, 문자의 시퀀스로, 한 개 이상의 문자로 구성될 수 있으며, 문자 데이터를 저장하고 관리하는 데 사용된다.
String은 자바의 내장 데이터 타입이 아닌, 자바 라이브러리에 포함된 클래스입니다. 따라서 String을 사용할 때는 클래스의 인스턴스를 생성하는 방식으로 작업한다.
String의 특성
- 불변성(Immutability): String 객체는 한 번 생성되면 그 내용을 변경할 수 없다.
즉 문자열을 수정하는 것처럼 보이는 모든 연산은 실제로 새로운 String 객체를 생성합니다.
- 리터럴 표현: 문자열 리터럴은 큰따옴표(" ")로 묶어서 표현한다.
Ex: String greeting = "Hello, World!";
- 메모리 저장: 자바에서는 문자열 리터럴을 문자열 상수 풀(String Constant Pool)에 저장하여 메모리 사용을 최적화한다.
동일한 문자열 리터럴에 대한 참조는 모두 같은 메모리 주소를 가리킵니다.
정수형과 실수형은 왜 여러개로 나누어져서 사용하는 이유는?🤔
정수형(integer types)과 실수형(floating-point types) 자료형을 여러 가지로 나누어 제공하는 주된 이유는 메모리 사용과 연산의 효율성을 극대화해주기 때문이다.
각 자료형은 사용하는 메모리 양과 표현할 수 있는 값의 범위, 그리고 정밀도가 다르다. 그러므로 여러 자료형을 제공함으로써 개발자는 애플리케이션의 요구사항에 맞게 가장 적절한 자료형을 선택할 수 있다.