JAVA
변수와 상수
seulki_lim
2023. 4. 3. 12:28
변수
- 변하는 저장공간
- 변수를 만드는 과정 : 선언 -> 할당
int number; // number라는 이름의 int(숫자)타입 저장공간 선언
int : 저장공간 타입
number : 저장공간 이름
저장공간에 값을 저장하는 방법
1. 선언과 동시에 저장 : 초기화
int number = 10;
2. 선언 이후에 값을 저장 : 덮어쓰기
number = 10;
상수
- 변하지 않을 값을 저장하는 변하지 않는 저장공간
- 데이터 타입 앞에 final을 붙임
final int number = 10; // 1. 상수로 선언 (데이터 타입 앞에 final 을 붙이면 됩니다.)
number = 11; // e2. 변수의 값을 바꾸려고하면 에러가 납니다!
변수 타입
기본형
1. 논리형 변수 : boolean
True/False 값만 저장함
boolean flag = true; // 1. 논리형 변수 boolean 으로 선언 및 True 값으로 초기화
flag = false; // 2. False 값으로도 저장할 수 있습니다.
2. 문자형 변수 : char
문자 하나만 저장함
char alphabet = 'A'; // 문자 하나를 저장합니다.
3. 정수형 변수 : byte, short, int, long
정수형 변수 표현 범위
- byte (1byte) : -128 ~ 127 범위의 숫자만 저장 가능
- short (2byte) : -32,768~32,767 범위의 숫자만 저장 가능
- int (4byte) : -21억~21억 범위의 숫자만 저장 가능
- long (8byte) : 9백경 정도의 매우 큰수를 저장 가능. 접미사L
byte byteNumber = 127; // byte 는 -128 ~ 127 범위의 숫자만 저장 가능합니다.
short shortNumber = 32767; // short 는 -32,768~32,767 범위의 숫자만 저장 가능합니다.
int intNumber = 2147483647; // int 는 -21억~21억 범위의 숫자만 저장 가능합니다.
long longNumber = 2147483647L; // long 은 숫자뒤에 알파벳 L 을 붙여서 표기하며 매우 큰수를 저장 가능합니다.
4. 실수형 변수 : float, double
실수형 변수의 표현 범위
- float (4byte) : 3.4 * -10^38 ~ 3.4 * 10^38(long 보다 큼)범위의 숫자 저장이 가능. 접미사f
- double (8byte) : 1.7 * -10^308 ~ 1.7 * 10^308(long 보다 큼)범위의 숫자 저장이 가능
float floatNumber = 0.123f; // float 는 4byte 로 3.4 * 10^38 범위를 표현하는 실수값
double doubleNumber = 0.123123123; // double 은 8byte 로 1.7 * 10^308 범위를 표현하는 실수값
참조형
단일 공간에 담을 수 없는 복잡한 변수
1. 문자열 변수 : String
문장을 저장함
String message = "Hello World"; // 문자열을 저장합니다.
2. 그 외 : Object, Array, List …
객체, 배열, 리스트와 같은 단일 저장공간에 담을 수 없는 값을 저장함
배열은 주소값을 저장
List<int> alphabet = [0,1,2,3]; // 기본형 변수 여러개를 저장합니다.
래퍼 클래스 변수
기본형 변수를 클래스로 한번 랩핑(감싸는) 변수
기본형 변수 타입명에서 첫글자를 대문자로 바꾸어서 래퍼 클래스를 정의
박싱 VS 언박싱
박싱 : 기본 타입에서 래퍼 클래스 변수로 변수를 감싸는 것
언박싱 : 래퍼 클래스 변수를 기본 타입 변수로 가져오는 것
// 박싱 VS 언박싱
// 박싱
// Integer 래퍼 클래스 num 에 21 의 값을 저장
int number = 21;
Integer num = new Integer(number); // 옛날방식
Integer num = number; // 현재 방식
// 언박싱
int n = num.intValue(); // 래퍼 클래스들은 inValue() 같은 언박싱 메서드들을 제공해줍니다.