Java 기본형

2021. 5. 29. 18:00Java

다소 깊이 있는 내용이므로 어렵다고 느낄 수도 있는데, 앞서 배운 기본형에 대한 대략적인 내용만으로도 별 부족함 없이 진도를 나갈 수 있으니까 다 이해하지 못해도 괜찮다. 그래도 언젠가는 반드시 알아야하는 내용이므로 가볍게라도 봐둘 필요는 있다.

논리형 - boolean

논리형에는 boolean한가지 밖에 없다. boolean형 변수에는 true, false중 하나를 저장할 수 있으며 기본값(default)은 false이다.

boolean형 변수는 대답(yes / no), 스위치(on / off) 등의 논리구현에 주로 사용된다. 그리고 boolean형은 true와 false, 두 가지의 값만을 표현하면 되므로 1bit만으로도 충분하지만, 자바에서는 데이터를 다루는 최소단위가 byte이기 때문에 boolean의 크기가 1byte이다. 아래 문장은 power라는 boolean형 변수를 선언하고 true로 변수를 초기화 했다.

boolean power = true; boolean checked = False; // Error. 대소문자가 구분됨 true 또는 false만 가능.

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

문자형 - char

문자형 역시 char 한 가지 자료형밖에 없다. 문자를 저장하기 위한 변수를 선언할 때 사용되며, char타입의 변수는 단 하나의 문자만을 저장할 수 있다. 아래의 문장은 char타입의 변수 ch를 선언하고, 문자 'A'로 초기화한다.

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

위의 문장은 변수에 문자가 저장되는 것 같지만 사실은 문자가 아닌 문자의 유니코드(정수)가 저장된다. 컴퓨터는 숫자밖에 모르기 떄문에 모든 데이터를 숫자로 변환하여 저장하는 것이다. 문자 'A'의 유니코드는 65이므로, 변수 ch에는 65가 저장된다.

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

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

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

int code = (int)ch; // ch에 저장된 값을 int타입으로 변환하여 저장한다.

어떤 타입을 다른 타입으로 변환하는 것을 형변환(캐스팅, casting)이라고 하는데, 형변환에 대해서는 나중에 설명할 것이다. 지금은 유니코드를 알아내는 방법과, 어떤 유니코드가 어떤 문자를 나타내는가를 알아내는 방법이 있다는 것만 이해하자.

실행결과 → A=65(0x41) 줄바꿈 가=44032. // 왜 지시자를3개를 쓰는지 했는데 ()괄호안에 16진수형식으로 출력해서 그런 거 였다!

%c → 문자로 출력, %x → 16진 정수로 출력

 

실행결과를 보면, 문자'A'의 유니코드는 65(16진수로 0x41)이고, 문자'가'의 유니코드는 44032(16진수로 0xAC00)이라는 것을 알 수 있다. 유니코드를 알면 아래와 같이 char형 변수에 문자를 저장할 때, 문자 리터럴 대신에 유니코드를 직접 사용할 수도 있다.

char hch = 0xAC00;   //char hch = '가'
char hch = \uAC00;   //이렇게도 가능.

'Java' 카테고리의 다른 글

Java 기본형 3  (0) 2021.05.31
Java 기본형 2  (0) 2021.05.30
Java 진법 4  (0) 2021.05.28
Java 진법 3  (0) 2021.05.27
Java 진법 2  (0) 2021.05.26