👩💻 BackEnd/☕️ 자바 [Java]
[java 입문] 변수 / 상수 / 리터럴
minhe2810
2023. 4. 12. 19:14
자바의 정석, 프로그래머스 자바 입문 편 정리 내용입니다.
✅ 변수
1) 변수란?
: 하나의 값(Data)을 저장할 수 있는 메모리공간
: 값(Data)이 변할 수 있는 수
변수에 어떤 데이터를 담을지에 따라서 그에 맞는 그릇(변수)을 선택해야한다.
--> 변수는 값을 담을 수 있는 그릇!
* java는 강형언어로, 컴파일 시 모든 변수의 type 이 결정되는 언어이다.
처음 변수를 선언할 때 부터 해당 변수 type을 잘 설정해야하고, 알맞은 데이터만 저장할 수 있다.
ex ) int count;
int ---> type 을 의미 (정해진 type, 혹은 개발자가 type들을 정의해서 사용할 수 있음)
count ---> 이름을 의미 / 식별자 (마음대로 정해도 상관 없음)
2) 변수 선언 방법
변수 타입 변수 이름; // 변수를 선언하는 방법
int x;
3) 변수에 값을 저장하는 방법
int x;
x = 0;
int y = 0;
- "=" : 오른쪽의 값을 왼쪽에 저장하라는 의미의 대입 연산자
- 변수는 오직 하나의 값을 저장할 수 있기 때문에, 이미 저장된 변수에 새로운 값을 저장하면 기존의 값은 지워지고 새로 저장된 값만 남게된다.
4) 변수의 초기화
- 메모리는 여러 개의 프로그램이 함께 자원을 공유하기 때문에 사용하기 전에 새로운 값을 저장함으로써 기존에 저장되어있는 알 수 없는 값을 지운다.
5) 변수의 종류
- 클래스 변수
- 인스턴스 변수
- 지역 변수 : 지역 변수의 경우 0으로 자동 초기화가 되지 않기 때문에 컴파일 시 에러가 날 수 있다. 따라서 0으로 항상 초기화 해준 뒤에 사용해야 한다.
✅ 상수
1) 상수란?
- 변수와 마찬가지로 값을 저장할 수 있는 공간인 것은 같지만
- 변수와 달리 한번 값을 저장하면 다른 값으로 변경할 수 없다는 점이 특징이다.
2) 상수 선언 방법
final int MAX_SPEED = 10;
final int MAX_VALUE;
MAX_VALUE = 100;
MAX_VALUE = 200; // 에러. 상수에 저장된 값을 변경할 수 없음.
- 변수의 타입 앞에 'final' 이라는 키워드를 붙여준다.
- 관례적으로 상수의 변수명은 대문자로 작성하며 여러 단어로 이루어져 있는 경우 _ 를 사용하여 구분해준다.
✅ 리터럴
리터럴은 항상 뭔지 잘 몰랐는데 이번에 공부하면서 자세히 그 의미를 알게 되었다.
1) 리터럴이란?
리터럴(literal)은 그 자체로의 값을 의미한다.
예를들어
String name = "min"; 이라고 선언했을 경우 'min' 이 리터럴이 되고,
int a = 12; 이라고 선언했을 경우 12 가 리터럴이 된다.
✅ 변수와 리터럴의 타입 불일치
1. 범위가 변수 > 리터럴 인 경우 OK
int i = 'A'; // 65로 저장 가능
long l = 123; // long > int, 저장 가능
double d = 3.14f; // double > float, 저장 가능
2. 범위가 변수 < 리터럴 인 경우 ERROR
int i = 30_0000_0000L; // int 는 20억까지만 저장 가능. 30억이라서 저장 불가
long l = 3.14f; // float > long, 저장 불가
float f = 3.14d; // float < double, 저장 불가
3. byte, short 변수에 int 리터럴 저장 가능
- byte는 -128 부터 127까지 저장 가능. 따라서 byte b = 127; 가능