본문 바로가기

JAVA

[JAVA] Constant & Literal

상수

변하지 않는 값 (↔변수: 변하는 값)

 

상수 선언

final 키워드를 사용

 

final double PI = 3.14;
final int MAX_NUM = 100;

이전에 final로 선언된 함수는 초기화 하거나 새로운 값을 대입할 수 없다.

프로그램 내에서 변경되지 말아야 하는 값을 상수로 선언 해 두고 혹시 변경 되는 경우, 선언 값만 변경하면 된다.

 

예시

 

package binary;

public class Constant {

	public static void main(String[] args) {
		final int MAX_NUM = 100;
		final double PI = 3.14;
		

	}

}
 

리터럴(Literal)

프로그램에서 사용하는 모든 숫자, 값, 논리 값

ex) 10, 3.14, a, True

 

리터럴에 해당하는 값은 특정 메모리 공간인 상수 풀(constant pool)에 위치한다. 

필요한 경우 상수 풀에서 가져와 사용하면 상수 풀에 저장할 때에는 정수는 int형으로 실수는 double형을 저장된다. 

따라서 long이나 float값으로 저장해야되는 경우 식별자(L, I, F, f)를 명시해야 한다.

 

형 변환(type conversion)

자료형은 각각 사용하는 메모리 크기와 방식이 다르다. 서로 다른 자료형의 값이 대입되는 경우에 형 변환이 발생

형 변환은 두 가지가 있다.

1. 묵시적 형 변환

작은 수에서 큰 수로, 덜 정밀한 수에서 더 정밀한 수로 대입되는 경우가 이에 해당한다.

 

예시

long num =3;
//int 값에서 long형으로 자동 변환 
//L, l을 명시하지 않아도 된다.
package binary;

public class ImplicityConversion {

	public static void main(String[] args) {
		byte bNum = 10;
		int num = bNum;
		
		System.out.println(bNum);
		
	/*바이트 수가 큰 byte에서 int형으로 넘어갔으므로 
	 따로 형 변환을 표기하지 않아도 된다.
	 이것이 묵시적 형 변환이다.*/
		
		long lNum = 10;
		float fNum = lNum;
		
		System.out.println();
		
		double dNum = fNum + num;
		System.out.println(dNum);
	}

}

2. 명시적 형 변환

묵시적 형변환의 반대의 경우를 말하며 변환되는 자료 형을 명시해야 한다. 

왜냐하면 자료의 손실이 발생할 수 있기 때문이다. 

 

예시

double dNum = 3.14;

int num = (int)dNum; //자료형 명시

 

package binary;

public class ExplicityConversion {

	public static void main(String[] args) {
		
		int iNum = 1000;
		byte bNum = (byte)iNum;
		
		System.out.println(iNum);
		System.out.println(bNum);
		
		double dNum = 3.14;
		iNum = (int)dNum;
		
		System.out.println(iNum);
		
		float fNum = 0.9F;
		
		int num1 = (int)dNum + (int)fNum;
		int num2 = (int)(dNum + fNum);
		
		System.out.println(num1);
		System.out.println(num2);
	}

}

 

'JAVA' 카테고리의 다른 글

[JAVA] double & float Variable  (0) 2020.08.11
[JAVA] char Variable  (0) 2020.08.11
[JAVA] 5. Byte Variable  (0) 2020.08.07
[JAVA] 4. int Type Variable  (0) 2020.08.07
[JAVA] 3. Calculating positive number and negative number  (0) 2020.08.07