Java

05. 상수와 리터럴 - 패스트캠퍼스 백엔드 부트캠프 3기

gkss2tpt 2024. 12. 17. 17:06

1. 변수, 상수, 리터럴

  • 변수(variable) - 하나의 값을 저장하기 위한 공간
  • 상수(constant) - 한 번만 값을 저장 가능한 변수
  • 리터럴(literal) - 그 자체로 값을 의미하는 것
int score = 100; // 리터럴 = 100
score = 200; // 리터럴 = 200
  	
final int MAX = 100; // MAX는 상수, 리터럴 = 100
MAX = 200; // 에러, 리터럴 = 200

 
2. 리터럴의 접두사와 접미사

boolean power = true; // false
char ch = 'A';
String str = "ABC";
byte b = 127;
int i = 100; 	// 10진수
int oct = 0100;	// 8진수
int hex = 0x100; // 16진수
long l = 10_000_000_000L; // L생략불가
long l = 100; // L생략가능
float f = 3.14f;
double d = 3.14d;;	// d 생략가능
10. -> 10.0
.10 -> 0.10
10f -> 10.0f
1e3 -> 1000.0d // e는 10의 n제곱 실수형에 사용됨

 
3. 변수와 리터럴의 타입 불일치

  • 범위가 '변수 > 리터럴' 인 경우
int i = 'A';	// int > char
long l = 123;	// long > int
double d = 3.14f;// double > float
  • 범위가 '변수 < 리터럴' 인 경우
int i = 30_0000_0000;	// int의 범위 (+-21억)을 벗어남
long l = 3.14f ; 	// long < float
float f = 3.14;		// float < double
  • byte, short 변수에 int리터럴 저장가능
byte b = 100;	// byte의 범위(-128~127)에 속함
byte b = 128;	// byte의 범위를 벗어남
  • 문자와 문자열
char ch = 'A';
char ch = 'AB'; // 에러
String s = "ABC";
String s = "A";
String s = ""; // 빈 문자열
char ch = ''; // 에러

String s1 = "AB";
String s2 = new String("AB");

String s1 = "A" + "B"; // "AB"

// "" + 7 -> "" + "7" -> "7"
// "" + 7 + 7 -> "7" + 7 -> "7" + "7" -> "77"
// 7 + 7 + "" -> 14 + "" -> "14" + "" -> "14"
// 문자열 + any type -> 문자열
// any type + 문자열 -> 문자열