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


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

제목이 너무 좁은 범위를 나타낸다고 생각을 하시겠지만 


제가 윤성우님의 '난 정말 java를 공부한적이 없다구요' 책을 보고 다시 공부중이거든요.


C, C++, 자료구조 등 같은 시리즈로 했거든요. 아주 공부잘되더라구요!




쓸데없는 소리 집어치우고 암튼 순서를 보니 system.out.println 이 있어서 하는거에요! 다음 포스팅부턴 좀더 넓은범위로 갈게요.




항상 했던대로 소스부터 때려넣을게요!!!


public class test {

public static void main(String[] args) {

System.out.println("hi");

}

}


소스보시면 public class test 부분의 test는 클래스 이름입니다. 한 소스파일안에 class는 여러개가 존재해도 되지만,


소스파일의 이름있죠? test.java 이렇다면 test라는 클래스는 꼭 존재해야합니다!


그안에는 main함수가 존재해야 하구요.


c,c++해보셨으면 main함수 아시죠? 프로그램에서 중심이 되는 함수입니다. java에선 메소드라고 하고 ,


이름은 main메소드 이렇게 불리는거 같아요.




다음 소스 넣을게요.


public class test {

public static void main(String[] args) {

System.out.println(10);

System.out.println("hello " + "world");

System.out.println(3+7);

System.out.println("hello" + 3+7);

                System.out.println("hello" + (3+7));

}

}


결과: 

10

hello world

10

hello37

hello10

첫번째 줄은 10은 그냥 10으로 출력해줍니다.

두번째는 글자를 따로 붙여쓰고 싶으면 '+' 연산자로 가능하구요.

세번째는 사칙연산이 가능하는걸 보여주고

네번째는 문자열뒤에 +를 붙이면 그냥 옆에 붙어버립니다. 그래서 3+7이 10이 아니고 37로 나오는거구

마지막줄은 3+7부분에 괄호를 쳐서 연산을 먼저하게 됩니다. 따라서 10이 출력되는거구요!



전 이런거 공부할때 간단한거라도 여러번 쳐보고 응용도 해봤어요. 이럴땐 되고 저럴땐 안되고 등등...

프로그래밍은 여러번 쳐보고 끄적끄적해보는게 최고더라구요.



어쨌건 마무리!  주석하나 알려드리고 끝낼게요! 아주간단하지만 언어가 바뀔때마다 헷갈리더라구요.ㅋㅋ

c랑 똑같아요!ㅋㅋㅋㅋ    

//  <- 한줄주석

/**/ <- 묶음 주석



깔끔하게~

다음포스팅에서 봅시다 !!




안녕!

'JAVA' 카테고리의 다른 글

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

자바는 일반적인 프로그램들과는 달리


자바 가상머신 위에서 실행되는 프로그램이다!




따라서 windows 든 linux든 unix 든 어디든지 java머신만 설치해준다면,


내가만든 java프로그램은 문제없이 실행된다는 소리!




생각해보면 나는 c프로그램을 실행할때 linux, unix에선 gcc 쓰고 windows에선 그냥 비주얼스튜디오가 컴파일 해주고 ㅋㅋ


python은 java랑 비슷하게 실행하는거 같기도 하고..




...




좀더 생각해보니 간단히 말해 자바는 운영체제 위에 java머신이 있고 그 자바머신위에 내 소스파일이 실행된다는거고


나머지들(예외가 있겠지만)은 운영체제 위에서 쌩으로 소스가 실행되는거 같음.


물론 뇌피셜이 섞여 있으니 한눈으로 읽고 다른눈으로 뱉으세요.ㅋㅋ




이거면 java 쌩 리얼 최소 기본 내용은 알고가는거 같아요.


솔직히 프로그래밍할때 이런지식들 필요없어요 완전 필요없는건 아니지만 다시 되새길 필요가 없는거같아요.




모르는거보다 아는게 나으니까!


여기서 포스팅은 끝낼게요!




안녕!


'JAVA' 카테고리의 다른 글

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

+ Recent posts