1. 변수
1) 선언
변수는 항상 공간의 개념과 함께 나온다. 그렇기에 변수는 타입과 이름을 선언하는 과정이 필수다. 선언은 변수를 음식이라고 한다면 선언은 이렇게 표현할 수 있다.
2) 저장
선언 다음은 저장이 필요하다. 저장하는 방식은 2가지이다.
2. 변수의 종류
1) 상수 : 한 번 값이 정해지고 나면 끝까지 값이 변하지 않는 저장공간. 데이터 타입 앞에 final 을 붙인다.
final int number = 10; // 한번 정해지면 값이 변하지 않는다
number = 11; // 값이 변하지 않기 때문에 오류가 발생한다.
2) 기본형
가) 논리형 변수 boolean : True / False 값만 저장한다.
boolean flag = true; // boolean데이터 타입으로 선언 + true 값으로 초기화
flag = false; // false 값으로 변경
나) 문자형 변수 char : 'A', '1' 과 같은 문자 '하나'만 저장한다.
char alphabet = 'A'; // 'A' 문자 하나만 저장한다.
다) 정수형 변수 byte, short, int, long : 정수형 숫자값을 저장한다. 각각 저장 범위의 차이 때문에 나눠져 있다. 순서대로 큰 저장 범위를 가진다. 저장 범위의 숫자를 넘게 되면 오버플로우가 발생한다(놀이공원 표 카운트 기계 생각하면 됨). 실수형 자동 형 변형이 안된다. 저장할 수 없다.
byte num = 127; // -128 ~ 127
short num = 32767; // -32768 ~ 32767
int num = 2147483647; // -21억 ~ 21억
long num = 2147483647L; // 숫자 뒤에 대문자 L 이라는 구분값 접미사를 붙임
라) 실수형 변수 float, double : 소수점 실수값을 저장한다. 정수형과 마찬가지로 저장 범위에 따라 구분, 순서대로 큰 저장 범위를 가진다. 마찬가지로 저장 범위의 숫자를 넘게 되면 오버플로우가 발생한다. 정수형 자동 형 변형이 된다. 저장할 수 있다.
float = long 보다 큼. 접미사 f를 붙임
double = float 보다 큼
3) 참조형
가) 문자열 변수 String : "텍스트"와 같은 문자열, 문장을 저장한다.
String message = "Hello World"; // String 은 "문자열"
나) 그 외 변수 Object, Array, List 등등 : 객체, 배열, 리스트와 같은 단일 저장공간에 담을 수 없는 값을 저장한다.
List<int> alphabet = [0,1,2,3]; // 여러 종류 중 List는 기본형 변수 여러개를 저장한다.
4) 래퍼 클래스(Wrapper Class)
기본형 변수를 클래스로 한번에 랩핑(감싸는) 변수, 이렇게 감싸면 래퍼 클래스가 가지고 있는 기능(메서드)들을 사용할 수 있다.
가) 박싱 vs 언박싱
기본 타입에서 래퍼 클래스로 변수를 감싸는 것을 '박싱', 래퍼 클래스를 기본 타입으로 가져오는 것을 '언박싱'
int intnum = 6548; // 래핑할 기본형 intnum 정의
Integer inem = intnum; //래핑 클래스 inem에 기본형 intnem을 저장 == 박싱
System.out.println(inem.intValue()); // 래퍼클래스 출력
<TMI. 오래 앉아있던 날은 하체 운동이 뒤지게 힘들다.>