👩‍💻 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; 가능