■ 자바의 특징은?

 

1.자바는 단순하다.

2.자바는 객체지향적이다.

  : 자바의 모든 프로그램의 요스들은 객체로 표현이 된다. 이는 캡슐화, 상속, 다형성의 특징을 가진다.

3.분산환경에 적합하다.

  : 인터넷 또는 네트워크를 통하여 효율적으로 수행되기에 적합하다. (RMI기능의 라이브러리 제공)

4. 인터프리터에 의해 실행된다.

  : 자바는 자바가상 기계에서 실행될수 있는 바이트코드로 번역되며 바이트코드 해석기가 있는 어떠한 컴퓨터에서든 실행이 가능.

    즉, 자바프로그램의 소스코드는 컴파일러를 통해서 "바이트코드"라 불리는 중간형태의 코드로 컴파일되며 이것은 자바런타임환

    경 이라 불리는 인터프리터를 통해서 실행됩니다.

  

  사용자가 작성한 자바 프로그램 -> 자바컴파일러 (자바 바이트코드로 변환) -> 자바 가상머신으로 실행 (기계코드로 불러들임)

 

[인터프리트 언어]

프로그램을 실행할때 한 줄씩 번역하면서 실행하는 언어를 의미합니다.

이 언어는 배우기가 쉽고 쓰기가 쉽다. 하지만 한줄씩 쓸때마다 번역하기때문에 수행시간이 많이 걸린다는 단점을 가진다.

인터프리트 언어의 반대언어는 컴파일 언어이다.

 

5. 자바는 높은 신뢰성을 가진다.

 : 포인터가 없다. 가비지 콜렉션수행. 사전 오류방지.

 

6. 구조 중립적, 높은 이식성

 : 자바 가상기계에서 실행되는 바이트코드를 사용함으로써 특정 컴퓨터에 종속되지 않는다.

   즉, 운영체제를 구분하지 않고 독립적인 플랫폼을 가진다.

 

7. 높은 성능 제공

 : 인터프리터에 의해 효율적으로 수행될 수 있도록 설계되었다.

  JIT (Just-in-Time)컴파일러를 통하여 기계어 코드로 변환하여 실행도 가능함.

  자바 바이트코드 생성시 레지스터할당과 최적화를 수행하기 때문에 효율적인 바이트코드를 생성한다.

 

8. 멀리스레드 지원

 : (스레드 : 독립적으로 수행될 수 있는 작은 프로그램 단위)

 

9. 동적인 수행이 가능

 : 라이브러리의 변화를 곧바로 적용할수 있다.

 

 

■ 자바 플랫폼의 구성요소

 

 *플랫폼 : 프로그램이 실행 될 수있는 환경을 말하며, 일반적인 의미에선 하드웨어와 하드웨어를 제어하는 운영체제를 말한다.

 

 <넓은 의미의 자바플랫폼의 구조>

 - 자바프로그램 

 - 자바 플랫폼(제공되는 소프웨어를 의미) : 자바 API + 자바 가상기계 (JVM)

 - 운영체제 (OS)

 - 하드웨어 플랫폼

 

이제 알아봐야되는 내용은 자바플랫폼 구조에서의 소프웨어적인 부분의 플랫폼 이다.

 

1)자바 가상기계

 

JVM은 물리적인 실제 기계 장치가 아니라 추상적인 장치로 가상의 기계처럼 구현된 소프웨어을 말한다.

(각종 자바 명령어와 레지스터 집합, 스택,힙,메소드 영역등으로 구성됩니다.)

이 JVM은 자바소스 컴파일 후에 생성되는 자바 바이트코드를 기계어로 사용하여 실행하는 역할을 한다.

 

2) 자바 API

 

자바 API는 자바 개발환경과 실행환경에서 거대한 클래스 라이브러리를 뜻함.

서로 관련된 기능을 클래스 단위로 묶어 놓고 유사한 성격을 가진 클래스들을 패키지 단위로 제공한다.

앞으로 패키지 단위로 표현을 하게 될것이고 J2SDK 8 버전의 경우 몇백여개가 된다.

주요 API 패키지를 소개하면 아래와 같다.

 

