JAVA 시작하기 - 자료형의 종류 (문자형)

Big Jay·2023년 5월 21일
0

Java 시작하기

목록 보기
5/14
post-thumbnail

문자 자료형

컴퓨터는 0과 1로 표현하는데 문자 역시 컴퓨터 내부에서 표현할 때 0과 1의 조합으로 나타내야 한다. 예로 A를 얼마로 표현할 것인지 약속을 하는데 이런 코드 값을 모아 둔 것을 '문자 세트'라 한다. 이 때 문자를 정해진 코드 값으로 변환하는 것을 문자 인코딩(encoding)이라 하며 반대는 문자 디코딩(decoding)이라 한다.

문자 인코딩의 종류

1. 아스키(ASCII)
가장 기본이 되는 문자 인코딩으로 영문자, 숫자, 특수 문자등을 나타내는 문자 세트이다.
1바이트(2⁸=256개)만 사용하며, 한글 또는 다른 언어 문자는 표현하기 어렵다.

2. 유니코드(unicode)
아스키에서 표현이 어려운 언어를 2바이트를 사용하여 표현하는데 이 때 각 언어의 표준 인코딩을 정의해놓은 것으로 1바이트는 아스키 코드 값과 호환되고, 그 밖의 문자를 2바이트나 그 이상의 조합으로 표현한다.

자바의 문자 표현

자바는 유니코드에 기반하여 문자를 표현하기 때문에, 문자 자료형인 char형은 2바이트를 사용한다.

char myChar = 'A';

문자형 정수형 변환 예제

문자형에 문자 코드에 해당하는 정수(int)를 입력할 경우 문자(char)를 출력하고 문자를 정수형(int)으로 변환할 경우 정수를 출력한다.

public static void main(String[] args) {
	// TODO Auto-generated method stub

	char ch1 = 'A';
	System.out.println(ch1); // 문자 A
	System.out.println((int)ch1); // 정수 65

	char ch2 = 66; // 정수 값 대입
	System.out.println(ch2); // 정수 값에 해당 된 문자 B 출력

	char ch3 = 67;  // 정수 값 대입
	System.out.println(ch3); // 정수 값에 해당하는 문자 C 출력
	System.out.println((char)ch3); // 정수 값에 해당하는 문자 C 출력
}

문자와 여러 문자에 대한 표현방법

프로그램에서 문자를 사용할 때는 항상 작은따옴표('')를 사용한다.
이 때 문자를 여러 개 이은 문자열의 경우 큰따옴표("")를 사용하며 기본 자료형(char)으로는 표현할 수 없다.

char a = 'A' // 'A'는 정수 값 65로 정해져 있는 문자
String b = "B"  // "B"의 내부를 살펴보면 "B\0"과 같이 쓰인다.

문자형 변수에 숫자를 저장한다면?

char형은 문자 자료형이지만 다른 자료형과 마찬가지로 컴퓨터 내부에서는 정수 값으로 표현되기 때문에 정수 자료형으로 분류하는 경우도 있다. 다른 정수 자료형과 차이점은 char형은 음수 값을 표현할 수 없다는 것

public class Sample {
	public static void main(String[] args) {		
	int a = 65;
	int b = -66;
	char a2 = 65;
	//char b2 = -66;

	System.out.println((char)a); // A
	System.out.println((char)b); // char형에 음수를 넣을 경우 오류가 발생하여 물은표(?)가 출력된다.
	System.out.println(a2); // A
}

자바는 UTF-16 인코딩을 사용한다.
자바의 기본 인코딩은 모든 문자를 2바이트로 표현하는 UTF-16이다. 하지만 1바이트로 표현 가능한 알파벳 같은 자료를 저장하는 경우 메모리 낭비가 있을 수 있어 UTF-16에 비해 메모리 낭비가 적고 전송 속도가 빠른 UTF-8을 많이 사용한다.

profile
안녕하세요.

0개의 댓글