프로그래밍/Java | 2014. 6. 21. 21:37
char는 문자를 내부적으로 정수값 코드로 저장하기 때문에 정수형 ( byte, short , int ,long )과 밀접한 관계가 있다.
char는 자바에서 유니코드( 2 byte 문자 체계)를 사용하므로 2 byte.
C언어와 같은 프로그래밍 언어는 문자형의 경우 1 byte( ASCII코드 ) 의 크기를 갖지만,
java에서는 유니코드 (Unicode)문자 체계를 사용하기 때문에 크기가 2 byte이다.
여기서 잠깐!
유니코드란?
세계 각 국의 언어를 통일된 방법으로 표현할 수 있게 제안된 국제적인 코드 규약이다.
컴퓨터가 미국에서 개발되어져 영어를 바탕으로 정의되어 있다.
영어는 26자의 알파벳과 몇 가지 특수 문자를 표현하기에 1 byte로 충분했기 때문에
문자가 1 byte로 표현되고 있지만,
동양 3국의 한글, 한자 또는 일어 등과 같은 문자는 1 byte로는 표현이 불가능하기에
2 byte로 문자를 표현하는 유니코드가 만들어 졌다.
char형 변수에 문자를 저장할 때는 홀따옴표 ( ' ' )로 문자를 둘러싼다.
ex > char firstletter = ' A ' ;
char형 VS short형
크기가 모두 2 byte( 16 bit )로 표현할 수 있는 값의 개수는 65536개로 같다.
하지만!
char 형 |
문자의 코드를 저장하므로 음수를 필요로 하지 않기 때문에 2진수로 표현했을 때 첫 번째 자리를 부호에 사용하지 않는다. |
short 형 |
첫 번째 자리를 부호를 표현하는데 사용하기 때문에 서로 다른 범위를 갖는다. |
만약에 어떤 문자의 유니코드를 알고 싶으면,
char형 변수를 정수형(int)으로 변환하면 된다.
char ch = 'A';
int code = (int ) ch;
변수에 문자를 저장하는 것 같지만 실제로는 정수값(유니코드)이 저장되는 것이다.
잊지말자 ! 모든 데이터는 숫자로 저장된다. !
[Java] 재귀호출에 대한 이야기 (0) | 2014.06.23 |
---|---|
[Java] JVM의 메모리 구조 (0) | 2014.06.23 |
[Java] 반환값 return의 TIP (0) | 2014.06.23 |
[Java] 배열에 대한 이야기 (0) | 2014.06.23 |
[Java] 조건문과 반복문에 대한 이야기 (0) | 2014.06.23 |
[Java] 나머지 연산자 ' % ' 와 시프트 연산자 ' <<, >>, >>> ' 이야기 (0) | 2014.06.23 |
[Java] 연산자 ( & , | , ~ , ! )에 대한 이야기 (0) | 2014.06.23 |
[Java]Byte나 Short보다 int형을 쓰는 이유 (0) | 2014.06.23 |
[Java] Java 언어의 특징 (0) | 2014.06.21 |
[Java] 변수에 대한 이야기 (0) | 2014.06.21 |
Recent Comments