📝느낀 점
코딩테스트 문제를 풀다가, char타입이 int형으로 대입이 가능하고, 반대로 int타입이 char타입으로 대입 가능하고,,
이게 무엇인가 싶었다. 분명 문자인데..? 이게 왜 가능한거지? 에 대한 생각이 컸기에, 관심을 가지고 나의 블로그에 글을 남긴다. char는 기본형 타입에서 문자 타입으로 분리 되었다고 하지만, 사실상 2 바이트 정수라는 것이다. 그리고 중요한 아스키코드 덕분에 이렇게 가능하게 된 것이라고 이해하고 있다.
팩트는
실제로 컴퓨터는 문자를 구별할 수 없다.
즉, 컴퓨터 안에는 절대 문자가 저장될 수 없을뿐더러, 모든 것이 숫자로 저장되는 것이다.
그렇다면 char는 대체 어떻게 저장되나요?
사람과 컴퓨터가 언어를 교환하기 위해서 만들어진 코드가 있다.대표적인 아스키코드가 있다
따라서 우리가 char형 변수의 문자를 선언하게 되면, 해당 문자는 아스키코드의 규칙에 맞게
숫자로 치환이 되어 컴퓨터에 저장되게 되는 것이다.
코드 확인
char c = 'A';
int c1 = 'A';
System.out.println(c); // A
System.out.println('A'); // A
System.out.println((int)c); // 65
System.out.println((int)'A'); // 65
System.out.println(c1); // 65
연산도 가능하다
char c1 = 'A';
char c2 = 'A';
System.out.println(c1 + c2); // 130
System.out.println('A' + 'A'); // 130
정수 65와 65가 더해진 것이다.
Reference
'Java' 카테고리의 다른 글
변수들은 JVM에서 어디에 할당 되나요? / 클래스와 객체 차이 (0) | 2023.11.06 |
---|---|
클래스와 메소드의 사용 이유는 무엇인가요? (0) | 2023.11.06 |
String 객체를 생성하는 방법과 내부 동작 원리 (String Pool) (0) | 2023.11.06 |
생성자를 왜 만들어야 하나요? / 컴파일러는 왜 기본 생성자를 자동으로 생성해 주나요? (0) | 2023.11.06 |
DTO를 만들어 두면 무슨 장점이 있나요? (0) | 2023.11.06 |