chap. 1 java 소개

20
Chap. 1 Java Chap. 1 Java 소소 소소

Upload: winter-ball

Post on 30-Dec-2015

34 views

Category:

Documents


5 download

DESCRIPTION

Chap. 1 Java 소개. 자바 언어의 소개. 미 Sun Microsystems 에서 만든 객체 지향 언어임 . 문법은 c, c++ 과 유사함. 자바 언어의 소개. JDK 란 무엇인가 ? Java Development Kit 으로 자바 소프트에서 제공하는 자바 개발 도구이다 . 공식 개발 도구이지만 Visual 한 통합 개발 환경은 제공하지 않는다 . 자바 소스를 컴파일하고 실행할 수 있는 기능이 있다 . 종류 J2SE(Java 2 Standard Edition): 기본적인 자바 코어 - PowerPoint PPT Presentation

TRANSCRIPT

Chap. 1 Java Chap. 1 Java 소개소개

자바 언어의 소개자바 언어의 소개

미 미 Sun Microsystems Sun Microsystems 에서 만든 객체 지향 에서 만든 객체 지향 언어임언어임 ..

문법은 문법은 c, c++ c, c++ 과 유사함과 유사함 ..

자바 언어의 소개자바 언어의 소개

JDKJDK 란 무엇인가란 무엇인가 ?? Java Development Kit Java Development Kit 으로으로 자바 소프트에서 제공하는 자바 소프트에서 제공하는

자바 개발 도구이다자바 개발 도구이다 .. 공식 개발 도구이지만 공식 개발 도구이지만 VisualVisual 한 통합 개발 환경은 한 통합 개발 환경은

제공하지 않는다제공하지 않는다 .. 자바 소스를 컴파일하고 실행할 수 있는 기능이 있다자바 소스를 컴파일하고 실행할 수 있는 기능이 있다 .. 종류종류

J2SE(Java 2 Standard Edition): J2SE(Java 2 Standard Edition): 기본적인 자바 코어기본적인 자바 코어 J2ME(Java 2 Micro Edition): J2ME(Java 2 Micro Edition): 임베디드 시스템 개발용임베디드 시스템 개발용 J2EE(Java 2 Enterprise Edition): J2EE(Java 2 Enterprise Edition): 엔터프라이즈 서버 프로그래밍엔터프라이즈 서버 프로그래밍

기업환경과 같은 대단위의 작업시에 필요기업환경과 같은 대단위의 작업시에 필요

자바 언어의 소개자바 언어의 소개

JDK DocumentsJDK Documents JDKJDK 의 기능 설명 및 클래스의 기능 설명 및 클래스 //메소드 설명이 메소드 설명이 HTML HTML

포맷으로 제공된다포맷으로 제공된다 .. http://java.sun.com http://java.sun.com DOWNLOAD DOWNLOAD J2SE J2SE J2SE J2SE

DOCUMENTATION DOCUMENTATION 을 다운받아서 사용 권장을 다운받아서 사용 권장

JREJRE JavaJava 를 실행할 수 있는 환경이다를 실행할 수 있는 환경이다 .. 모든 자바 코드는 모든 자바 코드는 JRE JRE 기반하에 실행되게 되어 있다기반하에 실행되게 되어 있다 JDKJDK 내에 내에 JREJRE 가 포함되어 있으며 가 포함되어 있으며 JREJRE 만 따로 설치할 수도 만 따로 설치할 수도

있다있다 ..

자바의 역사자바의 역사

19911991 년 년 SUNSUN 사의 사의 James GoslingJames Gosling 에 에 의해 가전제품에 내장된 프로그램을 위해 의해 가전제품에 내장된 프로그램을 위해 개발개발 초기 개발 언어 초기 개발 언어 OakOak

19951995 년 자바의 태동년 자바의 태동 네트워크 환경에 적합한 프로그래밍 언어 필요네트워크 환경에 적합한 프로그래밍 언어 필요 1993. Hot Java 1993. Hot Java 개발개발 1995. 1995. 자바 언어 발표 자바 언어 발표

