public class CharEx {
public static void main(String[] args){
char ch1 ='A';
System.out.println(ch1);
System.out.println((int)ch1); //문자에 해당하는 정수(아스키 코드) 값 출력
char ch2 = 66; //정수 값 대입
System.out.println(ch2); // 정수 값에 해당하는 문자 출력
int ch3 = 67;
System.out.println(ch3);
System.out.println((char)ch3); // 정수 값에 해당하는 문자 출력
}
}

'A'와 "A"는 다르다.
프로그램에서 문자를 사용할 때는 항상 작은따옴표(' ')를 사용한다.
문자를 여러 개 이은 문자열을 사용할 때는 큰따옴표(" ")를 사용한다.
문자열은 "Hello"처럼 여러 개의 문자를 큰따옴표로 감싸 표현하고 기본 자료형으로는 표현할 수 없다.
그리고 문자열 끝에는 항상 널 문자('\0')가 있다.
널 문자는 문자열의 끝을 나타낸다.
문자와 문자열은 전혀 다른 값을 가진다.
즉 'A'와 "A"는 다른 값이다.
'A'는 정수 값 65로 정해져 있는 문자이고 "A"는 그 내부를 살펴보면 "A\0"과 같이 쓰인다.
자바에서 문자열을 다룰 때 String 클래스를 사용한다.
문자형 변수에 숫자를 저장한다면?
char형은 문자 자료형이지만 다른 자료형과 마찬가지로 컴퓨터 내부에서는 정수 값으로 표현되기 때문에 정수 자료형으로 분류하는 경우도 있다.
다른 정수 자료형과 차이점은 char형은 음수 값을 표현 할 수 없다.
public class CharEx {
public static void main(String[] args){
int a = 65;
int b = -66;
char a2 = 65;
//char b2 = -66; 문자형 변수에 음수를 넣으면 오류가 남
System.out.println((char)a);
System.out.println((char)b);
System.out.println(a2);
}
}

자바는 UTF-16 인코딩을 사용한다.
유니코드를 표현하는 인코딩 방법은 크게 UTF-8과 UTF-16이 있다.
(유니코드는 전 세계의 모든 문자를 처리할 수 있도록 만든 표준 문자 전산 처리 방식이다.)
자바의 기본 인코딩 방식은 모든 문자를 2바이트로 표현하는 UTF-16이다.
모두 2바이트로 표현하면 1바이트로 표현할 수 잇는 알파벳 같은 자료를 저장하는 경우에 메모리가 낭비됨.
반면 UTF-8은 각 문자마다 1바이트에서 4바이트까지 사용하여 문자를 나타내기 때문에 UTF-16보다 메모리 낭비가 적고 전송 속도가 빨라 인터넷에서 많이 사용함.
'JAVA' 카테고리의 다른 글
| 형 변환 (1) | 2024.12.06 |
|---|---|
| 상수와 리터럴 (0) | 2024.12.03 |
| 실수 자료형, 논리 자료형 (0) | 2024.12.02 |
| 3일차 자료형 (2) | 2024.11.21 |
| 2진수(부호비트, 2의 보수), 변수(선언, 초기화) (0) | 2024.11.19 |