저장공간(변수)의 종류
기본형 변수
논리형 변수:boolean
- true/false 값만 저장
- boolean flag = true; //논리형 변수 불리언으로 선언 및 true값으로 초기화
flag = false //폴스값으로도 저장 가능
문자형 변수:char
- A,1 같은 문자 하나만 저장한다. // 1byte
- char alphabet = 'A'; // ''따옴표 감싸주는 게 문자형 변수
정수형 변수:byte < short < int < long
- 0, 1, 2, 99와 같은 정수형 숫자값을 저장한다
- byte bytenumber = 127; // -128 ~ 127 범위의 숫자만 저장 가능
short shortnumber = 32767; // -32768 ~ 32767
int intnumber = 2147483647;
long longnumber = 9223372036854775807L //숫자뒤에 접미사 L을 붙여서 표기함
실수형 변수:float, double
- float(4byte), double(8byte)
- float floatnumber = 0.123f //4byte 접미사 f를 끝에 붙임.
double doublenumber = 0.123123123; //8byte
0.123, 0.999와 같은 소수점 실수값을 저장함.
- 실수형 변수의 표현 범위 : 실수도 동일하게 각 변수 표현 범위를 넘는 숫자를 넣게되면 오버플로우가 발생하고, 해당 숫자를 출력해보면 입력값과 다른값으로 표현된다.
실수는 표현범위가 매우 넓어서 정수형 변수에서 담지 못 할 수 있다.
- float는 4byte만 쓰는데 long보다 더 넓은 범위를 표현함.
float가 long보다 더 넓은 범위를 표현하기 때문에 자동 형변환이 안된다.
참조형 변수
문자열 변수:string
- "Apple", "텍스트" 같은 문장을 저장 // 하나 이상의 문자형이 저장된 형태, "쌍따옴표"를 붙여줘야함.
래퍼 클래스 변수 (wrapper class)
- 기본형 변수를 클래스로 한번 랩핑(감싸는) 변수
박싱 vs 언박싱
- 기본 타입에서 래퍼 클래스 변수로 변수를 감싸는 것 "박싱"
래퍼 클래스 변수를 기본 타입 변수로 가지고오는 것 "언박싱"
int 기본 타입 변수를 > integer 래퍼 클래스 변수로 감싸게 되면 래퍼 클래스의 유용한 기능 사용 가능
1byte = 8bit, bit: 0과 1을 표현하는 최소단위
카멜케이스 작성법 ex) byteNumber, shortNumber 등!

리터럴 타입 지정 시 정수 리터럴은 int를 기본으로 사용.
실수 리터럴은 double을 기본으로 사용한다.
실무에서 자주 사용하는 타입
- 정수
- int, long을 사용함, 만약 20억이 넘을 것 같으면 long 사용
- 파일을 다룰 때는 byte 사용
- 실수
- 불린형
- boolean 사용 : true,false 참 거짓을 표현한다. 조건문에 자주 사용됨.
- 문자열
- String : 문자를 다룰 때는 문자 하나든 문자열이든 모두 String을 사용하자
변수 타입별 크기 순서 (숫자형), 이 순서대로 자동으로 형이 바뀐다
- byte -> short(2) -> int(4) -> long(8) -> float(4) -> double(8)
- float가 4byte인데도 더 큰 이유는 부동소수점을 쓰고 있어서! 더 많은 표현이 가능하다
기본형 변수 vs 참조형 변수 차이
1. 기본형 변수는 소문자로 시작 / 참조형 변수는 대문자로 시작
2. 기본형 변수는 값 자체를 저장 / 참조형 변수는 별도의 공간에 값을 저장한 후 그 주소를 저장함