[Java]기본 타입

Devlog·2024년 2월 14일

Java

목록 보기
2/41

기본타입

정수타입: byte, char, short, int, long
실수타입: float, double
논리타입: boolean

리터럴(literal) - 소스 코드에서 프로그래머에 의해 직업 입력된 값

int i = 11; //11이 리터럴

정수 리터럴

👩‍💻 int

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

👩‍💻byte


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

👩‍💻 long


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도 정수 타입에 속함

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)

👩‍💻 char


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
가
가
가

String

문자열 - 큰따옴표(")로 감싼 문자
- 유니코드로 변환되지 않음
- 작은따옴표(')와 큰따옴표(")는 컴파일러가 문자 리터럴과 문자열 리터럴을 구별하는 기호로 사용

👩‍💻 String


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)

👩‍💻 float, double


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("시작합니다.ㅓ");
		}
	}

}
💻 출력
중지합니다.

0개의 댓글