페이지

2015. 1. 5.

[JAVA] Day1.Java

Java의 탄생

1991년경 Sun Microsystems의 Green project라는 연구진으로부터 'Oak'라는 language가 개발되면서 Java가 시작 되었다.


Java의 특징

1. 배우기 쉽다. - 사실 어려움 ㅜㅜ
2. 객체지향 프로그래밍
3. Garbage Collection - 메모리 관리를 할 필요가 없다. 이것 때문에 안드로이드가 기본 바탕 언어로 자바를 선택한 이유. 인공지능 청소기라고 보면 쉬움.
4. 플랫폼 독립성 - OS환경에 영향을 받지 않는다. 어느 환경에서 돌아간다.
5. MultiThread - 한꺼번에 여러가지 업무를 수행 할 수 있다.




Java Platform

Java Program이 실행되기 위해 제공되는 Hardware적 Program




Java Platform의 구성

자바를 구동하기 위해서 실행기(JVM(JRE))
그 위에 API가 있다.




Java Platform의 종류

Java 2 Platform, Standard Edition(J2SE)
Java 2 Platform, Enterprise Edition(J2EE)
Java 2 Platform, Micro Edition(J2ME)





JVM(Java Virtual Machine)

Java Compiler에 의해 만들어진 byte code를 해석하고 실행하는 Virtual Machine(CPU)




JVM의 개략적 구성

Class Area
Java Stack
Heap
Native Method Stacks




Java 실행 구조

자바의 경우 인터프리터 방식에 가까움

javac name.java << 컴파일 name.class 파일 생성
java name << class파일을 실행



Java API

JDK Setting시 제공되는 유용한 class들에 대한 사용 방법을 문서화 하여 제공해 주는 도움말.




java 다운로드

http://www.oracle.com/kr/index.html


path 설정


JAVA_HOME
C:\Java\jdk1.7.0_71

Path
.;C:\Java\jdk1.7.0_71\bin;
.;%JAVA_HOME%\bin;

CLASSPATH
.;%JAVA_HOME%\lib\;




java -> compile 방식 + interprete 방식 혼용

FirstTest.java -> compile -> FirstTest.class -> 실행 시에 기계어 변환
컴파일 명령 -> javac FirstTest.java
실행 명령 -> java FirstTest





java가 compile + inteprete 혼용하는 이유

-> write once run anywhere
-> compile 방식은 compile한 OS에 최적화 -> 다른 OS 에서 실행이 어려움
-> java compile은 인간어와 기계어의 중간인 bytecode(~.class)를 생성
-> JVM(JRE)가 설치된 OS 어디에서나 실행 가능










JVM 기능

-> class file을 읽어 들임
-> bytecode 검사 (bytecode verifier)
-> class를 메모리에 적재 (class loader)
-> 사용이 종료된 메모리 영역을 해제 (garbage collection)