2025-02-25
자바의 자료형은 크게 정수형, 실수형, 문자형, 논리형으로 나뉜다.
자료형 | 크기 | 범위 | 비고 |
---|---|---|---|
byte | 1byte | -128 ~ 127 | 메모리 절약 시 사용 |
short | 2byte | -32,768 ~ 32,767 | 사용 빈도 낮음 |
char | 2byte | 0 ~ 65,535 | 음수 없음 (유니코드 지원) |
int | 4byte | -2³¹ ~ 2³¹-1 | 기본 정수형 |
long | 8byte | -2⁶³ ~ 2⁶³-1 | L 접미사 사용 (100000L ) |
int binaryNum = 0b10101101; // 2진수
int decimalNum = 173; // 10진수
int octalNum = 0255; // 8진수
int hexNum = 0xad; // 16진수
System.out.printf("%d %d %d %d\n", binaryNum, decimalNum, octalNum, hexNum);
byte
형 범위 확인byte n1 = (byte) -129; // 오버플로우 발생
byte n2 = 127;
byte n3 = (byte) 129; // 129는 byte 범위를 초과하여 오류 발생
System.out.println(n1); // 데이터 손실
System.out.println(n3);
float
(4바이트): 약 7자리 정밀도, f
접미사 필요 (3.14f
)double
(8바이트, 기본형): 약 15~16자리 정밀도float f = 0.123456789123456789F;
double d = 0.123456789123456789;
System.out.println(f); // 0.12345679 (소수 7자리까지만 정확)
System.out.println(d); // 0.12345678912345678 (소수 15자리까지 정확)
float num = 0.1F;
for(int i = 0; i <= 1E5; i++) {
num = num + 0.1F;
}
System.out.println("num : " + num); // 예상과 다른 값 출력
💡 해결 방법 → BigDecimal
사용
import java.math.BigDecimal;
BigDecimal num1 = new BigDecimal("0.1");
BigDecimal num2 = new BigDecimal("0.2");
BigDecimal sum = num1.add(num2);
System.out.println(sum); // 정확히 0.3 출력
char
(2바이트): 유니코드 기반 문자 저장char
타입 활용char ch1 = 'a';
System.out.println(ch1); // a
System.out.println((int)ch1); // 97 (ASCII 코드 값)
char ch2 = 98;
System.out.println(ch2); // b
System.out.println((int)ch2); // 98
char ch3 = 0xac00; // '가' (한글 유니코드)
System.out.println(ch3); // 가
System.out.printf("%c\n", '\uAC01'); // 각 (유니코드 이스케이프 사용)
boolean
: true
또는 false
만 저장 가능boolean
활용 예제boolean flag = (10 > 11);
if(flag) {
System.out.println("참인 경우 실행");
} else {
System.out.println("거짓인 경우 실행");
}
자바에서 상수(Constant)는 변경할 수 없는 값을 의미하며, 리터럴 상수와 심볼릭 상수로 나뉜다.
100
, 'a'
, 3.14
L
(long), f
(float)final
키워드를 사용하여 이름을 부여하고 변경할 수 없도록 지정.final
로 설정하여 사용.int n1 = 100; // 리터럴 상수
final int n2 = 200; // 심볼릭 상수
final double PI = 3.14;
double result = PI * 4 * 4; // PI 값 변경 불가능
System.out.println(result);
BigDecimal
을 활용한 해결 방법을 알게 되었다.char
타입이 2바이트로 유니코드를 지원한다는 점을 다시 한번 확인했다.final
키워드를 사용하는 이유를 알게 되었다.BigDecimal
해결책 학습 char
의 유니코드 활용 및 문자열(String) 특징 정리 boolean
자료형의 간단한 예제 테스트 final
키워드 사용법 정리