저장 공간이 제한적이기 때문에 저장 크기에 대한 기준과 CPU가 데이터를 처리할 때 일정한 기준이 필요함
비트 : 데이터의 저장 최소 단위, 2진수값 하나를 저장할 수 있음
바이트 : 데이터 처리 또는 문자의 최소 단위, 1개 바이트는 8개 비트로 구성됨
자료형
변수 허용 범위 초과 : Type mismatch : cannot covert from int to byte 에러
정수 타입 변수
부호 bit (최상위 bit) : 양수는 0, 음수는 1로 표시
byte : 1바이트 (-127 ~ 128)
short : 2바이트
int : 4바이트 (-21억 ~ 21억)
리터럴값이 정수값일 때 기본자료형
long : 8바이트
long 자료형임을 알려주기위해 소문자나 대문자 L을 표기해주는게 관례 (L을 더 권장)
실수 타입 변수
부동 소수점 방식으로 메모리에 저장 (부호 + 지수 + 가수)
float : 4바이트
소수점아래 7자리까지 표현가능
반드시 값 뒤에 f를 붙여줘야한다.
double : 8바이트
리터럴값이 실수값일 때 기본자료형
소수점아래 15자리까지 표현가능
논리 타입 변수
조건문, 제어문에 주로 사용
boolean : 1바이트 (true/false)
기본값 false
문자 타입 변수
char : 2바이트, 1글자
기본값 공백
반드시 ' '(작은따옴표)안에 넣어줘야한다
실제로는 정수타입 (문자는 실제로 숫자로 저장하기 때문 (유니코드))
유니코드 : 세계 각국의 문자를 0~65535 숫자로 매핑한 국제 표준 규약
어떤 문자도 대입하지 않고 단순 초기화를 할 경우 반드시 작은 따옴표 사이에 공백 하나를 넣어줘야함
문자열 타입 변수
String : 여러 글자 (참조형)
반드시 " "(쌍따옴표)안에 넣어줘야한다
문자열 내부에 역슬래쉬가 붙은 이스케이프 문자를 사용할 수 있음
Java 13부터는 텍스트 블록 문법으로 값을 큰따옴표 3개로 감싸면 작성된 그대로 문자열로 저장됨 (이스케이프나 라인 피드를 할 필요 없음)
리터럴
변수에 대입되는 값
진수에 따른 정수 리터럴 작성 방법
//2진수 : 0b 또는 0B로 시작하고 0과 1로 작성
int x = 0B1011;
//8진수 : 0으로 시작하고 0~7 숫자로 작성
int x = 013;
//10진수 : 소수점이 없는 0~9 숫자로 작성
int x = 12;
//16진수 : 0x 또는 0X로 시작하고 0~9 숫자나 A,B,C,D,E,F 또는 a,b,c,d,e,f로 작성
int x = 0xB3;