1.5 자료형
자바에서 다루는 자료형은 크게 둘로 나눌 수 있다.
하나는 기본 자료형이고, 다른 하나는 참조형이다.
둘의 차이점은 다음과 같다.
- 기본 자료형은 데이터 값을 직접 가진다.
- 참조형은 값을 가진 인스턴스의 참조 주소(메모리상의 배치된 장소)를 가진다. 인스턴스 자체를 가지는 것은 아니다.
1.5.1 기본 자료형
기본 자료형은 값을 직접 가진 자료형이다. 따라서 값을 변경하면 데이터의 내용이 직접 치환된다.
기본 자료형에는 다음 표와 같은 것이 있다.
기본 자료형에서 주의할 점은 자료형의 범위를 넘더라도 오류가 발생하지 않는다는 것이다. 양수라면 음수로, 음수라면 양수로 자동 변환해 버리기 때문이다. 예를 들어 int의 최댓값(Integer.Max_VALUE)인 2.147.483.647에 1을 더하면 결과는 - 2.147.483.648이 된다. 예제로 확인해보자.
----------------------------------------------------------------------------------------------------------------------------
public class OverflowCheck1 {
/*
int가 최댓값을 넘을 때의 동작을 ㅗ학인하는 클래스이다.
*/
/*
최댓값에 1을 더한 값을 출력한다.
@param arg
명령을 인수. 이번에는 사용하지 않는다.
*/
public static void main(String[] args) {
int i = Integer.MAX_VALUE;
System.out.println(i);
i = i + 1;
System.out.println(i);
}
}
실행결과
2147483647
-2147483648
큰 값을 다루다 보면 자신도 모르는 사이에 의도하지 않은 값으로 변경되어 있을 수 있으므로 주의하자.
부호 없는 Integer와 Long 지원
자바 8 이후로는 int와 long에서 부호 없는 값을 가질 수 있게 된다. 부호가 없다는 말은 음수 값을 가지지 않는다는 뜻이다. 음수 값에 할당하던 영역을 양수에 사용할 수 있게 되면서 다룰 수있는 범위도 달라졌다.
'프로그래밍 > JAVA' 카테고리의 다른 글
1.5.3 인스턴스 (0) | 2019.02.07 |
---|---|
1.5.2 참조형 (0) | 2019.02.07 |
1.4.2 산술 연산 (0) | 2019.01.23 |
1.4 기본적인 계산 (0) | 2019.01.23 |
1.3.7 static 변수와 static 메서드 (0) | 2019.01.23 |