변수

변수 종류

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