IT이야기/JAVA

[자바의 정석] Chapter1. 자바 기본지식

FelixShin 2016. 4. 24. 02:43
반응형

자바의정석 책을 공부하면서 내용을 정리하고 있다. 자바 공부하시는 분들 참고 바란다.



1. 자바란?

썬 마이크로시스템즈에서 개발하여 1996년 1월에 공식적으로 발표한 객체지향 프로그래밍 언어



2. 자바 언어의 특징


1) 운영체제에 독립적 (Write once, run anywhere)

(1) 일종의 에뮬레이터인 자바가상머신(JVM)로 인해 다양한 운영체제에 적용할 수 있음

(2) 자바 응용프로그램은 운영체제나 하드웨어가 아닌 JVM하고만 통신하고, 

  JVM이 자바 응용프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달

 즉, 자바 프로그램은 운영체제에는 독립적이나 JVM에는 종속적


2) 객체지향언어

 : Object-oriented programming language 중 하나로, 객체지향 개념의 특징인 상속, 캡슐화, 다형성이 잘 적용된 언어미


3) 자동 메모리 관리(Garbage Collection)

 : 자바 프로그램이 실행되면 가비지 컬렉터(Garbage collector)가 자동적으로 메모리를 관리해줌

 

4) 네트워크와 분산처리 지원

 : 인터넷과 대규모 분산환경을 염두에 두었기 때문에 풍부하고 다양한 네트워크 프로그래밍 라이브러리(JAVA API)를 통해 

   비교적 짧은 시간에 네트워크 관련 프로그램을 쉽게 개발할 수 있도록 지원


5) 멀티쓰레드 지원

 (1) 멀티쓰레드 지원은 사용되는 운영체제에 따라 구현방법도 상당히 다르나,  자바에서 개발되는 멀티쓰레드는 시스템과 관계없이 구현 가능되고

  관련된 라이브러리(JAVA API)가 제공되므로 구현이 쉬움

(2) 여러 쓰레드에 대한 스케줄링은 자바 인터프리터가 담당함


6) 동적 로딩(Dynamic Loading) 지원

 : 자바는 동적로딩을 지원하므로 실행 시에 모든 클래스가 로딩되지 않고 필요시점에 맞게 클래스를 로딩하여 사용할 수 있음


7) 자바의 단점은

 (1) 속도 문제 : 일반 어플레케이션은 OS만 거치고, 하드웨어로 전달되지만, 자바 어플리케이션은 실행시 JVM에 해석되어 OS를 거치고 하드웨어로 전달되기 때문  

 (2) 다중 상속이 불가

 (3) 오라클이라는 기업에 의지해야함



3. JVM(JAVA VIRTUAL MACHINE)

 : 자바 어플리케이션은 JVM에서만 실행되기 때문에 자바 JVM이 반드시 필요함






JDK : Java Development Kit 

JDK는 자바 프로그램을 개발하기 위한 툴과 프로그램을 돌리기 위한 JRE가 필요함


JRE에 개발툴, 컴파일러, 디버거 등이 포함되는 건 아니다.

자바프로그램 실행을 위해서는 시스템 내에 JRE가 인스톨되어야함

JRE = JVM + Java Package Classes(util, math, lang, awt, swing etc) + runtime library


4. 자바 프로그램의 실행과정


c:\jdk1.7\work>java Hello

를 실행시켰을 때 내부 진행순서는 아래와 같음

1) 프로그램의 실행에 필요한 클래스(*.class파일)을 로드

2) 클래스파일을 검사(파일형식, 악성코드 체크)

3) 지정된 클래스(Hello)에서 main(String[] args)를 호출



출처:

http://www.javabeat.net/what-is-the-difference-between-jrejvm-and-jdk/