10. 자바 기초(4)
자바의 기초 언어를 공부하자.
10. 자바 기초(4)
변수(Variables)
데이터를 저장하는 메모리
- 변수 선언 : 메모리를 준비시키는 명령문
1
2
3
4
5
메모리 타입(Data type) 메모리 명(변수 명);
메모리명(변수 명) = 값;
int a;
a = 1;
짤지식
- = : assgnment operator (대입, 할당, 배정)
Data type
- Primitive(원시, 기본) Data Type
- 정수 - byte(1), short(2), int(4), long(8)
- 부동 소수점 - float(4), double(8)
- 논리 - boolean
- 문자 - char(2)
- User Defined Data Type
- 클래스
Data type의 역할
- 메모리 사용을 제어
1
2
3
4
5
6
int i;
float f;
i = 30; // 0x0000001E (2의 보수)
f = 30; // 0x41E00000 (IEEE-754)
char c = '가'; // 0xAC00
boolean b = true; // 0x01
실제 메모리 상태는 4byte 안에 상기의 2진수 값이 들어가있음 하지만 이해를 쉽게 하기 위해 추상화 시켜 넣는 느낌
짤지식
- whitespace
- space (공백)
- tap
- newline (줄바꿈)
메모리 크기와 값의 범위
정수 메모리 크기와 값의 범위
1byte = 8bit 0~255 : 256개 : -128 ~ 127
2byte = 65536개 : -32768 ~ 32767
4byte = $2^{32}$ : -2,147,483,648 ~ 2,147,483,647
8byte = $2^{64}$ : 약 -922경 ~ +922경
byte(1byte) b = -128(int 타입 정수 리터럴)
- 4byte 값을 1byte 메모리에 저장할 수 없지만 리터럴일 경우, 저장할 수 있는 값이면 허락함
b = -129; ← 1byte의 범위를 넘어간 값은 저장 불가.
00~11 = 2²-1
부동소수점 메모리 크기와 값의 범위
- 4byte 소수점을 빼고 숫자의 자릿수를 셋을 때 7자리까지 거의 정확하게 저장됨 == 유효자릿수
- 8byte 소수점을 빼고 숫자의 자릿수를 셋을 때 15자리까지 거의 정확하게 저장됨
- 유효자릿수를 초과하면 값이 짤려서 들어갈 가능성이 높다.
- 정확하게 말할 수 없다. ⇒ 2진수로 변환하는 과정에서 유효하지 않은 자리 수라도 정확하게 저장될 수있다.
- 4→8 2배 더 큰 값(정밀한 값)을 저장
부동소수점 계산 시 주의
float f1 = 32.17541f;
float f2 = 23447.12f
float f3 = f1 + f2; ⇒ 23479.29541 ← 7자리를 초과해서 위험
→ 그래서 부동소수점은 기본으로 8byte 사용을 권장, 리터럴도 8byte일 때 접미사를 안 붙임
문자 저장
char c = ‘가’ ← 유니코드 값을 리턴 함;
‘가’ 문자 저장 ⇒ ‘가’ 문자의 유니코드 값을 저장하면 됨
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.