자바의 특성자바의 특성

특성특성 간단간단 (simple), (simple), 객체 지향적객체 지향적 (Object-oriented)(Object-oriented) 높은 신뢰성높은 신뢰성 , , 보안성보안성 (Secure)(Secure) 컴퓨터 구조에 중립적컴퓨터 구조에 중립적 (Architecture-neutral)(Architecture-neutral) 이식성이식성 (Portable) (Portable) 좋음좋음 인터프리터형 인터프리터형 바이트코드를 한줄씩 해석하여 바이트코드를 한줄씩 해석하여

실행함실행함 멀티스레드 지원멀티스레드 지원 (Multi-threaded)(Multi-threaded) 분산처리 지원분산처리 지원 (Distributed)(Distributed)

자바에서 중요한 용어자바에서 중요한 용어

• BytecodeBytecode 를 제공를 제공- - 자바 소스를 자바 소스를 compilecompile 하여 얻는 코드하여 얻는 코드 (( 확장자 확장자 *.class)*.class)- 플랫폼에 무관하게 실행될 수 있는 일종의 어셈블러 플랫폼에 무관하게 실행될 수 있는 일종의 어셈블러 코드코드

• Java Virtual Machine : JVMJava Virtual Machine : JVM - - 바이트코드가 실행되는 환경의 가상 운영체제임바이트코드가 실행되는 환경의 가상 운영체제임 .. - - 가상의 가상의 CPUCPU 와 소규모의 운영 체제를 제공와 소규모의 운영 체제를 제공

자바 프로그램의 실행자바 프로그램의 실행

프로그램 소스

자바 바이트 코드

가상 머신 적재

실행 가능한 코드

로딩

인터프리터

컴파일Javac Hello.java

Java Hello.class

*JVM* 안에서 실행

자바 플랫폼자바 플랫폼 플랫폼플랫폼 : : 일반적으로 하드웨어와 운영체제를 일반적으로 하드웨어와 운영체제를

일컫는다일컫는다 .. 자바 플랫폼자바 플랫폼 : : 하드웨어와 무관하게 동작하는 자바 하드웨어와 무관하게 동작하는 자바

프로그램을 동작시켜 주기 위한 프로그램을 동작시켜 주기 위한 API API 및 및 JVM(JVM( 자바 자바 가상 머신가상 머신 )) 을 일컫는다을 일컫는다 .. 소프트웨어소프트웨어 [JDK][JDK] 만 설치하면 된다만 설치하면 된다 . .

Java Program

Java API

자바가상기계 (Java Virtual Machine)

하드웨어 플랫폼

자바플랫폼

자바 프로그램 형태자바 프로그램 형태 자바 프로그램 형태자바 프로그램 형태

어플리케이션어플리케이션 (application)(application) 독립적인 자바 실행 프로그램독립적인 자바 실행 프로그램

애플릿애플릿 (applet)(applet) 네트워크의 원격 컴퓨터에서 전송받아네트워크의 원격 컴퓨터에서 전송받아 , , 웹 브라우저나 애플릿 웹 브라우저나 애플릿

뷰어에서 실행뷰어에서 실행 서블릿서블릿 (servlet)(servlet)

Web Web 서버 상에서 수행되는 서버 상에서 수행되는 javajava 의 실행파일의 실행파일 빈즈빈즈 (beans)(beans)

자바로 만들어진 컴포넌트자바로 만들어진 컴포넌트 (component)(component) 컴포넌트컴포넌트 : : 독립적인 기능과 화면을 갖고 있는 실행 모듈독립적인 기능과 화면을 갖고 있는 실행 모듈

애플릿애플릿 , , 어플리케이션어플리케이션 , , 서블릿 등에서 부품으로 사용서블릿 등에서 부품으로 사용

애플리케이션애플리케이션

애플리케이션 애플리케이션 (Application)(Application) 독립적인 애플리케이션으로 동작하고독립적인 애플리케이션으로 동작하고 , , 일반 일반

