JAVA/변수 Variable

[JAVA] 상수와 리터럴(constant&literal)

prize1209 2021. 6. 6. 02:37

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