상수
- 정수형 상수 - ex) 10, 20, -60
- 실수형 상수 - ex) 1.2 , 3,14321
- 문자형 상수 - ex) ‘A’, ‘B’
- 문자열 상수 - ex) “ABCD”, “A”
- 논리형 상수 - ex) true, false
- 상수변수 : final 변수는 변수이름을 대문자로 지정한다.
final boolean BOOL = true;
-
아스키코드 (ASCII CODE) : 1byte , 대.소문자, 숫자, 공백, 특수문자 ‘A’ -> 65 |
‘a’ -> 97 |
System.out.printf("%c%c\n", 'A','B'); //-> AB
System.out.println('A'+'B'); //-> 131
System.out.println(""+'A'+'B'); //-> AB
char ch = 'A';
ch = 65; // 65를 할당해도 ch는 char타입이므로 문자에 맞게 출력된다.
System.out.println("문자 : " + ch); // -> 문자 : A
- 유니코드 (UNI CODE) : 2byte, 한글, 중국어 등 아시아권 문자는 1byte 체계로 표현불가.
- 자바는 유니코드 체계의 언어이다.
- 유니코드(‘\u’) 값은 16진수로 표현해야 한다.(16진수 4개필요)
char ch = 'A'; ch = 65; // 65를 할당해도 ch는 char타입이므로 문자에 맞게 출력된다.
ch = '\u0041'; // 유니코드(16진수 4자리)
ch = '\uAC00';
System.out.println("문자 : " + ch); //-> 문자 : 가
형변환
- 형변환을 통해 char ch일때, 잠시 정수형으로 인식하게 할 수 있다. (논리형은 불가)
char ch = 'a';
System.out.println((int)ch); // (int)를 붙여준다.
- 연산을 위해서는 기본적으로 데이터타입을 맞춰주어야 한다.
- 자료형의 크기 비교
- byte < short < int < long < float < double
- char < int < long < float < double
- 연산자를 기준으로 좌.우의 변수의 형이 다를 때 사용한다. 강제적형변환과 묵시적형변환 2종류가 있다.
- 묵시적 형변환 : 두 데이터의 자료가 다를 때 따로 표기가 없으면 큰수를 따라간다.
System.out.println('A'+20); //-> 85 (따로(int) 안붙여도 'A'는 int를 따라간다.)
System.out.println(12.3+45); //-> 57.3 (double을 따라간다.)
double num = /*(double)*/ 12; //실수는 정수를 포함하므로 double 생략가능
int num2 = (int)12.34; // 이 경우에는 정수형임을 반드시 명시해야한다.
- 강제적 형변환 : 반드시 타입을 명시해야한다.
- 인코딩방식 (메모리에 차이가 있다.)
- EUC-KR : 유니코드 기반 ( 한글 1자를 2byte형태로 인식 )
- UTF-8 : 한글 1자를 3byte형태로 인식