애플리케이션이 할 수 있는 모든 기능을 지원애플리케이션이 할 수 있는 모든 기능을 지원 WindowsWindows 의 경우 운영체제 내에 자바 가상 의 경우 운영체제 내에 자바 가상

머신이 포함되어 있음머신이 포함되어 있음 JDK (Java Development Kit) JDK (Java Development Kit) 또는 또는 JRE (Java JRE (Java

Runtime Environment)Runtime Environment) 를 통해서 실행가능를 통해서 실행가능 네트워크와 독립되어 동작 가능네트워크와 독립되어 동작 가능

애플릿애플릿

애플릿 애플릿 (Applet)(Applet) HTML HTML 문서 안에 문서 안에 <APPLET> <APPLET> 태그를 통해서 태그를 통해서

동작하는 웹 브라우저에서 동작하는 제한된 자바 동작하는 웹 브라우저에서 동작하는 제한된 자바 프로그램프로그램

인터넷 익스플로러나 네스케이프 네비게이터인터넷 익스플로러나 네스케이프 네비게이터 , , 자바 자바 플러그인으로 설치된 자바 가상 머신으로 동작플러그인으로 설치된 자바 가상 머신으로 동작

웹 서버에 저장되어 있는 자바 바이트 코드가 웹 웹 서버에 저장되어 있는 자바 바이트 코드가 웹 문서와 함께 웹 브라우저에 로딩되어 실행됨문서와 함께 웹 브라우저에 로딩되어 실행됨

웹 브라우저와 통신 기능을 제공웹 브라우저와 통신 기능을 제공

JDKJDK 의 통합 개발도구의 통합 개발도구 통합 개발 도구들통합 개발 도구들

NetBean (Sun)NetBean (Sun) Jbuilder (Inprise)Jbuilder (Inprise) Visual Age for Java (IBM)Visual Age for Java (IBM) Visual CafVisual Caféé (Symantec) (Symantec) Visual J++ (Microsoft)Visual J++ (Microsoft)

실습시 사용 개발 도구실습시 사용 개발 도구 JDK + JDK + 에디터플러스에디터플러스

JDKJDK 의 각종 개발도구의 각종 개발도구 1(p.37)1(p.37) 자바 컴파일러자바 컴파일러 (javac.exe)(javac.exe)

확장자가 확장자가 **.java.java인 자바 소스 파일을 인 자바 소스 파일을 **.class.class인 자바 바이트 코드 파일로 컴파일 해 준다인 자바 바이트 코드 파일로 컴파일 해 준다 .. javac HelloJava.javajavac HelloJava.java

자바 인터프리터자바 인터프리터 (java.exe)(java.exe) 바이트코드를 해석하여 실행하여 준다바이트코드를 해석하여 실행하여 준다 . . 자바 컴파일러와는 달리 확장자를 생략해야 한다자바 컴파일러와는 달리 확장자를 생략해야 한다 .. java HelloJavajava HelloJava

자바 도큐먼트 생성기자바 도큐먼트 생성기 (javadoc.exe)(javadoc.exe) 명령행 인자로 받은 확장자가 명령행 인자로 받은 확장자가 **.java.java인 파일에 대해 패키지인 파일에 대해 패키지 , , 계층구조계층구조 , , 도구 등을 도구 등을 HTML HTML 문서로 만들어 준다문서로 만들어 준다 .. javadoc HelloJava.javajavadoc HelloJava.java

JDKJDK 의 각종 개발도구의 각종 개발도구 22

자바 애플릿을 보여주는 도구자바 애플릿을 보여주는 도구 (appletviewer.exe)(appletviewer.exe) 명령행 인자로 명령행 인자로 URL URL 또는 또는 HTML HTML 페이지 파일을 받아 페이지 파일을 받아 HTMLHTML페이지에 포함되어 있는 페이지에 포함되어 있는 애플릿만들 실행시켜 준다애플릿만들 실행시켜 준다 . . 자바 애플릿을 작성할 경우 테스트용으로 많이 사용한다자바 애플릿을 작성할 경우 테스트용으로 많이 사용한다 ..

