- Java에서의 자료형은 크게 둘로 나눌 수 있습니다.
- 기본 자료형
- 참조 자료형
1. 기본 자료형
자료형 | 크기(bit) | 기본값 |
---|
byte | 8 | 0 |
short | 16 | 0 |
int | 32 | 0 |
long | 64 | 0 |
float | 32 | 0.0 |
double | 64 | 0.0 |
char | 16 | \u0000(공백문자) |
boolean | 1 | false |
- 기본 자료형에서 주의할 점은 자료형의 범위를 넘더라도 오류가 발생하지 않는다.는 것입니다.
- 양수라면 음수로, 음수라면 양수로 자동 변환되기 때문입니다.
- 이를 오버플로우라고 합니다.
1-2. 부호 없는 Integer, Long
- 우리가 Integer나 Long을 사용할 때 음수의 값을 사용하지 않는데 자료형의 범위로 지정되어 있다면 이를 낭비라고 생각할 수도 있을 것입니다.
- Java 8 이후로는 int와 long에서 부호 없는 값을 가질 수 있게 되었습니다.
- 부호가 없다는 말은 음수값을 가지지 않는다.는 뜻입니다.
int i = Integer.MAX_VALUE;
System.out.println("Integer의 최대값 : " + i);
String maxIntegerValue = Integer.toUnsignedString(i + 1);
System.out.println("toUnsignedString을 이용하여 Integer 최대값 + 1 확인 : " + maxIntegerValue);
i = Integer.MAX_VALUE + Integer.MAX_VALUE + 1; /* 1을 더 더하면 0으로 바뀜 */
maxIntegerValue = Integer.toUnsignedString(i);
System.out.println("toUnsingerString을 이용하여 overflow 확인 : " + maxIntegerValue);
long l = Long.MAX_VALUE;
System.out.println("Long의 최대값 : " + l);
String maxLongValue = Long.toUnsignedString(l, i);
System.out.println("toUnsignedString을 이용하여 Long 최대값 + 1 확인 : " + maxLongValue);
l = Long.MAX_VALUE + Long.MAX_VALUE + 1; /* 1을 더 더하면 0으로 바뀜 */
maxLongValue = Long.toUnsignedString(l, i);
System.out.println("toUnSignedString을 이용하여 overflow 확인 : " + maxLongValue);
- Integer와 Long 클래스의 toUnsignedString을 호출하면 int와 long 값의 부호 없는 문자열 표현을 얻을 수 있습니다.