데이터 타입
Java에는 원시 타입(Primitive Type)과 참조타입(Reference Type)로 두 가지 데이터 타입이 존재한다.
원시 타입: byte, short, int, long, double, float, char, boolean
참조 타입: String, Array, Date, File, Class, Interface etc
여기서 원시 타입의 데이터는 '스택' 메모리에 값이 존재한다.
예를 들어 int a = 10 과 int b = 10 이 있다고 가정하자. 여기서 10이라는 값이 a에서 먼저 생겼기 때문에 뒤에 생긴 b는 a와 같은 값을 가지기 때문에 가리키는 주소가 같다.

그렇기 때문에 a == b의 결과는 true가 나올 수 있는 것이다.
이번에는 참조 타입인 String을 예시로 들어 설명하겠다.
String은 참조 타입이지만 특별 대우를 받아
String a = "aaa";
String b = "aaa";
위와 같이 선언을 하면 원시 타입 처럼 같은 공간을 가르키게 된다.
하지만 String c = new String("aaa"); 이렇게 선언을 하게 되면
위의 내용 처럼 똑같이 c 또한 aaa라는 내용을 가지고 있지만 아래 그림 처럼 a, b와는 다른 주소값을 할당 받게 된다.
c를 선언한것과 같이 d라는 문자열 변수를 선언하면 d 또한 a,b,c와 내용은 같지만 주소가 다른 위치에 할당된다.

'프로그래밍 언어 > JAVA' 카테고리의 다른 글
JAVA - 배열 복사하기 (2) | 2024.03.15 |
---|---|
Java - 문자열(String) 과 정수(int) 변환 (0) | 2024.03.13 |
Java - 대소문자 구분 / 대소문자 변환 (문자) (0) | 2024.03.13 |
JAVA - 파일 입출력 ( FileOutputStream, FileInputStream, FileReader, FileWriter) (0) | 2023.06.20 |
FileOutputStream을 활용한 안전한 파일 저장 방법 (0) | 2023.06.19 |