Appletviewer HelloJava.htmlAppletviewer HelloJava.html

자바 디버거자바 디버거 (jdb)(jdb) 명령행 인자로 클래스 이름을 받아 디버깅을 시도한다명령행 인자로 클래스 이름을 받아 디버깅을 시도한다 . . 디버거를 제대로 사용하려면 자바 소스를 컴파일 할 디버거를 제대로 사용하려면 자바 소스를 컴파일 할

때 때 -g -g 옵션으로 컴파일 해야 한다옵션으로 컴파일 해야 한다 ..

javac -g HelloJava / jdb HelloJavajavac -g HelloJava / jdb HelloJava

자바 자바 APIsAPIs

자바 클래스자바 클래스 클래스 이름과 메소드클래스 이름과 메소드 , , 그리고 변수로 구성그리고 변수로 구성 자바 객체를 생성할 수 있는 기본 틀자바 객체를 생성할 수 있는 기본 틀 자바 객체는 메모리에 할당되어 동작하는 살아있는 코드자바 객체는 메모리에 할당되어 동작하는 살아있는 코드

패키지패키지 관련성이 높은 클래스를 모아놓은 디렉토리관련성이 높은 클래스를 모아놓은 디렉토리 점으로 디렉토리를 구별점으로 디렉토리를 구별 기본 패키지는 기본 패키지는 lang, io, net, applet, awt, util lang, io, net, applet, awt, util 등 등 66

가지로 구성가지로 구성

기본 패키지기본 패키지 기본 기본 66 가지가지

java.langjava.lang 자바 클래스와 기본형을 포함한 자바 언어의 기본으로 자바 클래스와 기본형을 포함한 자바 언어의 기본으로 import import 하지 않아도 하지 않아도

기본으로 됨기본으로 됨 java.iojava.io

입출력 스트림 및 직렬화에 대한 클래스들을 제공입출력 스트림 및 직렬화에 대한 클래스들을 제공 java.utiljava.util

각종 자료구조나 날짜각종 자료구조나 날짜 , , 지역화 등을 처리하는 패키지지역화 등을 처리하는 패키지 java.netjava.net

소켓이나 소켓이나 URLURL 등 네트워크 연동 프로그램 제작을 위한 클래스등 네트워크 연동 프로그램 제작을 위한 클래스 java.awtjava.awt

윈도우와 그래픽 관련 클래스 제공윈도우와 그래픽 관련 클래스 제공 java.appletjava.applet

애플릿을 만들기 위한 클래스 제공애플릿을 만들기 위한 클래스 제공

자바 프로그램의 예자바 프로그램의 예 11

Hello.java (Hello.java ( 애플리케이션애플리케이션 ))

public class Hello {public static void main(String args[]) {

System.out.println(“Hello World”);}

}

자바 프로그램의 예자바 프로그램의 예 22

HelloApplet.java (HelloApplet.java ( 애플릿애플릿 ) ) –– 웹브라우저에서 실행웹브라우저에서 실행

import java.applet.Applet;import java.awt.*;

public class HelloApplet extends Applet {public void init() {

setLayout(new BorderLayout());add(new Button(“Hello, World”),

BorderLayout.CENTER);}

}

자바의 현재와 미래자바의 현재와 미래

자바 관련 웹사이트자바 관련 웹사이트 http://www.javasoft.com : http://www.javasoft.com : 자바의 공식 사이트자바의 공식 사이트 http://www.gamelan.com : http://www.gamelan.com : 자바 애플릿자바 애플릿 Http://sunsite.unc.edu/javafag : Http://sunsite.unc.edu/javafag : 자바에 대한 자바에 대한

FAQFAQ http://developer.javasoft.com : http://developer.javasoft.com : 자바 개발자자바 개발자 Http://www.blackdown.org : Http://www.blackdown.org : 자바 리눅스자바 리눅스