기본형 변수 중 문자와 문자열의 차이점에 대해서 좀더 자세히 알아본다.
- 선언 관점에서 차이점
- 문자 (char)
- 문자 한개만 저장하며 따옴표를 사용하여 값을 지정한다. (ex. ’A’)
- ex) char alphabet = 'A'; // 문자 하나를 저장한다.
- 문자열 (String)
- 문자 여러개를 문장형태로 저장하며 쌍따옴표를 사용하여 범위를 지정한다. (ex. “ABCDEFG”)
- ex) String message = "Hello World"; // 문자열을 저장한다.
- 문자 (char)
- 저장 관점에서 차이점
- 문자 (char) - 기본형 변수
- 문자 뒤에 \0(널문자)가 없다. (1 byte 만 쓰기 때문에 끝을 알아서 데이터만 저장하면 된다.)
- 문자열 (String) - 참조형 변수
- 문장의 끝에 \0(널문자)가 함께 저장이 된다. (몇개의 byte 를 쓸지 모르기 때문에 끝을 표시해야 한다.)
- 문자 (char) - 기본형 변수
참조형 변수 = 주소형 변수?
- 다른 기본형 변수가 실제 값을 저장하는 저장공간 이라면 참조형 변수는 실제 값이 아닌 원본값의 주소값을 저장한다.
- 다시말해 참조형 변수는 주소값을 저장하는 주소형 변수라고 불러도 된다.
저장 관점에서 차이점
- 기본형 변수 : 원본값이 Stack 영역에 있다.
- 참조형 변수 : 원본값이 Heap 영역에 있다.
- Stack 영역에는 따로 저장 해둔 원본값의 Heap 영역주소를 저장한다.
Stack 영역 vs Heap 영역
- Stack의 경우에는 정적으로 할당된 메모리 영역.
- 그래서, 크기가 몇 byte 인지 정해져 있는 기본형 변수를 저장한다.
- 추가로, 크기가 정해져 있는 참조형 변수의 주소 값도 저장한다.
- Heap의 경우에는 동적으로 할당된 메모리 영역.
- 그래서, 크기가 계속 늘어날 수 있는 참조형 변수의 원본을 저장한다.
'JAVA공부' 카테고리의 다른 글
비트&바이트 (0) | 2023.10.12 |
---|---|
입력&출력 (0) | 2023.10.12 |
숫자와 문자 (0) | 2023.10.12 |
기본형 참조형변수타입 및 래퍼클래스타입 실습 (0) | 2023.10.12 |
저장공간의 종류 (변수 타입) (1) | 2023.10.12 |