목록CS/JAVA (8)
-
지난번에 했던걸 총 정리해보겠습니다. 자바로 코드를 작성한다고 합시다. 자바의 내용은 컴파일되어서 .class안에 담기게 되고 이것은 JVM으로 실행할 수 있습니다. 이 JVM으로 실행된 .class는 1,2,3번 순서대로 실행이 될텐데요. 1번이 실행되고 2번에서 static을 찾습니다. 이 찾아진 static은 메모리 공간에 항상 띄워지게 됩니다. 그리고 3번의 main메서드를 실행하는데요. 이 main또한 static이기 때문에 메모리 공간에 담깁니다. 그리고 4번이 실행되는데요. 4번은 main 큐를 실행하는 과정으로서 main내부의 코드들을 각각 실행합니다. 그리고 이 main이 종료되면 마지막으로 스택 공간에 main이라는 것이 쌓입니다. 순서는 이렇게 됩니다. 아직까지 스택이 뭔지, 큐가 뭔..
메서드는 자바에서 정말 중요한 파트입니다. 메서드는 뜻이 행위라고 하는데 예를 이 사진으로 보겠습니다. 커피머신과 손님이라는 클래스를 만들었을 때 손님클래스안에는 커피마시기를 구현하고자 하고 커피머신 클래스에는 커피만들기를 구현하려고 한다고 가정합시다. 이렇게 MethodEx01 내부에 메서드를 만들고 void start(){ } 하게 되면 이 중괄호 내부에 들어가는 코딩 내용들이 start라는 메서드를 실행시켰을 때 나옵니다. 이 start() 메서드를 항상 메모리에 띄우는 방법이 있습니다. 바로 static입니다. 메서드도 이전에 배웠던 것처럼 똑같이 static을 통해 메모리 공간에 띄울 수 있습니다. 이렇게 한 번 입력해볼까요? 같은 클래스 내부니까 클래스는 굳이 안써도 되지만 여기서 더 작성해볼..
자바의 변수에는 일반변수와 레퍼런스변수가있습니다. 일반 변수는 크기가 정해져 있는 것으로서 해석할 수 있습니다. 여기서 num은 int타입으로 main안에 선언했기 때문에 일반변수입니다. 그러나, MyData는 우리가 직접 만든 클래스이기 때문에 자바입장에서는 이것을 직접 실행시켜보지 않는 이상 이 MyData에 대해 모릅니다. 그래서 이렇게 MyData에서 이 d라는 변수를 갖고왔을 때를 레퍼런스변수라고 합니다. 크기가 정해져 있지 않다는 것은 컴파일 시점에 이야기하는 것입니다. 그리고 또 알아야할 것이 있습니다. 나중에 타입 변수라는 것이 나오는데 이 타입 변수를 선언한다는 것은 int num;까지만 썼을 때를 의미합니다. 즉, num에 값을 넣지 않고 num만 선언했기 때문에 이것을 변수를 선언했다..
이번 시간에 배울 건 클래스 자료형의 Heap저장에 대해 배울 것입니다. 저번 시간에 배운 이 MyVar의 클래스 자료형은 사실 단점이 있습니다. 만약 나와있는 n1과 c1의 데이터 외에 다른 값을 넣으려면 일일히 값을 바꿔야 한다는 번거스러움이 있습니다. 자 만약 static을 이용했을 때 단점을 정리하겠습니다. 1) 프로그램 시작전 부터 프로그램 종료시까지 존재하기 때문에 메모리 낭비 2) 많은 데이터를 저장하고 싶을 땐 클래스 자료형을 여러 개 만들어야 하는 소모성 이렇게 있을 수 있습니다. 그러므로 우린 Heap을 이용하여 데이터를 정리해보겠습니다. 이 Static이라는 것은 정적인 상태입니다. 항상 메모리에 띄워놓고 미리 정해야하기 때문에 데이터가 많아질수록 과부하가 걸리기 쉬워서 정적인 sta..
이전에 배운거 복습해보겠습니다. 이제는 10.8이나 true, 20 의 자료형은 각각 무엇일까요??? - double, boolean, int 타입이 되겠습니다. 그럼 생각할 것이 있습니다. 20도 저장하고 싶고 'A'도 저장할 수 있는 그런 타입이 있지 않을까요?? 결론적으로 그런 자료형은 없습니다. 하지만 방법이 하나 있습니다. 바로 '클래스 자료형'을 이용하는 것입니다. 이처럼 MyVar를 보시면 int타입, char타입 둘 다를 선언할 수 있습니다. 우린 이것을 Beans라고 부릅니다. 그렇다면 이것을 main안에서 출력하려면 어떻게 해야 할까요?? static을 이용하면 정말 편합니다. 이런식으로 .을 이용하여 출력할 수 있습니다. 이 .은 연결 연산자로서 역할을 수행합니다. MyVar안의 n1..
자바의 자료형은 대표적으로 int, boolean, double, char 가 가장 많이 쓰이는 4가지입니다. 자바를 사용하다 보면 '컴파일한다'는 이야기를 많이 듣게 됩니다. 이는 작성한 자바 클래스 파일을 저장하게 되면 생기는 현상입니다. 컴퓨터에서 자바 클래스를 읽을 수 있게 미리 메모리에 공간을 배정해놓는다고 이해하면 됩니다. 이런 경우를 살펴보겠습니다. b1, b2는 boolean타입이고 n1,d1,c1에 각각 값을 넣었습니다. 그리고 n1은 int타입, d1은 double타입, c1은 char타입을 선언했습니다. 다 작성한 후 ctrl + s를 누르면 이 클래스 파일이 저장됨과 동시에 메모리에 컴파일됩니다. 그리고 이것들을 출력할 수 있는데, System.out.println(인자); 라고 입..