Chapter 2. 변수와 자료형
변수=Variable
메모리 공간의 접근을 위한 문법적 요소다?
메모리 공간의 활용에 필요한 두가지 요소
1. 데이터 저장을 위한 메모리 공간의 할당 방법 > 확보
2. 할당된 메모리 공간의 접근(저장 및 참조) 방법 > 접근
▼▽▼▽
JAVA는 '변수(variable)'라는 것을 통해 이 두가지 방법을 모두 제공
"난 10진수 정수의 저장을 위한 메모리 공간을 할당하겠다!"
"그리고 그 메모리 공간의 이름을 num이라 하겠다!"
→int num : 변수의 선언
Int와 같이 변수의 특성을 결정짓는 키워드를 가리켜 자료형이라 한다.
정수 표현방식의 이해
1Byte에서 8bit로 쪼개서 보면
<양의 정수>
[0] | [0][0] [1][1] [0][0] [1] =25
↓
부호: MSB(Most Significant Bit)
MSB를 제외한 나머지는 크기를 나타낸다.
<음의 정수>
2의 보수가 음의 정수 표현 방식이라는데 정확히는 이해가 가지 않지만
0과 1을 반전시킨다음 1을 더하면 되는거 같음, 심지어 내림도 해야함 1bit를
실수 표현방식의 이해
※미리 결론: 실수는 오차를 동반한다.
실수는 1.1과 1.2사이에도 무한대로 존재하기에 근사치를 사용하므로 오차가 있을 수밖에 없음
→정밀도를 포기하고 대신 표현할 수 있는 값의 범위를 넓히려고 함
실수의 표현 위한 수식 : ±(1.m)×2e-127
Double num1 = 2.000001; 이라고 선언을 함. 위의 수식을 근거로 근사치를 뽑아냄
'm은 몇이고 e는 몇이다' 이런 식으로!
그러면 이제 double이 8byte데, 맨 앞에 MSB가 부호를 지정하고 나머지에서 m의 값과 e의 값을 저장해주는 것이다. 이것이 앞서 방법에 따라 나온 2.000001의 근사값 num1이 저장되는 방법이다.
자료형의 이해
[byte, short, int, long] 정수 자료형
을 구분하는 기준은 바이트 크기에 따라!
작은 크기의 정수 저장에는 short? Or int?
웬만하면 int가 나음! > CPU는 int형 데이터의 크기만 연산 가능(8byte)
근데 short는 4byte이니까 변환의 과정을 거쳐야 함, 심지어 별도의 변환데이터 저장공간 마저 필요하기에 번거로움.
그러면 short나 byte따위는 왜 필요할까? 그거 말고 int쓰거나 가끔 long쓰면 되는거 아닌가? > 연산보다 데이터의 양이 중요시 되는 상황에서 용이, mp3나 동영상 같은것.
JAVA의 2가지 실수 자료형
Float, Double(각 4byte와 8byte)
둘다 표현할 수 있는 범위가 넓은 편임!
각 소수점 이하 6,12자리 정밀도
일반적으로 double이 선호된다.