검색결과 리스트
Sun에 해당되는 글 1건
- 2011.03.10 [자바] (1) 자바소개
글
[자바] (1) 자바소개
나름 잘 보이게 한다고, 노란박스를 사용했는데...굉장히 눈을 자극하네요...otz...
자바(Java)란?
자바의 장정
객체지향적이고, 플래폼 독립적이고, 동적이고 배포하기 쉬우며, 견고하고 보안에 강하다고 합니다.
엄밀히 말하면 객체지향적이다는 특성은 전적으로 S/W를 작성하는 개발자에게 달려있습니다.
플랫폼 독립성
c언어와 같이 컴파일러가 머신에 의존적인 기계어 코드(실행파일)를 생성하면, 유닉스, 리눅스, 윈도우, 맥 등 각 머신에서 소스를 재컴파일 해야합니다. (각 머신에 맡는 바이너리를 생성해야함). 반면 자바는 OS 와 소스 사이에 Java Virtual Machine이라는 중간계층을 두어 이를 해결했습니다. 소스코드를 가상머신이 인식할 수 있는 중간언어인 바이트 코드로 컴파일해서 배포하는 겁니다. 그러면 각 OS에 설치되있는, JVM이 바이트코드를 머신 의존적인 기계어 코드로 번역하여 실행하는 겁니다.
(단, OS마다 각 머신에 맞는 JVM을 설치해야하지만, 한번만 설치하면 이후에는 소스를 재컴파일 해야하는 번거로움이 사라집니다. 바이너리 레벨에서의 플랫폼 독립성을 확보하게 됩니다. )
기업 인터넷 환경에서 자바
유연성을 위해 3 - tier ( 프레젠테이션 계층 - 비지니스 계층 - 데이터(DB) 계층 ) 의 형태로 구성된답니다.
현재는 더욱 확장된 N - tier로 됩니다.
JVM(Java Virtual Machine)의 동작방식
클래스 로더는 먼저 소스코드를 보고 모든 필요한 클래스를 로드합니다. 필요한 클래스 위치는 CLASSPATH 환경변수를 참조하여 해당하는 위치에서 찾게됩니다. JVM Verifier는 오작동을 일으킬 수 있는 코드(무한루프)를 검사해 실행을 차단하고, 이어 바이트 코드를 실행합니다. 또한 Just-In-Time 컴파일러를 호출하여, 소스코드와 클래스 파일을 비교합니다. 클래스 파일이 생성되지 않았거나, 소스코드가 클래스파일보다 나중에 수정됐을 때만 재컴파일을 합니다.
(JIT 를 도입해서 자바의 느린성능을 어느 정도 극복했고, 버전업 될때마다, 개선을 통해 성능을 향상시키고 있습니다.)
가비지 컬레터라는 메모리 관리자는 더 이상 사용되지 않는 객체를 수시로 검사하여 자동으로 메모리를 반환해줍니다.
자바환경에서의 보안
언어차원 - 컴파일러 - 클래스 로더 - bytecode verifyer 등 계층적으로 위해한 코드를 차단해주어 안정성을 제공합니다.
자바애플리케이션은 - .zip 또는 .jar로 형태로 압축하여 배포합니다. .jar은 단순히 소스만 압축 할 수도 있고, 클래스파일
까지 포함하여 같이 압축해서 실행가능한 형태로 만들수 있습니다. 웹 기반 애플리케이션은 .WAR 형태로 압축해서 배포
합니다.
JDK(Java Development Kit)
보통 J2SE(Java2 Standard Edition)를 의미하며, 자바를 기반으로 SW를 개발할 수 있는 환경을 의미합니다.
컴파일러(javac), core class 라이브러리, 디버거(jdb), JVM, JAR(Java ARchive utility), 기타 등으로 구성됩니다.
Java1.2 버전 이후 부터 대폭 내부구조가 개선되었으며, 이런 변경을 표현하기 위해 1.2 버전 이후부터는 JAVA2라고
부릅니다. 개발 아키텍처에 따라 J2SE, J2ME, J2EE 로 나뉘기도 합니다. J2ME는 모발일 환경 SW 작성을 위해 꼭 필요한
핵심 클래스만으로 이루어진 버전입니다. J2EE는 기업환경에 적합하게 병렬실행 등을 강화한 버전입니다.
'언어로그 > Java' 카테고리의 다른 글
| (2) 리플렉션(Reflection) 사용하기 (0) | 2011.04.07 |
|---|---|
| (1) 리플렉션(Reflection) (3) | 2011.04.07 |
| 예외처리 (Exception Handling) (0) | 2011.03.24 |
| [Java] 어노테이션 사용하기 (1) | 2011.03.19 |
| [Java] 어노테이션(Annotation) (2) | 2011.03.15 |
| [자바] (1) 자바소개 (0) | 2011.03.10 |