목록자료형 (5)
-
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bB50Tb/btrmgIrlOVN/ez8zad6yQ0s6uCRtyLS8hk/img.png)
자바의 변수에는 일반변수와 레퍼런스변수가있습니다. 일반 변수는 크기가 정해져 있는 것으로서 해석할 수 있습니다. 여기서 num은 int타입으로 main안에 선언했기 때문에 일반변수입니다. 그러나, MyData는 우리가 직접 만든 클래스이기 때문에 자바입장에서는 이것을 직접 실행시켜보지 않는 이상 이 MyData에 대해 모릅니다. 그래서 이렇게 MyData에서 이 d라는 변수를 갖고왔을 때를 레퍼런스변수라고 합니다. 크기가 정해져 있지 않다는 것은 컴파일 시점에 이야기하는 것입니다. 그리고 또 알아야할 것이 있습니다. 나중에 타입 변수라는 것이 나오는데 이 타입 변수를 선언한다는 것은 int num;까지만 썼을 때를 의미합니다. 즉, num에 값을 넣지 않고 num만 선언했기 때문에 이것을 변수를 선언했다..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cRO91D/btrmiEg9cB3/7Uj0mMTYQAkBdpMDZITmDK/img.png)
이번 시간에 배울 건 클래스 자료형의 Heap저장에 대해 배울 것입니다. 저번 시간에 배운 이 MyVar의 클래스 자료형은 사실 단점이 있습니다. 만약 나와있는 n1과 c1의 데이터 외에 다른 값을 넣으려면 일일히 값을 바꿔야 한다는 번거스러움이 있습니다. 자 만약 static을 이용했을 때 단점을 정리하겠습니다. 1) 프로그램 시작전 부터 프로그램 종료시까지 존재하기 때문에 메모리 낭비 2) 많은 데이터를 저장하고 싶을 땐 클래스 자료형을 여러 개 만들어야 하는 소모성 이렇게 있을 수 있습니다. 그러므로 우린 Heap을 이용하여 데이터를 정리해보겠습니다. 이 Static이라는 것은 정적인 상태입니다. 항상 메모리에 띄워놓고 미리 정해야하기 때문에 데이터가 많아질수록 과부하가 걸리기 쉬워서 정적인 sta..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bNXg6m/btrmhhfRdik/zVULNGAnyvqRbbnPVDdFaK/img.png)
이전에 배운거 복습해보겠습니다. 이제는 10.8이나 true, 20 의 자료형은 각각 무엇일까요??? - double, boolean, int 타입이 되겠습니다. 그럼 생각할 것이 있습니다. 20도 저장하고 싶고 'A'도 저장할 수 있는 그런 타입이 있지 않을까요?? 결론적으로 그런 자료형은 없습니다. 하지만 방법이 하나 있습니다. 바로 '클래스 자료형'을 이용하는 것입니다. 이처럼 MyVar를 보시면 int타입, char타입 둘 다를 선언할 수 있습니다. 우린 이것을 Beans라고 부릅니다. 그렇다면 이것을 main안에서 출력하려면 어떻게 해야 할까요?? static을 이용하면 정말 편합니다. 이런식으로 .을 이용하여 출력할 수 있습니다. 이 .은 연결 연산자로서 역할을 수행합니다. MyVar안의 n1..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/SHL1b/btrmgECzB2p/7AiwrnkGq4RkZGKEUIHqX1/img.png)
자바의 자료형은 대표적으로 int, boolean, double, char 가 가장 많이 쓰이는 4가지입니다. 자바를 사용하다 보면 '컴파일한다'는 이야기를 많이 듣게 됩니다. 이는 작성한 자바 클래스 파일을 저장하게 되면 생기는 현상입니다. 컴퓨터에서 자바 클래스를 읽을 수 있게 미리 메모리에 공간을 배정해놓는다고 이해하면 됩니다. 이런 경우를 살펴보겠습니다. b1, b2는 boolean타입이고 n1,d1,c1에 각각 값을 넣었습니다. 그리고 n1은 int타입, d1은 double타입, c1은 char타입을 선언했습니다. 다 작성한 후 ctrl + s를 누르면 이 클래스 파일이 저장됨과 동시에 메모리에 컴파일됩니다. 그리고 이것들을 출력할 수 있는데, System.out.println(인자); 라고 입..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/2SvXf/btrmgQvFju7/5G99l4Vj3pGsXSKivQCAo0/img.png)
자바를 공부하면서 자료형이라는 얘기를 많이 들어보셨을겁니다. 이해를 쉽게 하기 위해 우리가 과일 장사를 한다고 해보겠습니다. 그리고 이 과일들을 판매하기 위해 창고에 적재를 하고 과일 장사를 시작한다 합시다. 이런 창고 20칸에 과일을 넣는다고 가정해보겠습니다. 이중 사과는 2칸씩 넣어야 한다고 가정하겠습니다. 그럼 위의 사진처럼 2칸이 세로로 배열되더라도 빈틈없이 넣는 것이 중요합니다. 또한 일을 처리하는 것이 심플해집니다. 그럼 창고에 적재하기 위해 사과가 30개 들어왔다고 가정해보겠습니다. 그럼 창고에는 몇칸이 필요할까요? 2 x 5니까 10칸이 필요하겠죠??? 그럼 위에 창고에 총 20칸이 있으니까 우리는 10칸만 사용하면 된다는 것을 미리!! 알 수 있는 것입니다. 프로그래밍에서도 이 원리는 똑..