350 likes | 576 Views
자바 입문. 자바의 개요. 자바의 소개 애플릿과 애플리케이션 자바의 기본 패키지 자바의 기본 특징 자바의 주요 특징. 자바 언어의 역사 [1/3]. Sun Microsystems Inc. James Gosling 과 A rthur V an Hoff 1990 년 “ 그린프로젝트 ” 로 시작 1991 년 가전제품을 위한 언어로 개발 범용 개발 언어로 발전 Java Ja mes Gosling, A rthur V an Hoff, A ndy 인도네시아 산 커피 원료 이름.
E N D
자바의 개요 • 자바의 소개 • 애플릿과 애플리케이션 • 자바의 기본 패키지 • 자바의 기본 특징 • 자바의 주요 특징
자바 언어의 역사 [1/3] • Sun Microsystems Inc. • James Gosling과 Arthur Van Hoff • 1990년 “그린프로젝트”로 시작 • 1991년 가전제품을 위한 언어로 개발 • 범용 개발 언어로 발전 • Java • James Gosling, Arthur Van Hoff, Andy • 인도네시아 산 커피 원료 이름
자바 언어의 역사 [2/3] • 1995년 5월 : JDK(java Development Kit) 알파버젼 발표 • 1996년 1월 : JDK 1.0 발표 • 1996년 2월 : 자바와 자바 스크립트를 지원하는 넷스케이프 2.0 발표 • 1996년 8월 : 자바를 지원하는 인터넷 익스플로러 3.0 발표 • 1998년 12월 : JDK 1.2를 발표하면서 자바2로 명명 • 1999년 6월 : JSP(java Sever Page)발표 • 2002년 5월 : JDK 1.4발표
OS, 모든 플랫폼 및 PC Client-server 분산 환경 GUI 에서 작동될 수 있는 분산 응용 프로 ?? 그램은 없을까 NETWORK Server Mac 자바 언어의 역사 [3/3]
자바란? • 자바가 어디에 쓰이는지? • 왜 배워야 하는지? • 어떻게 활용할 수 있는지? • 자바는 C계열 언어로 프로그래밍 언어 중에서 5세대 언어에 속하는 새로운 언어이다. 1G 2G 5G 3G 4G 기계어 어셈블리 C FORTRAN BASIC PASCAL COBOL VB DELPHI PB JAVA C#
자바의 주요 특성 • 간단하며 친숙한 언어 • 객체지향 언어 • 플랫폼에 독립적(분산 환경에 적합) • 견고하고 보안에 강하다(안정성) • 이식성이 강하다 • 멀티스레드를 지원
간단하며 친숙한 언어 • 설계 목표 : • 작고 간단해서 쉽게 프로그래밍하고, 쉽게 디버깅하고, 쉽게 배울 수 있도록 하는 것 • C/C++의 복잡한 기능 일부 삭제 • 포인터 연산 삭제, 자동적인 메모리 관리 • 친숙한 언어 • 연산식과 문장 구조 : ANSI C 언어 • 객체 지향적인 개념 : C++ 언어
객체지향 언어 • 객체지향 언어 특성 • 자료 추상화(data abstraction) • 상속성(inheritance) • 다형성(polymorphism) • 다형성 • function overloading --- method overloading
플랫폼에 독립적 [1/3] • 아키텍춰에 독립적 • 플랫폼에 독립적인 Bytecode 사용 • JVM(Java Virtual Machine) • 기존 개발환경과의 비교
이진 파일 소스 코드 이진 파일 Pentium 컴파일러(Pentium) 이진 파일 PowerPC 컴파일러(PowerPC) SPARC 컴파일러(SPARC) 플랫폼에 독립적 [2/3] • 기존 프로그램 개발 환경
자바 인터프리터 자바 코드 자바 컴파일러 (Pentium) Pentium 자바 바이트코드 (플랫폼 독립적) 자바 인터프리터 자바 컴파일러 (PowerPC) PowerPC 자바 인터프리터 SPARC 자바 컴파일러 (SPARC) 플랫폼에 독립적 [3/3] • 자바 개발 환경
견고하고 보안에 강하다 • 포인터 제거 • 디버깅이 어려운 run-time 에러 발생 감소 • 엄격한 형 검사 • strongly typed language
동적이고 멀티 스레드를 지원 • 동적 링크 • 언어차원에서 멀티스레드를 지원
C/C++에서 제거된 특성 [1/2] • typedef문, #define문 • 클래스와 인터페이스 • 구조체(struct)와 공용체(union) • 클래스로 대체 가능 • 함수(function) • 모두 메소드로 처리 • 다중상속(multiple inheritance) • 인터페이스는 다중상속 지원 • goto 문을 지원하지 않음. • 다중 레이블 break/continue문
int myInt ; float myFloat = 3.141592f ; myInt = myFloat ; int myInt ; float myFloat = 3.141592f ; myInt = (int) myFloat ; C/C++에서 제거된 특성 [2/2] • 연산자 중복(operator overloading) • 강제적인 자동변환 • 명시적인 cast 연산 • Incompatible type for =. Explicit cast needed to convert float to int. myInt = myFloat; ^ • 포인터 연산을 제거.
애플릿과 애플리케이션 • 자바 응용 프로그램 • 애플리케이션 • 일반적인 프로그래밍 언어로 작성된 프로그램 • main() 메소드가 존재 • 애플릿 • 웹 브라우저 환경에서 실행하는 프로그램 • HTML과 연계해서 실행
public class HelloWorld { public static void main(String[] args) { System.out.println( "Hello World!" ) ; } } PrintStream 클래스의 메소드 PrintStream 형의 객체 System 클래스 애플리케이션 만들기 • 간단한 프로그램 • public static void main() • System.out.println()
HelloWorld.java 자바 컴파일러 (javac) 자바 인터프리터 (java) HelloWorld.class C:>javac HelloWorld.java C:>java HelloWorld Hello World! 자바 애플리케이션 실행과정 실행결과
애플릿 만들기 • 간단한 프로그램 • java.applet.Applet • paint(Graphics g) • import 문 import java.applet.Applet; import java.awt.Graphics ; public class HelloWorldApplet extends java.applet.Applet { public void paint( Graphics g ) { g.drawString( "Hello World!", 5, 25 ) ; } }
HelloWorldApplet.java 웹 브라우저 혹은 appletviewer 자바 컴파일러 (javac) HelloWorldAppet.class 실행결과 HTML문서 자바 애플릿 수행과정 [1/2]
자바 애플릿 수행과정[2/2] • HTML 문서 작성 <HTML> <HEAD> <TITLE> Hello </TITLE> </HEAD> <BODY> <APPLET CODE="HelloWorldApplet.class" WIDTH=300 HEIGHT=80> </APPLET> </BODY> </HTML> C:>javac HelloWorldApplet.java C:>appletviewer HelloWorldApplet.html
프로그래밍 환경 • 프로그램 작성 • 편집기, 디버거 • 운영 환경 • 프로그램 실행 • 컴파일러, 실행시간 지원 시스템, 라이브러리 시스템 • JDK(Java Developers Kit) • 통합 환경(IDE) • Visual J++, Jbuilder, Symantec Cafe
자바환경과 자바 프로그램 2.1 자바 개발 환경 2.2 자바 통합환경 2.3 자바 응용 프로그램과 애플릿 프로그램 2.4 자바 응용 프로그램 2.5 자바 애플릿 프로그램
2.1 자바 개발 환경 • 선(Sun) 사에서 제공 • JDK = SDK • JDK1.2 = Java 2 SDK version 1.4.1 • SDK 설치 • SDK 소프트웨어 • http://java.sun.com/j2se/1.4.1/download.html • SDK 도구 • 자바 번역기 : javac.exe • 자바 해석기 : java.exe • 애플릿 프로그램 실행기 : appletviewer.exe • 자바 문서 생성기 : javadoc.exe • 자바 압축 도구 : jar.exe
2.2 자바 통합환경 • 선(Sun)사의 JDK는 자바프로그램을 개발하는데 필요한 컴파일러, 인터프리터 등을 제공한다. 하지만 통합 개발 환경을 지원하지 않기 때문에 프로그램을 작성하는데 불편하다. • 윈도우에 있는 메모장에서 자바 소스를 입력해서 도스 창에서 컴파일 하고 실행 • 자바를 처음 시작하는 사용자나 초보자에게 자바 프로그래밍을 위해 단순한 편집기인 EditPlus나 준 비주얼 도구인 Kawa의 사용을 권한다 • Kawa : 전문적인 통합환경과 같은 기능을 제공하지는 못하지만 프로그래밍을 위한 기본적인 통합환경의 기능을 충실하게 제공하고 있다. Kawa는 SDK를 기반으로 동작 • 통합환경 : 전문적인 자바 프로그램을 개발하기 위한 환경
2.3 자바 응용 프로그램과 애플릿 프로그램 • 자바 응용 프로그램 • C나 C++ 프로그램과 같은 일반적인 응용 프로그램 • 자바 애플릿 프로그램 • WWW 검색기나 애플릿 뷰어에서 실행되는 프로그램 • 작고 간단한 응용에 많이 사용된다 • 네트워크를 통하여 실행될 수 있으므로 개발환경과 실행환경의 독립성이 보장된다.
2.4 자바 응용 프로그램 • JDK는 별도의 편집기를 제공하지 않는다. 윈도우의 메모장이나 도스 편집기를 이용하여 프로그램을 작성 • // 프로그램 : Example1.java • class Example1 { • public static void main(String args[]) { • System.out.println("안녕하세요!! 첫 번째 자바 프로그램입니다"); • } • }
2.5 자바 애플릿 프로그램 • 애플릿 프로그램은 WWW검색기나 애플릿 뷰어에 의해 실행 // 프로그램 : Example2.java import java.applet.*; import java.awt.*; public class Example2 extends Applet { public void paint(Graphics g) { g.drawString("안녕하세요!! 두 번째 자바 프로그램입니다!", 100,60) } }
애플릿 프로그램의 번역과 실행 • 자바 컴파일러를 사용하여 번역 : javac Example2.java • 애플릿을 실행하기 위해서는 애플릿을 로드하는 HTML 파일을 작성하여야 한다. <HTML> <HEAD> <TITLE> 자바 프로그램 테스트 02 </TITLE> </HEAD> <BODY> <CENTER> <APPLET CODE= "Example2.class" WIDTH=400 HEIGHT=200 > </APPLET> </CENTER> </BODY> </HTML>
자바의 기본 패키지 • java.lang • 자바 컴파일러에 의해 자동으로 import • java.io • 스트림 입출력, 파일 입출력에 관련된 클래스 • java.net 패키지 • 소켓, 텔넷 인터페이스, URL • java.util • 벡터, 스택 , 해쉬테이블 등.. • java.awt - Abstract Window Toolkit • . . .