변수
변수 종류
1byte = 8bit
byte = 2^8가지수, -2^72^7-1
short = 2^16가지수, -2^152^15-1
int = 2^32가지수, -2^312^31-1
long = 2^64가지수, -2^632^63-1, 접미사 L
실수 부동 소수점 방식
실수를 가수와 지수 형식으로 저장하는 방식 float : 부호비트(1bit)+지수(8bit)+가수(23bit)=32bit=4byte, 3.4*10^38, 접미사 f double: 부호비트(1bit)+지수(11bit)+가수(52bit)=64bit=8byte, 1.7^10^308
기수부 지수부 1.xxx * 2^n = 저장한 숫자
float(실수) 는 long(정수형 변수) 보다 범위가 넓기 때문에 자동형변환이 안된다.
참조형 변수
주소값을 저장한다. (직접 값을 꺼내고 싶음 Arrays.toString 등을 사용할 수 있다.) String : 문장 저장 그 외 : Object, Array, List, ... : 객체, 배열 리스트와 같은 단일 저장공간에 담을 수 없는 값을 저장
래퍼 클래스 변수
기본형 변수를 클래스로 감쌈 ex) boolean -> Boolean class에 있는 method를 사용할 수 있는 이점이 있다.
박싱과 언박싱
박싱 - Integer num = new Integer(21); 언박싱 - int n = num.intValue();
String 과 char의 저장 관점에서의 차이점
문자 문자 뒤에 \0(null) 가 없다. 1byte만 쓰기 때문에 끝을 알아서 데이터만 저장하면 된다.
문자열 문장의 끝에 \0(null)가 함께 저장된다. 몇개의 byte를 쓸지 모르기 때문에 끝을 표시해야 한다.
기본형 변수와 참조형 변수의 저장 관점에서의 차이점
기본형 변수 원본값이 Stack 영역에 있다. Stack은 정적으로 할당된 메모리 영역이다.
문자열 원본값이 Heap 영역에 있다. Heap은 동적으로 할당된 메모리 영역이다.
자동 형변환 vs 강제 형변환
작은 타입에서 큰 타입 형 변환시 (자동 형변환) 값의 손실이 없다. 값의 손실이 없이 변환가능하여 컴파일러가 자동으로 형변환을 해준다.
큰 타입에서 작은 타입 형 변환시 (강제 형변환) 값의 손실이 생긴다. 개발자가 직접해야 한다.
Last updated