본문 바로가기

JAVA공부

문자와 문자열

기본형 변수 중 문자와 문자열의 차이점에 대해서 좀더 자세히 알아본다.

  • 선언 관점에서 차이점
    • 문자 (char)
      • 문자 한개만 저장하며 따옴표를 사용하여 값을 지정한다. (ex. ’A’)
      • ex)  char alphabet = 'A'; // 문자 하나를 저장한다.
    • 문자열 (String)
      • 문자 여러개를 문장형태로 저장하며 쌍따옴표를 사용하여 범위를 지정한다. (ex. “ABCDEFG”)
      • ex)  String message = "Hello World"; // 문자열을 저장한다.
  • 저장 관점에서 차이점
    • 문자 (char) - 기본형 변수
      • 문자 뒤에 \0(널문자)가 없다. (1 byte 만 쓰기 때문에 끝을 알아서 데이터만 저장하면  된다.)
    • 문자열 (String) - 참조형 변수
      • 문장의 끝에 \0(널문자)가 함께 저장이 된다. (몇개의 byte 를 쓸지 모르기 때문에 끝을 표시해야 한다.)

참조형 변수 = 주소형 변수?

  • 다른 기본형 변수가 실제 값을 저장하는 저장공간 이라면 참조형 변수는 실제 값이 아닌 원본값의 주소값을 저장한다.
  • 다시말해 참조형 변수는 주소값을 저장하는 주소형 변수라고 불러도 된다.

저장 관점에서 차이점

  • 기본형 변수 : 원본값이 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