본문 바로가기
★Programming★/Java

Java복습 - ①

by 최뱅 2010. 4. 28.

이번 카테고리에서는 헤더 퍼스트 자바 라는 책을 공부한 내용을 복습하면서 정리 하고자한다

모두 이론적인 부분이며 자바라고 해서 꼭 자바에만 적용이되는 내용이 아니고

객체지향인 C#부분에서도 상당히 많은 부분이 동일하다.

C++같은 경우에는 다른 부분이 있지만 객체지향에 대해 이해 할려고 노력했다.

따로 그림을 그려서 설명하면 좋은데 대부분은 글로 복습하며 포스팅을 할 것이다.

우선 자바라는 것이 무엇인지는 검색해 보면 나오니 패스~!


1. 자바라는 것은 어떻게 돌아가는가?
  
   [소스]->[컴파일러]->[결과물]->[가상머신]

   위의 순서로 자바라는 것은 결과물을 만들어낸다.

   결과물에서는 바이트코드라는 것이 생성이되고 이것을 자바가상머신(JVM)

   에서 돌리며 결과가 나온다. 대충 이정도만 기억하도록하자.

2.클래스는 어떻게 설계하는가?

   우선 클래스에 무엇인지 안다고 가정하고 클래스에는 인스턴스 변수와 메소드로 나누어

   져있는데 그렇다면 인스턴스 변수에는 무엇을 넣고 메소드에는 어떤 것을 만들어야

   되는가?

   객체(객체란건 후에 설명)에서 아는것 = 인스턴스변수
   객체에서 하는것 = 메소드

   라고 생각하고 클래스를 설계하면 될꺼 같다.

3.모두다 클래스이면 Main도 클래스 안에 있는데 이건 뭐냐?

   main은 크게 두가지 용도로 쓰이며

   프로그램을 실행시키는 부분이라고 생각하면 된다.

   두가지 용도는

  1. 클래스를 테스트 하는 용도
  2. 자바의 응용프로그램 시작용도
 
4.변수에는 어떤 종류가 있고 객체랑은 머가 다른가?

   변수에는 원시 변수와 객체 래퍼런스가 있다.

   원시변수란 자주 쓰는 기초적인 값인 int, bool, float 등등 이되고

   객체래퍼런스란 객체와 연결되는 래퍼런스를 말한다.

  여기서 객체의 생성과정에 대해서 생각해보자

  별거 아닌거 같지만 정말 중요한 개념이다.

  Dog mydog = new Dog();

   라는 것을 썼다고 하자 Dog는 클래스 이다,

   ① "Dog mydog"라는 부분은 래퍼런스변수를 선언하는 부분이다.

  즉, mydog라는 래퍼런스를 선언하고 변수용공간 (스택)에 요청 변수명을 저장

  하는 부분이다.

   ② "new Dog()"라는 부분은 Heap에 새로운 객체 Dog를 만들어주는 것이다.

   ③ " = " 라는 부분은 ①②에서 만든 레퍼런스와 객체를 연결해주는 것이다.

   그림으로 나타내면 더욱 쉽게 이해하겠지만 이렇게 한다는 개념은 알아두도록 하자