변수, 상수, 리터럴

쪼개발자·2024년 5월 13일

1. 변수(Variable)

  • 하나의 값을 저장할 수 있는 메모리 공간(RAM)

2. 변수의 선언 및 저장

  • 변수타입 변수이름;
    ex) int age = 10;
    age라는 메모리 공간에 10이라는 값을 저장하는 것

3. 변수의 종류

클래스 변수, 인스턴스 변수, 지역 변수(꼭 초기화 해야 함)

4. 변수의 타입 (기본형 8가지)

문자 char
정수 byte, short, int, long
실수 float double
논리 boolean

5. 변수와 상수, 리터럴

변수(variable)는 저장한 값을 변경가능하지만 상수(constant)는 '한 번'만 저장 가능

리터럴의 접두사와 접미사
접미사 : 대/소문자 구분 없이 사용.
float a = 1.4f;
byte b = 127;
byte b = 128; -> error, byte타입은 -128 ~ 127까지만 저장 가능
int i = 100;
int bi = 0b0101; // 2진수
int oct = 0100; // 8진수
int hex = 0x100; // 16진수
long l = 10000_000_000L; // L안붙이면 에러남. int범위를 벗어나는 값이기 때문에. 는 보기 편하라고 넣는 것임

float f = 3.14f; (f를 생략하면 double로 인식하여 오류가 남)
double d = 3.14d; (d는 생략가능)

Quiz
10. => double 10.0
.10 => double 0.10
10f => float 10.0
1e3 => double 1000.0

변수와 리터럴의 타입 불일치

1) 가능한 케이스 : 범위가 변수 > 리터럴
int i = 'A'; // int의 저장범위가 char보다 크므로 가능함
long l = 103; // long > int
double d = 3.14f; // double > float

2) 불가능한 케이스 : 범위가 변수 < 리터럴
int i = 30_000_000_000; //int의 범위(20억)를 벗어남
long l = 3.14f // long < float
float f = 3.14 // float < double

3) byte, short변수에 int리터럴 저장 가능
byte b = 100; // byte범위 -128 ~ 127에 속하므로
byte b = 128; // 이건 범위를 벗어나서 오류

기본형과 참조형

기본형 Primitive Type

  • boolean, char, byte, short, int, long, float, double 딱 8개
    참조형 Reference type
  • 기본형을 제외한 나머지(String, System등.. )
  • 메모리 주소를 저장(4 byte or 8 byte)
    (32bit JVM에서는 4byte, 64bit JVM에서는 8byte)

참조형 변수 예제
Date today;
today = new Date();
// today에 객체의 주소를 저장하는 것

0개의 댓글