자바의 변수와 타입 공부
- 자바는 정수, 실수 , 논리값을 저장할 수 있는 기본 타입을 제공한다
- 정수타입 : byte, char, short, int, long
- 실수 타입 : float , double
- 논리타입 : boolean
- 자바 정수 타입은 총 5개로 메모리 사용 크기와 저장되는 값의 범위가 서로 다르다
- byte : 1byte - 8bit : -2^7~ (2^7-1) [ -128 ~ 127]
- short : 2byte - 16bit : -2^15 ~ (2^15-1) [-32768 ~ 32767]
- char : 2byte - 16bit : 0~(2^16-1) [0~65535(유니코드)]
- int : 4byte - 32bit : -2^31 ~ (2^31-1)[-2147483648 ~ 2147483648647]
- long : 8byte - 64bit : -2^63 ~(2^63-1)[-9223372036854775808 ~ 9223372036854775807]
- Char 타입은 음수 값을 가질 수 없으며 나머지 정수 타입이 저장할 수 있는 값의 범위는 -2^n-1 ~ (2^n-1 -1) 이다
- n은 메모리의 bit 수이며 정수 타입으로 선언된 변수에는 정수 리터럴을 대입해서 정수를 저장할 수 있다.
- 소스코드에서 개발자에 의해 직접 입력된 값을 리터럴이라 한다
- 2진수 : 0b 또는 0B로 시작하고 0과 1로 구성된다
- 8진수 : 0으로 시작하고 0~7로 구성된다
- 10진수 : 소수점 없는 0~9 숫자로 구성된다
- 16진수 : 0x 또는 0X로 시작하고 0~9 숫자와 A,B,C,D,E,F 또는 a,b,c,d,e,f, 로 구성된다
package sec01.exam01;
public class IntegerLiteralExample {
public static void main(String[] args){
int var1 = 0b1011;
int var2 = 0206;
int var3 = 365;
int var4 = 0xB3;
System.out.println("var1 :" + var1);
System.out.println("var2 :" + var2);
System.out.println("var3 :" + var3);
System.out.println("var4 :" + var4);
}
}
- 하나의 문자를 작은 따옴표로 감싼 것을 문자 리터럴이라고 하며 문자리터럴은 유니코드로 변환되어 저장된다.
- 유니코드 : 세계 각국의 문자를 2byte로 표현할 수 있는 숫자로 매핑한 국제 표준 규약( 0~65535
- 자바는 2byte크기인 char 타입으로 제공함
- 유니코드는 정수이므로 char도 정수 타입에 속한다.
- char var1 = 'A' // 유니코드 65
- System.out.println(var1); // 'A'를 출력
- int var2 ='A'
- System.out.println(var2); // '65'를 출력
package sec01.exam01;
public class CharExample {
public static void main(String[] args){
char c1 ='A';
char c2 =65;
char c3 ='\u0041';
char c4 = '가';
char c5 = 44032;
char c6 = '\uac00';
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);
System.out.println(c4);
System.out.println(c5);
System.out.println(c6);
}
}
- 작은 따옴표로 감싼 문자는 char 타입 변수에 저장되어 유니코드로 저장되지만, 큰따옴표로 감싼 문자 또는 여러개의 문자들은 유니코드로 반환되지 않는다.
- 자바에서 큰 따옴표로 감싼 문자들을 문자열이라고 부른다.
- 작은 따옴표와 큰 따옴표는 컴파일러가 문자리터럴과 문자열 리터럴을 구별하는 기호로 사용되며 문자열을 변수에 저장하고 싶다면 String 타입을 사용해야한다.
- String은 기본 타입이 아니고 클래스 타입이다
-이스케이프문자 : 문자열 내부에 역슬래시(\)가 붙은 문자 사용
- 이스케이프 문자를 사용하면 문자열 내부에 특정문자를 포함시킬 수 있음
-큰 따옴표는 문자열 식별 기호인데 데이터로 써 큰 따옴표를 사용하고 싶을 때는 이스케이프 문자를 사용한다.
이스케이프 문자
\t : 탭만큼 띄운다
\n : 줄바꿈
\r : 캐리지리턴
\" : "출력
\' : '출력
\\ : \ 출력
\u16진수 : 16진수 유니코드에 해당하는 문자 출력
package sec01.exam01;
public class StringExample {
public static void main(String[] args){
String name ="김뉴";
String job = "개발자";
System.out.println(name);
System.out.println(job);
}
}
package sec01.exam01;
public class EscapeExample {
public static void main(String[] args){
System.out.println("번호\t이름\t직업");
System.out.println("행단위출력\n");
System.out.println("행단위출력\n");
System.out.println("우리는 \"개발자\"이다");
System.out.println("봄\\여름\\가을\\겨울");
}
}