
Java를 공부하면서 변수, 상수, 리터럴의 개념을 이해하는 것은 매우 중요합니다. 또한, 숫자를 다양한 진법(2진수, 8진수, 16진수)으로 표현하는 방법도 알고 있으면 코드의 가독성을 높이고 효율적으로 사용할 수 있습니다. 이 글에서는 Java의 변수와 상수 개념부터 리터럴의 의미, 그리고 진법 표현까지 차근차근 정리해 보겠습니다.
변수는 이전글에서 말한 것과 같이 데이터를 저장하는 공간입니다. 프로그래밍에서 값을 저장하고 관리하기 위해 변수를 사용하며, Java에서는 변수를 선언할 때 반드시 자료형을 지정해야 합니다.
int score = 100;
위 코드에서 score는 변수가 되고, int는 변수의 자료형(정수형)입니다.
💡 변수의 특징
상수는 한 번 저장된 값이 변경되지 않는 변수입니다. Java에서 상수를 선언할 때는 final 키워드를 사용합니다.
final int MAX_SCORE = 100;
MAX_SCORE는 상수이므로 이후에 값을 변경하려 하면 오류가 발생합니다.
💡 상수의 특징
final 키워드를 사용하여 선언PI, MAX_VALUE)리터럴은 그 자체로 값을 의미하는 데이터입니다. 즉, 변하지 않는 값을 직접 코드에 작성하는 것을 의미합니다.
int number = 100; // 100은 정수형 리터럴
final int MAX = 1000; // 1000은 상수 리터럴
💡 리터럴의 특징
Java에서 리터럴의 자료형을 명확히 하기 위해 접미사를 사용할 수 있습니다.
| 리터럴 | 기본 자료형 | 접미사 | 예제 |
|---|---|---|---|
| 정수형 | int | 없음 | 100 |
| 정수형 | long | L | 100L |
| 실수형 | double | 없음 | 3.14 |
| 실수형 | float | f | 3.14f |
💡 주의할 점
long은 int보다 크기 때문에 L을 붙여서 구분해야 함 (l 대신 L 사용 권장)float은 double보다 크기가 작기 때문에 f를 붙여서 구분해야 함long bigNumber = 10000000000L;
float pi = 3.14f;
Java에서는 숫자를 표현할 때 2진수, 8진수, 16진수를 사용할 수 있습니다.
| 진법 | 접두사 | 예제 | 10진수 변환 |
|---|---|---|---|
| 2진수(Binary) | 0b | 0b1010 | 10 |
| 8진수(Octal) | 0 | 012 | 10 |
| 10진수(Decimal) | 없음 | 10 | 10 |
| 16진수(Hexadecimal) | 0x | 0xA | 10 |
public class NumberSystemTest {
public static void main(String[] args) {
int bin = 0b1010; // 2진수 (10)
int oct = 012; // 8진수 (10)
int dec = 10; // 10진수
int hex = 0xA; // 16진수 (10)
System.out.println("Binary : " + bin);
System.out.println("Octal : " + oct);
System.out.println("Decimal : " + dec);
System.out.println("Hex : " + hex);
}
}
👉 출력 결과
Binary : 10
Octal : 10
Decimal : 10
Hex : 10
| 진법 | 사용 예시 |
|---|---|
| 2진수 (Binary) | 컴퓨터 내부 연산, 비트 연산, 네트워크 프로토콜 |
| 8진수 (Octal) | 예전 컴퓨터 시스템, Linux 파일 권한 (chmod 755) |
| 16진수 (Hex) | 색상 코드 (#FF5733), 메모리 주소 (0xFF), MAC 주소 (00:1A:2B:3C:4D:5E) |
✅ 변수: 데이터를 저장하는 공간 (값 변경 가능)
✅ 상수: final 키워드를 사용해 값 변경 불가
✅ 리터럴: 그 자체로 값을 의미하는 데이터
✅ 리터럴 접미사: L, f 등을 붙여 자료형을 명확하게 구분
✅ 진법 표현: 0b(2진수), 0(8진수), 0x(16진수) 사용 가능
완