본문 바로가기
Java

[Java] 기본형(Primitive type) - 논리, 문자형

by seonggu 2022. 12. 15.

1️⃣ 논리형 - boolean

논리형에는 boolean 만 존재한다.

boolean형 변수에는 true와 false 중 하나를 저장할 수 있으며 기본값(default)은 false이다.

 

boolean형 변수는 yes/no, on/off 등 논리구현에 주로 사용이 된다. 그리고 두 가지 값만 표현이 되므로 1 bit만으로도 충분하지만, 자바에서는 데이터를 다루는 최소의 단위가 byte이기 때문에, 자바에서는 1byte이다.

 

💥 자바에서는 대소문자를 구별하기 때문에 TRUE와 true는 다른것으로 간주된다.

boolean power = true;
boolean checked = False; //error

2️⃣ 문자형 - char

문자형도 char 만 존재한다. 

문자를 저장하기 위한 변수를 선언할 때 사용된다. char타입의 변수는 단 하나의 문자만을 저장할 수 있다.

char c = 'A'; //문자 'A'를 char 타입의 변수 ch에 저장한다.

➡ 위에서의 코드는 변수에 문자가 저장되는 것 같지만, 사실은 문자의 유니코드(정수)가 저장된다.

컴퓨터는 숫자밖에 모르기 때문에 모든 데이터를 숫자로 변환 하여 저장하는 것이다. 문자 'A'의 유니코드는 65이므로 변수 c에는 65가 저장된다.

char c = 'A';
char c = 65; //문자의 코드를 직접 변수 ch에 저장

그리하여 문자 리터럴 대신 문자의 유니코드를 직접 저장할 수도 있다. 문자 'A'의 유니코드는 10진수로 65이며 위 두 문장은 동일한 결과를 얻는다.

int code = (int) c; // c에 저장된 값을 int 타입으로 변환

위처럼 어떤 문자의 유니코드를 알고 싶으면, char형 변수에 저장된 값을 정수형(int)로 변환하면 된다.

 

💬 char타입의 표현방식

char타입의 크기는 2byte(=16bit)이다. 16자리의 2진수로 표현할 수 있는 정수의 개수 65536개(= 2¹⁶)의 코드를 사용할 수 있다. char형 변수는 이 범위 내의 코드 중 하나를 저장할 수 있다. 예를 들어, 문자 'A'를 저장하면, 2진수 '0000000001000001'(10진수로 65)로 저장이 된다.

 

실제로 char타입 변수에는 문자의 유니코드가 저장되고 표현형식도 정수형과 동일하다. 다른점이 있다면 정수형과 달리 음수를 라는 것이 없으므로 표현할 수 있는 값의 범위가 다르다.

예를 들어서 char는 2byte므로 65536개(= 2¹⁶)개의 값을 표현한다. char타입은 저장되는 값이 모두 양수이므로 0~65535의 범위를 가지는데 정수형인 short는 절반은 음수 표현에 사용하므로 -32768~32767을 범위로 갖는다.

 

✅ 특수 문자 다루기

영문자 이외에 tab이나 backspace 등의 특수문자를 변수에 저장하려면, 다음과 같이 특별한 방법을 사용한다.

char tab = '\t' // 변수 tab에 탭 문자를 저장

'/t'는 실제로 두 문자로 이루어져 있지만 한 문자(탭, tab)을 의미한다. 아래는 특수문자를 표현하는 방법들을 적어보았다.

 

특수문자 문자 리터럴
tab \t
backspace \b
form feed \f
new line \n
carriage return \r
역슬래시(\) \\
작은 따옴표 \'
큰따옴표 \"
유니코드(16진수)문자 \u유니코드 (예시: char a='\u0041')

 

 

 

 

참고자료 -

더보기

자바의 정석 3판 

 

image -

https://www.flaticon.com/kr/free-icon/texting_5238119?term=%EB%AC%B8%EC%9E%90&page=1&position=83&page=1&position=83&related_id=5238119&origin=search