자바 언어 역사
썬마이크로시스템즈사(스캇 맥닐리) 패트릭 노튼(Patrick Naughton) - NeWS 프로젝트 실패(X Windows 처럼 유닉스의 종류에 상관없이 수행되는 GUI 구현 기술 프로젝트) ( Ordered by 스티브 잡스, NeXT 사)
자바의 역사
기술 프로젝트) ( Ordered by 스티브 잡스, NeXT 사)
패트릭 노튼+제임스 고슬링(James Gosling) → Green 팀“일반적인 가전 제품 또는 휴대용 기기(Portable devices)간의 커퓨니케이션을 가능케 해주는 기술이 없을까?” → Oa
[휴대용 장치 + 운영체계 + Oak로 작성된 Applications]
FirstPerson 사 설립
타임워너: TV 셋탑박스 (<=Oak 기술: 실패)
1994년 웹 브라우저 탄생(네트웍, 플랫폼 독맂벅,안정적, 바이러스로 부터 안전)
HotJava - 1995년 중반에 자바 언어가 공식적으로 발표
자바의 역사
HotJava - 1995년 중반에 자바 언어가 공식적으로 발표
Sun 사(1999년)자바 언어를 이용한 데이터베이스의 연동(JDBC),
자바 웹 서버(Java Web Server),
자바 웹 서버에서 작동하는 서블릿(Servlet),
하드웨어의 포팅을 위한 임베디드 자바(Embeded JAVA),
퍼스널 자바(Personal JAVA),
자바 가상 공간(Java Virtual Space)
자바언어의 특징
자바 언어는 안전(secure)하다. 자바 언어는 이식성(portable)이 강하다. 자바 언어는 편리한 GUI를 제공한다. 자바 언어는 분산 처리(distributed)를 지원한다. 자바 언어는 멀티쓰레드(multi-threaded) 언어이다. 자바 언어는 동적(dynamic)인 언어이다.자바 강의에서 다룰 내용
제 7차: 입출력 패키지 제 8차: AWT 패키지 제 9차: 이벤트처리 제10차: 쓰레드 제11차: 애플릿(1/2) 제12차: 애플릿(2/2) 제13차: 네트워크 제14차: 데이터베이스연동참고 자료
자바 배움터, 안용화 저, 생능출판사
자바 프로그래밍 입문, 한빛미디어
자바 프로그램
class Frame {
// 멤버변수 정의;
// 생성자 // 메소드 정의 }
class Buttons
자바 프로그램은 클래스로 구성된다.
• 자바 프로그램은 클래스로 구성된다.
• 클래스는 { 로 시작해서 } 로 끝난다.
• 자바 해석기로 실행 가능한 클래스는 main() 메소드를 포함한 클래스이다.
ExecuteObject.java
클래스
class Buttons 클래스 {
// 멤버변수 정의;
// 생성자 // 메소드 정의 }
class ExecuteObject {
// 멤버변수 정의;
public static void main(String args[]){
// 지역변수 정의 // 수행문 정의 }
}
클래스란?
• 클래스는 멤버변수, 생성자 및 메소드로 구성된다
• 따라서 클래스는 유.무형의 실체(객체)를 프로그램 으로 구현한 모듈임
•.클래스는 금형원판과 같은 동작을 하며, 클래스로 부터 수많은 객체를 생성할 수 있다.
클래스
실행클래스
자바 프로그램의 형태- Applet과 Application
웹 브라우저에 동작하는 프로그램 프로그램 코드는 웹 서버 저장실행은 PC에서 웹 서버로 부터 HTML 문서와 함께 전달
HTML문서에 의해서 자동 실행 악의적인 코드로 부터 보안 장치 있음 서블릿(Sublet) 웹 서버를 통하여 서비스를 제공하는 자바의 프로그램 형태로 기존 의 CGI(Common Gateway Interface)를 대치하는 기능을 제공Java Source code
(.java)
Web Browser
JIT Class Loader
Byte code Verifier
Java Class Libraries network
애플릿과 애플리케이션의 동작
Java Byte code
(.class) Java compiler
Web Server HTML Applet Applet
Local Computer Application Application
Java Virtual Machine
Java Interpreter
JIT
(Just-In-Time) Compiler
Runtime System
Operating System
Hardware
애플리케이션
private으로 정의된 클래스가 아니어야 함 public static void main() 메소드를 구현애플릿
애플리케이션과 애플릿의 코드 작성
애플릿
java.awt.applet.Applet 클래스로 부터 확장 init(), start(), paint(), stop(), destroy()등의 메소드를 재정의플랫폼
서로 다른 하드웨어나 운영체제에서 동일한 프로그램 이 거의 유사하게 동작할 수 있게 해주는 환경자바 플랫폼
자바 플랫폼
자바 플랫폼
자바 언어 자바 개발 도구 (JDK) 자바 실행 환경 (JRE)개발자 지원 사용자 지원
JDK (Java Development Kit)
JRE (Java Runtime Environment)
자바 가상 머신
다양한 운영체제에서 동작하기 위한 방식 채택 자바 컴파일러가 생성한 바이트 코드를 실행컴퓨터 처리 수준에 맞는 구별
자바 플랫폼 특징
컴퓨터 처리 수준에 맞는 구별
J2ME (Micro Edition) 처리 수준이 상대적으로 낮은 휴대폰, 웹페드, 디지털 TV 대상 J2SE (Standard Edition) 일반 데스크탑 PC 대상 J2EE (Enterprise Edition) 처리 수준이 상대적으로 높은 서버/워크스테이션 급윈도우 플랫폼
마이크로소프트 사에서 나온 운영체제 통칭 Windows95/98 WindowsNT/2000 WindowsXP/2003플랫폼 이란(참조)
WindowsXP/2003 특정 회사의 제품 군으로써의 플래폼리눅스 플랫폼
Linux 핵심 코드를 바탕으로 한 제품들 RedHat 리눅스, Hancom 리눅스, Debian 리눅스 임베디드 리눅스, 몬타비스타 리눅스 (J2ME 정도에 해당) 핵심 코드를 공유하는 의미의 플랫폼바이트 코드
CPU나 운영체제와 상관없이 동일한 형태의 코드 자바 컴파일러에 의해서 생성 자바 가상 머신을 통하여 다양한 환경에서 실행 예) CA FE BA BE 00 03 00 2D 00 3E 08 00 3B바이트 코드와 네이티브 코드
예) CA FE BA BE 00 03 00 2D 00 3E 08 00 3B네이티브 코드
CPU나 운영체제에 따라서 상이한 형태의 코드 각종 프로그래밍 컴파일러에 의해서 생성 해당 CPU나 운영체제에서만 실행 가능 예) 4D 5A 90 00 03 00 00 00 04 00 00 00 FF 00CA FE BA BE는 자바 바이트 코드임을 알려주는 매직 코드임.
자바 코드의 실행
자바 프로그래밍 자바 컴파일러를 통해서 바이트 코드 생성 자바자바 가상가상 머신을머신을 통해서통해서 바이트바이트 코드코드 수행수행자바 가상 머신
자바자바 가상가상 머신을머신을 통해서통해서 바이트바이트 코드코드 수행수행자바 가상 머신
추상적인 머신 - 실제 머신이 아님 명령어 집합, 레지스터 집합, 스택, 힙, 메소드 영역 구성 실제 네이티브 코드로 작성되어 있음 C언어, 자바 언어, 어셈블리어로 작성자바 언어가 포함된 것은 일부 기본 패키지의 클래스가 C언어와 연결되어 있음을 의미
Java Source code
(.java)
Java Virtual
Java Interpreter
JIT
(Just-In-Time) Compiler Class Loader
Byte code Verifier
Java Class Libraries
자바 가상 머신의 동작
Java Byte code
(.class) Java compiler
Virtual Machine
Interpreter
Compiler Runtime System
Operating System
Hardware
객체지향 언어
1990년대 매우 중요한 이슈 1960년대 시뮬라 (Simula) 언어가 최초 GUI 환경을 구현하는데 중요한 역할 제공 객체는 데이터와 메소드로 구성객체 지향 언어와 자바
객체는 데이터와 메소드로 구성객체지향 언어의 특성
단순함 – 프로그램을 쉽게 이해할 수 있음 재사용성 – 만들어 놓은 코드를 쉽게 재사용함 신속성 – 프로그램을 빠르게 제작함자바
자바 언어는언어는 객체지향객체지향 특성을특성을 잘잘 만족하는만족하는 언어임언어임
객체지향 언어의 특징 중 비용 절감이 가장 중요함
배우기 쉽고 가르치기 쉬운 언어
내용은 작지만 범위는 넓다 인터프리트 방식으로 속도는 늦지만, 코드는 안정적 이다자바 언어의 특징(1)
이다
가비지 컬렉터로 메모리 관리가 용이 다양한 환경에서 동작이 가능함좋은 객체지향 언어
자바 프로그램은 기본적으로 클래스 집합 C언어의 라이브러리보다 진보된 개념의 패키지 지원 클래스 상속, 캡슐화, 다형성 지원자바 언어의 특징(2)
클래스 상속, 캡슐화, 다형성 지원견고한 프로그래밍 언어
엄격한 문법적인 오류를 컴파일 시 감지 예외 처리 지원으로 런타임 오류 감소 가비지 컬렉터를 통한 메모리 접근 오류 금지자바 언어의 특징(3)
가비지 컬렉터를 통한 메모리 접근 오류 금지견고하다는 것은 영어로 robust하다고 한다.
이는 오류가 그만큼 줄어들었음을 의미한다
신속하고 이식성이 있는 언어
실행 코드 수준에서 호환성이 존재 (바이트 코드) 자바 가상 머신의 이식성도 높은 편임 (IEEE754지원)자바 언어의 특징(4)
쓰레드 지원 언어
대부분의 언어는 쓰레드를 운영체제의 기능으로 사용 자바는 자체 쓰레드가 있기 때문에 쓰레드가 없는 환 경에서도 쓰레드 기능을 제공해야 함자바 언어의 특징(5)
경에서도 쓰레드 기능을 제공해야 함
green thread자바 가상 머신 스스로 쓰레드 관리
native thread운영체제에서 제공하는 쓰레드 기능을 이용
JDK 설치 및 환경 설정
JDK(Java Developer’s Kit) 공용 소프트웨어 TextPad, Kawa, CodeWarrior와 Eclipse, JCreator, JDeveloper자바 환경 구축
JDeveloper
상용 소프트웨어 JBuilder, Java Workshop, Visual Café JDKVersion 1.5http://java.sun.com/javase/downloads/index.jsp에서
‘JDK 5.0 Update 6 with Java EE’
JDK 다운로드
자바 환경 구축
설치 초기 화면
자바 환경 구축
자바 환경 구축
자바 환경 구축
PATH 설정 하기
Autoexec.bat 파일 ‘제어판>시스템’ 설정 도구->‘고급’ 탭 (원도우 2000 이상)자바 환경 구축
CLASSPATH 설정하기
클래스 라이브러리가 위치한 파일 혹은 디렉토리정보 ‘환경 변수’ 설정 화면에서 새로 만들기를 클릭하 여‘ 변수 이름’에서 ‘classpath’라고 입력하고, 추 가하고자 하는 라이브러스 전체 경로를 입력자바 환경 구축
가하고자 하는 라이브러스 전체 경로를 입력
예)