TIL

변수타입 심화(2024-07-23)

note994 2024. 7. 23. 11:26

문자와 문자열

문자와 문자열의 차이점을 알아보자

 

선언 관점에서의 차이점

문자(char)

문자 한개만 저장하며 홀따옴표를 사용해 값을 저장한다.

 

 

문자열(String)

문자 여러개를 문장형태로 저장하며 쌍따옴표를 사용해 저장한다.


저장 관점에서의 차이점

문자(char)

  • 문자 뒤에 \0(널 문자)가 없다. 1byte만 쓰기 때문에 끝을 알기 때문이다.

문자열(String)

  • 문장의 끝에 \0(널 문자)가 있다. 몇 개의 byte를 사용할지 모르기 때문에 끝을 표시하기 때문이다.


참조형

참조형 변수 = 주소형 변수

  • 기본형 변수가 실제 값을 저장하는 공간이라면 참조형 변수는 실제 값이 아닌 원본값의 주소값을 저장한다.
  • 그래서 참조형 변수는 주소형 변수라고 불러도 무방하다.

 

저장관점에서의 차이점

  • 기본형 변수 = 원본 값이 Stack 영역에 있다.
  • 참조형 변수 = 원본 값이 Heap 영역에 있다. Stack영역에는 따로 원본값의 Heap 영역 주소를 저장한다.

String a = "abc"를 예로 들면

 

원본 값 "abc"의 주소가 123 이라고 가정하면

 

"abc"의 주소 123이 Heap 영역에 존재하고 Stack에는 변수 a가 그 "abc"의 주소 123을 담고있는 상태가 된다.

 


입력 & 출력

입력

 

Java에서는 기본적으로 Scanner.in 객체의 next() 명령을 사용해 입력을 받는다.

 

출력

Java에서는 기본적으로 System.out 객체의 println() 명령을 사용해 출력한다.

 


 

비트 & 바이트

Byte는 8개의 bit로 구성되어 있다.

  • Bit는 0과 1형태의 2진수로써 컴퓨터가 저장(표현)할 수 있는 최소 단위이다.
  • 정수형 값은 10진수 숫자(0~10범위의 숫자)이며 2진수(0 ~ 1 범위)Bit로 저장 및 표현한다.
  • 4개의 Bit를 사용해 16진수 숫자(0~F)를 2진수로 저장 및 표현한다.

Byte = 8bit

  • Byte는 8개의 bit로 구성되어 있다.
  • 10진수 숫자 5는 이진수로 101이다. 2진수는 2진법을 사용하여 숫자를 표현한다.
  • 1 바이트는 8 비트로 구성되어 있으므로, 1 바이트 내에서 표현할 수 있는 숫자는 총 256가지이다(2^8 = 256). 이는 0부터 255까지의 숫자를 의미한다.
  • 위의 예에서, 숫자 5는 1 바이트 내에서 8비트 이진수 00000101로 표현된다.
  • 1 Byte 내에서 문자 변수의 경우만 Bit 2진수를 4자리씩 나눠 16진수로 저장(표현)한다.