티스토리 뷰
728x90
기본타입
정수 타입
타입 | 허용범위 |
byte | -128 ~ 127 |
short | -32.768 ~ 32.767 |
char | 0 ~ 65535 (유니코드) |
int | -2,147 ~ |
long | - 9,223 ~ 9,223 |
리터럴
- 소스 코드에서 개발자에 의해 직접 입력된 값
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 chap02.exam01;
public class IntegerLiteralExample {
public static void main(String[] args) {
int var1 = 0b1011;
int var2 = 013;
int var3 = 11;
int var4 = 0xB3;
System.out.println("var1" + var1);
System.out.println("var2" + var2);
System.out.println("var3" + var3);
System.out.println("var4" + var4);
}
}
🔺 문제점
- int var = 0b1011;로 선언을 하고 → System.out.println("var1" + var1); 로 출력을 했다. 어이없는 오타의 실수..
byte 타입 변수
package chap02.exam02;
public class ByteExample {
public static void main(String[] args) {
byte var1 = 128;
byte var2 = 200; //byte에 200이 포함되지 않는다.
}
}
- byte 변수에 허용 범위를 초과한 값을 대입했기 때문에, 컴파일 오류 발생
long 타입 변수
package chap02.exam03;
public class LongExample {
public static void main(String[] args) {
long var1 = 10;
long var2 = 2000000000;
long var3 = 20000000000l; //l을 붙여주면, long타입으로 인식
System.out.println(var1);
System.out.println(var2);
System.out.println(var3);
}
}
- 기본적으로 컴파일러는 정수 리터럴을 Int 타입으로 간주
- long 타입임을 정수 리터럴 뒤에 소문자 l, 대문자 L을 붙여 알려주면 됨.
char 타입
- 하나의 문자를 저장할 수 있는 타입
package chap02.exam04;
public class CharExample {
public static void main(String[] args) {
char c1 = 'A';
char c2 = 65;
char c3 = '\\u0041';
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);
char c4 ='가';
char c5 = 44032;
char c6 = '\\uAC00';
System.out.println(c4);
System.out.println(c5);
System.out.println(c6);
}
}
- 문자 리터럴: 하나의 문자를 ‘ ‘로 감싼 것. 문자 리터럴은 유니코드로 변환되어 저장됨.
String 타입
- 문자열을 String 타입 변수에 저장
package chap02.exam05;
public class StringExample {
public static void main(String[] args) {
String name = "홍길동";
String job = "프로그래머";
System.out.println(name);
System.out.println(job);
}
}
double 타입
- 자바는 실수 리터럴을 기본적으로 double 타입으로 해석
- 메모리에 여유가 있고, 특별한 이유가 없는 한 실수 리터럴 ⇒ double 타입으로 저장
float 타입
- 리터럴 뒤 f 혹은 F 붙여, float 타입으로 표시
- 실수 리터럴을 float 타입 변수에 저장하면 컴파일 에러 발생
package chap02.exam07;
public class FloatDoubleExample {
public static void main(String[] args) {
// float var1 = 3.14; 컴파일 에러
// 실수값 저장
float var2 = 3.14f;
double var3 = 3.14;
// 정밀도 테스트
float var4 = 0.123456789f;
double var5 = 0.123456789;
System.out.println("var2: " + var2);
System.out.println("var3: " + var3);
System.out.println("var4: " + var4);
System.out.println("var5: " + var5);
**// double 타입인 var5가 float 타입인 var4보다 2배 이상 정밀한 값으로출력**
// e 사용하기
double var6 = 3e6;
float var7 = 3e6f;
System.out.println(var6);
System.out.println(var7);
}
}
var2: 3.14
var3: 3.14
var4: 0.12345679
var5: 0.123456789
3000000.0
3000000.0
논리 타입
- 참과 거짓에 해당하는 true와 false 리터럴을 저장하는 타입
- 두 가지 상태값에 따라 제어문의 실행 흐름을 변경하는데 사용
package chap02.exam08;
public class BooleanExample {
public static void main(String[] args) {
boolean stop = true;
if(stop) {
System.out.println("중지합니다.");
} else {
System.out.println("시작합니다.");
}
}
}
중지합니다.
- stop 변수가 true 값을 가지고 있기 때문에, if 블록이 실행되어 “중지합니다.”가 출력. 만약, stop 변수가 false 값을 가지고 있다면 else 블록이 실행되어 “시작합니다.”를 출력한다.
끝내기 핵심 - 타입
- 정수타입 : 정수를 저장할 수 있는 타입으로 byte, short, int, long 타입을 말한다
- char 타입: ‘ ‘로 감싼 하나의 문자 리터럴을 저장할 수 있는 타입
- String 타입: “ “로 감싼 문자열을 저장할 수 있는 타입
- 실수 타입: 실수를 저장할 수 있는 타입으로 float, double 타입
- boolean 타입: 참, 거짓 → ture, false를 저장할 수 있는 타입