
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
'Java' 카테고리의 다른 글
[Java] 배열과 배열의 복사 (0) | 2022.12.22 |
---|---|
[Java] 자주 발생하는 기본적인 에러와 해결 (0) | 2022.12.20 |
[Java] 변수의 명명규칙과 네이밍컨벤션 (0) | 2022.12.13 |
[Java] 논리 연산자와 그 외 연산자 (0) | 2022.12.08 |
[Java] 연산자(operator) 정리 (0) | 2022.12.06 |