기본타입
정수타입: byte, char, short, int, long
실수타입: float, double
논리타입: boolean
int i = 11; //11이 리터럴
public class IntegerLiteralExample {
public static void main(String[] args) {
// int → -2,147,483,648 ~ 2,147,483,647
int var1 = 0b10111; //2진수
int var2 = 0206; //8진수
int var3 = 365; //10진수
int var4 = 0xB3; //16진수
System.out.println("var1: "+var1);
System.out.println("var2: "+var2);
System.out.println("var3: "+var3);
System.out.println("var4: "+var4);
}
}
💻 출력
var1: 23
var2: 134
var3: 365
var4: 179
public class ByteExample {
public static void main(String[] args) {
// byte → -128 ~ 127
byte var1 = -128;
byte var2 = -30;
byte var3 = 0;
byte var4 = 30;
byte var5 = 127;
//byte var6 = 128; => 컴파일 에러(Type mismatch:cannot convert from int to byte)
System.out.println(var1);
System.out.println(var2);
System.out.println(var3);
System.out.println(var4);
System.out.println(var5);
}
}
💻 출력
var1: 23
var2: 134
var3: 365
var4: 179
public class LongExample {
public static void main(String[] args) {
// long → -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
// 정수 리터럴이 int 타입의 허용 범위 이내라면 L을 붙이지 않아도 됨
long var1 = 10;
long var2 = 20L;
//long var3 = 1000000000000; -> 컴파일 에러
long var4 = 1000000000000L;
System.out.println(var1);
System.out.println(var2);
System.out.println(var4);
}
}
💻 출력
10
20
1000000000000
- 하나의 문자를 작은따옴표(')로 감싼 것
- 유니코드로 변환되어 저장됨
- 유니코드는 정수이므로 char도 정수 타입에 속함
char var1 = 'A' //유니코드: 65
char var2 = 'B' //유니코드: 66
char c = 65; //10진수
cahr c1 = 0x0041; //16진수
- 작은따옴표(')로 감싼 문자 리터럴은 유니코드로 변환되기 때문에 int 타입 변수에도 저장 가능
char var1 = 'A';
int var2 = 'A';
System.out.println(var1); //A를 출력
System.out.println(var2); //65를 출력
- 초기화시
char var1 = ''; (x)
char var1 = ' '; (o)
public class CharExample {
public static void main(String[] args) {
char c1 = 'A'; //문자를 직접 저장
char c2 = 65; //10진수로 저장
char c3 = '\u0041'; //16진수로 저장
char c4 = '가'; //문자를 직접 저장
char c5 = 44032; //10진수로 저장
char c6 = '\uac00'; //16진수로 저장
System.out.println(c1);
System.out.println(c2);
System.out.println(c3);
System.out.println(c4);
System.out.println(c5);
System.out.println(c6);
}
}
💻 출력
A
A
A
가
가
가
문자열 - 큰따옴표(")로 감싼 문자
- 유니코드로 변환되지 않음
- 작은따옴표(')와 큰따옴표(")는 컴파일러가 문자 리터럴과 문자열 리터럴을 구별하는 기호로 사용
public class StringExample {
public static void main(String[] args) {
String name = "홍길동";
String job = "프로그래머";
System.out.println(name);
System.out.println(job);
}
}
💻 출력
홍길동
프로그래머
이스케이프(escape)문자 : 문자열 내부에 역슬래시()가 붙은 문자 사용가능
\t - 탭만큼 띄움
\n - 줄 바꿈(라인 피드)
\r - 캐리자리턴
\" - " 출력
\' - ' 출력
\ - \ 출력
\u16진수 - 16진수 유니코드에 해당하는 문자 출력
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("봄\\여름\\가을\\겨울");
}
}
💻 출력
번호 이름 직업
행 단위 출력
행 단위 출력
우리는 "개발자" 입니다.
봄\여름\가을\겨울
- float → 소수점 이하 7자리(float타입으로 저장하게 되면 리터럴 뒤에 (f or F)를 붙여야함)
- double → 소수점 이하 15자리(default)
public class FloatDoubleExample {
public static void main(String[] args) {
//실수값 저장
//float var1 = 3.14; default가 dobule이기 때문에 실수 리터럴을 float타입 변수에 저장하면 컴파일 에러 남
float var2 = 3.14F;
double var3 = 3.14;
//정밀도 테스트
float var4 = 0.1234567890123456789F;
double var5 = 0.1234567890123456789;
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;
double var8 = 2e-3;
System.out.println("var6: "+var6);
System.out.println("var7: "+var7);
System.out.println("var8: "+var8);
}
}
💻 출력
var2: 3.14
var3: 3.14
var4: 0.12345679
var5: 0.12345678901234568
var6: 3000000.0
var7: 3000000.0
var8: 0.002
- boolean타입으로 true, false를 사용함
public class BooleanExample {
public static void main(String[] args) {
boolean stop = true;
if(stop) {
System.out.println("중지합니다.");
}else {
System.out.println("시작합니다.ㅓ");
}
}
}
💻 출력
중지합니다.