반응형
상수 (constant)
상수란 변수와 마찬가지로 데이터를 저장할 수 있는 메모리 공간을 의미합니다.
하지만 상수가 변수와 다른 점은 프로그램이 실행되는 동안 메모리에 저장된 데이터를 변경할 수 없다는 점입니다.
public class example1 {
public static void main(String[] args) {
final double Pl = 3.14;
// 변수 이름은 낙타 표기법
int daysOfYear = 365;
// 상수 이름은 모두 대문자
final int DAYS_OF_YEAR = 365;
final int HOURS_OF_DAY = 24;
int days = DAYS_OF_YEAR*HOURS_OF_DAY;
int days2 = 365*24;
}
}
- 프로그래밍에서 상수는 변경하지 않도록 약속한 변수
대표적인 상수인 원주유의 경우 프로젝트 종류별로 값이 다르게 지정될 것이다.
하지만 하나의 프로젝트 안에서는 값이 동일해야 하고 변경할 수 없다.
이럴 때 final 키워드를 붙여 변경을 금지하고 대문자를 이용해 상수임을 알린다.
- final 키워드는 변경을 금지한다.
변수에 적용하면 상수가 된다.
메소드에 적용하면 override가 금지된다.
클래스에 적용하면 상속이 금지된다.
리터럴 (literal)
리터럴이란 그 자체로 값을 의미하는 것입니다.
즉, 변수와 상수와는 달리 데이터가 저장된 메모리 공간을 가리키는 이름을 가지고 있지 않습니다.
public class example2 {
public static void main(String[] args) {
int a = 100; // 정수 리터럴
double f = 3.14; // 실수 리터럴
String str = "Hello"; // 문자열 리터럴
}
}
- 리터럴은 소스 코드에서 고정된 값을 의미하며 변수 초기화에 주로 사용된다.
리터럴의 타입
public class example1 {
public static void main(String[] args) {
long var1 = 10;
long var2 = 20L;
long var3 = 1000000000000; // <- 컴파일 에러
long var4 = 1000000000000L;
}
}
- 정수를 대표하는 타입은 int이다 -> 정수 리터럴은 기본적으로 int로 취급
정수 대입
public class example4 {
public static void main(String[] args) {
int a = 10;
long b = 20;
int c = b;
long d = a;
}
}
- 범위가 좁은 타입을 넓은 타입에 대입하면 자동 변환된다.
- 범위가 넓은 타입을 좁은 타입에 대입하면 오류 (int c = b;) -> 개발자가 수동으로 타입을 변환해야 한다.
반응형
'코딩 > Java' 카테고리의 다른 글
자바(JAVA) - 제어문 (0) | 2021.01.27 |
---|---|
자바(JAVA) - 연산자(Operator) (0) | 2021.01.26 |
자바(JAVA) 문자타입, String 타입, 실수 타입, 논리 타입 (0) | 2021.01.24 |
자바(JAVA) - 변수 선언, 데이터 타입 (0) | 2021.01.23 |
자바(JAVA)의 특징 - 아직까지 많은 개발자가 사용하는 이유 (0) | 2021.01.22 |