변수 아시죠? 변하는수 ... 


java에선 변수명을 가지고 변수를 컨트롤합니다 (뭔가 당연한 소리같은 당연한소리) <-(?)




java머신 위에서 프로그램이 실행된다고 했자나여! 저저번 포스팅에서..


변수명을 설정하면 그 변수명이 가지고 있는 자료형에 맞춰서 메모리 공간에 할당이 됩니다!


여러분들 컴퓨터에 램 꽂혀있죠? 전 8기가 박혀있는데 


8기가 -> 8*1024*1024*1024 바이트 만큼 메모리공간이 있는겁니다.


비교하기 쉽게 그냥 적어봤어요!




소스 갑니다.


public class test {

public static void main(String[] args) {

int num;

}

}


여기서 제가 int형 변수를 생성했습니다.


int 는 몇바이트죠? 


네~4바이트~


4바이트가 할당된거에요 boolean, char, byte, short, long, double, float 등등 있습니다.


이넘들은 순서대로 1, 2, 1, 2, 4, 8, 8, 4 바이트를 할당하게 됩니다!!!


변수명으론 숫자로 시작하면 안되구, 키워드로 설정하시면 안됩니다. 키워드로 설정하는게 뭐냐..


변수이름을 int 로 해버리는거에요! 소스로 하면 int int 정수형 변수 int를 만든거죠 헷갈리죠?


그래서 아예 막아버렸어요! 키워드 = 이미 java 소스 자체에 등록되있는 이름들(int, double, if, break, while, try, import, implements 등등)


이정도로만 알면되구 다음으론,




소스


public class test {

public static void main(String[] args) {

double a, b;

a = 1.0000001;

b = 2.0000001;

System.out.println(a+b);

}

}


결과: 예상해보세요!


일반적으로 생각해봤을때는 3.0000002 가 나와야 하죠 근데 돌려보면


3.0000001999999997 요로콤 나와요..


1이상 5이하 정수의 수는?      5개죠?


1이상 5이하 실수의 갯수는?      ?????


무한개가 존재하죠... 이렇듯이 컴퓨터가 무한개의 실수를 다 표현할수는 없어요...


그래서 이 한계를 극복하고자 정밀도는 포기를 해버리고 표현의 범위를 넓힌거에요.




실수 표현을 위한 수식이 이렇게 됩니다.


플마(1.m)*(2의(e-127승))


그냥 표현할수 있는 범위가 어마어마하게 증가했음을 보여주는 겁니다!  사실 100프로 이해못했어요ㅋㅋㅋㅋㅋㅋㅋ 


실수는 완벽히 계산을 못한다~ 이렇게 알아두심됩니다!


죄송해요...




이정도면 이번 포스팅 끝내도 될거같아요 부족한거, 필요하신내용, 궁금한내용 있으시면 댓글로 적어주세요!


무한태클 받습니다!


다음포스팅에서 뵈요~




안녕!

'JAVA' 카테고리의 다른 글

JAVA 5. 실행 흐름의 컨트롤  (0) 2018.04.04
JAVA 4. 형변환과 연산자  (0) 2018.04.03
JAVA 2. system.out.println  (0) 2018.04.03
JAVA 1. 시작  (0) 2018.04.03
JAVA 공부 시작할게요!  (0) 2018.04.03

+ Recent posts