1. 상수(constant)
한번만 값을 저장할 수 있는 공간. 값을 한번 저장하면 다른 값으로 바꿀 수 없다.
변수의 타입 앞에 final 을 붙인다.
final int MAX_SPEED =10; //상수 MAX_SPEED를 선언&초기화
상수는 선언과 동시에 초기화해야하며, 그 후부터 상수의 값을 바꿀 수 없다.
상수의 이름은 모두 대문자로 하며, 여러 단어로 이루어져있는 경우 _로 구분한다.
2. 리터럴(literal)
원래 12, 'A', 123, 3.14 같은 값들이 '상수'인데 값을 한번 저장하면 변경할 수 없는 값으로 정의했기에, 이와 구분하기 위해 '리터럴'이라는 용어를 사용한다.
3. 리터럴의 타입과 접미사
종류 | 리터럴 | 접미사 |
논리형 | false, true | 없음 |
정수형 | 123, 0b0101, 077, 0xFF, 100L | L |
실수형 | 3.14, 3.0e8, 1.4f, 0x1.0p-1 | f, d |
문자형 | 'A', '1', '\n' | 없음 |
문자열 | "ABC", "123", "A", "true" | 없음 |
e는 10의 n제곱
e는 실수형에 사용되기 때문에 실수형이다.
정수형의 경우, long타입의 리터럴에 L, l 을 붙이고, 접미사가 없으면 int 타입 리터럴이다.
byte와 short 타입 리터럴은 존재하지 않으며 byte와 short 타입의 변수에 값을 저장할 때는 int타입 리터럴을 사용한다.
public class VariableTest2_2 {
public static void main(String[] args) {
int octNum = 010; //8진수10, 10진수로 8
int hexNum = 0x10; // 16진수 10, 10진수로 16
int binNum = 0b10; // 2진수 10, 10진수로 2
long big = 100_000_000_000L;
long hex = 0xFFFF_FFFF_FFFF_FFFFL;
float pi = 3.14f;
double rate= 1.618d;
}
}
실수형 리터럴에서는 접미사를 붙인다. float 타입은 f, double 타입은 d .
실수형은 double이 기본 자료형이라서 접미사 d는 생략이 가능하다.
4. 타입의 불일치
리터럴 값이 변수의 타입 범위를 넘어가거나, 리터럴의 타입이 변수의 타입보다 저장범위가 넓으면 컴파일 에러.그릇(변수)보다 물건(리터럴)이 더 큰 경우 에러.
public class VariableTest_2 {
public static void main(String[] args) {
//byte b = 128;
//System.out.println(b);
//타입 미스매치 에러. 128은 byte의 범위를 벗어난다.
byte c = 127;
int oct =010; //8진수, 10진수로 8
int hex=0x10; // 16진수, 10진수로 16
System.out.println(oct);
System.out.println(hex);
//println은 십진수로만 출력
//다른 진수로 출력하려면 printf 메소드 사용
long l = 1000_000_000;
//long d = 10_000_000_000; int값을 벗어났다는 에러->L을 붙여서 long 타입 리터럴로 변환
float f = 3.14f;
System.out.println(10.);
System.out.println(.10);
System.out.println(10f);
System.out.println(1e3);
char ch ='A';
int i = 'A';
String str = ""; //빈 문자열
String str2 = "ABCD";
String str3 = "123";
String str4 = str2+str3;
System.out.println(str4);
System.out.println(""+7+7);
System.out.println(7+7+"");
}
}
문자 리터럴과 문자열 리터럴
문자열 리터럴은 "안에 아무것도 넣지 않는 것을 허용하며, 이를 빈 문자열이라고 한다.
그러나 문자 리터럴은 반드시 "안에 하나의 문자가 있어야한다.
String str = "";
char ch = ''; //에러 , 반드시 하나의 문자가 필요
char ch = ' '; // 공백 문자(blank)로 변수 ch를 초기화
public class StringEx {
public static void main(String[] args) {
String name = "Ja"+"Va";
String str=name+8.0;
System.out.println(name);
System.out.println(str);
System.out.println(7+" "); //공백
System.out.println(" "+7); //공백
System.out.println(7+"");
System.out.println(""+7);
System.out.println(""+"");
System.out.println(7+7+"");
System.out.println(""+7+7);
}
}
정리
변수 : 하나의 값을 저장하기 위한 공간
상수: 값을 한번만 저장할 수 있는 공간
리터럴: 그 자체로 값을 의미하는 것
'JAVA > 변수 Variable' 카테고리의 다른 글
[JAVA] 화면에서 입력받기 -Scanner (0) | 2021.06.06 |
---|---|
[JAVA] 형식화된 출력-printf() (0) | 2021.06.06 |
[JAVA] 기본형(primitive type) (0) | 2021.06.06 |
[JAVA] 변수의 타입 (0) | 2021.06.06 |
[JAVA] 변수 Variable (0) | 2021.06.05 |