참조사이트 : http://docs.oracle.com/javase/6/docs/api/

 

java.applet : 애플릿 작성에 필요한 기능을 모아놓은 패키지. 웹브라우저에서 실햄함.

java.awt : GUI작성 관련 패키지. Swing패키지와 함께 자바 GUI애플리케이션 작성시 사용함. 버튼, 텍스트필드, 메뉴, 이벤트제공

java.io : 자바 입출력 기능 관련 패키지. 표준 입출력이나, 파일,버퍼의 입출력기능을 제공.

java.lang : 자바 언어의 기초적인 사항을 정의한 클래스 관련 패키지. 클래스,문자열,시스템관련 등 빈번히 사용하는 기능을 구현한

               클래스

java.net : 자바의 네트워크 관련 패키지. TCP, UDP 관련 소켓 네트워크를 제공.

javax.swing : Awt패키지와 더불어 자바 GUI 애플리케이션 기능을 구현한 패키지. awt보다 융통성있는 컴포넌트를 제공함.

java.util : 유틸리티성 패키지. 날짜표현이나 콜렉션 프레임워크등 여러 자료형을 하나로 취급하는 콜렉션 관련기능을 제공함.

 

자 그럼. 이러한 자바 플랫폼(소프트웨어적인부분)은 사용분야에 따라서 그 기능이 달라져야 한다. 그러면  JVM이나 API도 다를것이다. 아래의 3가지 영역은 알아 놓자.

 

▶JAVA SE

자바의 핵심적이며 표준이 되는 플랫폼.

적용분야 - 일반적인 데스크톱 컴퓨터.

 

▶JAVA ME

다양한 소형기기와 임베디드 기기에서 사용되는 플랫폼.

적용분야 - 핸드폰,PDA, 셋톱박스

 

▶JAVA EE

자바 서버측에서 사용되는 플랫폼.

적용분야 - 웹 서버상에서 실행되는 응용프로그램 구현 등 서버용 컴퓨터 구현에 적용됨

 

 

 

■ 자바의 이용분야와 프로그램

 

 

1.웹분야

 -애플릿(Applet) : 프로그램을 전송하여 접속한 사람의 컴퓨터에서 프로그램이 실행되도록 하는 기술.

  ex) 웹상에서 채팅이나 주식관련 프로그램

-서블릿(Servlet) : 웹 서버 환경에서 실행되는 기술로 서블릿과 JSP (페이지 아래 주석참고)

  ex) 웹상의 게시판이나 자료실, 쇼핑몰

 

2.모바일 분야

 -미들릿(Midlet) : 무선 환경하의 모바일 기기상에서 실행한 자바 프로그램

 

3.일반응용분야

 -자바 애플리케이션 : 자바로 구현한 독립적인 프로그램을 의미한다.

 

 

 

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓더 알아두기〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

 

JSP(Java Server Page) 란 무엇인가?

    자바를 서버환경에서 사용하는 스크립트 방식의 언어로 단일 스레드로 클라이언트의 요청에 서비스한다. 요청이 있을 때마다 프로세스를 생성하는 기존의 CGI와는 달리 하나의 메모리를 공유하면서 서비스되는 원리는 서버 측에 부하를 줄여주며, JSP 내부에는 보여주는 코드만 작성하고, 직접 작업하는 부분은 자바 빈으로 구성하여 분리 할 수 있다. 이것은 서로 영향을 주지 않고 수정할 수 있는 장점을 가지고 있으며, JAVA의 장점인 재사용성을 높일 수 있다.

 

JSP 동작 원리

*  URL

→ DNS서버

→ 웹 서버(JSP 페이지요청)

→ 웹 서버는 *.jsp 로 들어온 요청에 대해서 JSP 컨테이너로 전송

→ JSP 파일 파싱

→ 서블릿 생성

→ 생성된 서블릿 컴파일

→ 컴파일 된 클래스 파일을 메모리에 적재

→ HTML 형태인 응답을 사용자에게 전송

→사용자의 브라우저에서 HTML 실행

 

 

 

 

 

 

 

 

 

+ Recent posts