EE2E1. JAVA Programming Lecture 3 Java Programs and Packages.
강의내용 Lecture 1: Java 소개및Eclipse - Sangji...
Transcript of 강의내용 Lecture 1: Java 소개및Eclipse - Sangji...
11
Lecture 1: Java 소개 및 Eclipse
2009학년도 1학기
상지대학교 컴퓨터정보공학부
고 광 만
2Lecture 1: 자바소개 및 Eclipse
강의 내용
자바의 소개자바의 종류
자바의 기본 패키지
자바의 특징
자바 프로그래밍 작성 및 실행프로그램 작성
번역
실행
3Lecture 1: 자바소개 및 Eclipse
자바 소개
범용 프로그래밍 언어인터넷 환경
모바일 환경
분산 시스템 등
객체지향 프로그래밍 언어객체지향 언어(C++와 유사)
복잡한 기능 제거
플랫폼(platform) 독립적바이트 코드(Bytecode)
자바 가상 기계(Java Virtual Machine; JVM)
4Lecture 1: 자바소개 및 Eclipse
자바 언어의 역사
역사James Gosling(Sun Microsystems ), 1990.
가전 제품을 위한 언어로 개발
범용 프로그래밍 언어로 발전
Java 어원James Gosling, Arthur Van Hoff, Andy Bechtolsheim
인도네시아 산 커피 원료 이름
22
5Lecture 1: 자바소개 및 Eclipse
인터넷 환경과 모바일 환경에 적합
6Lecture 1: 자바소개 및 Eclipse
C 계열의 언어C: 연산자, 문장 등
C++: 객체지향, 예외처리,
제네릭 기능
자바에서 확립된 개념예외 처리
스레드
C#에 영향을 미침
7Lecture 1: 자바소개 및 Eclipse
자바 언어 특징
특징 1 : 간단하며 친숙한 언어
특징 2 : 객체지향 언어
특징 3 : 플랫폼(platform) 독립적
특징 4 : 견고하고 보안에 강함
특징 5 : 동적 링킹, 멀티스레드 지원
8Lecture 1: 자바소개 및 Eclipse
특징 1 : 간단, 친숙한 언어
설계 목표작고 간단해서 쉽게 프로그래밍하고, 쉽게 디버깅하고,쉽게 배울 수 있도록 하는 것
C/C++의 복잡한 기능 일부 삭제포인터 연산 삭제
자동적인 메모리 관리
친숙한 언어기본기능 : 연산자와 문장 구조 - ANSI C(표준 C) 언어
고급기능 : 객체 지향적인 개념 - C++ 언어
33
9Lecture 1: 자바소개 및 Eclipse
C/C++에서 제거된 기능
typedef문, #define문클래스, 인터페이스
구조체(struct)와 공용체(union)클래스로 대체 가능
함수(function)메소드
다중 상속(multiple inheritance)인터페이스는 다중상속 지원
goto 문을 지원하지 않음다중 레이블 break/continue문
10Lecture 1: 자바소개 및 Eclipse
포인터 연산 제거
묵시적인 형 변환 제거명시적인 cast 연산 필요
Strongly typed language
연산자 중복성 제거
메모리 관리malloc() 제거
11Lecture 1: 자바소개 및 Eclipse
특징 2 : 객체지향 언어
객체지향 언어 특성자료 추상화(data abstraction)
상속성(inheritance)
다형성(polymorphism)
다형성Function overloading à method overloading
Operator overloading à 지원하지 않음
12Lecture 1: 자바소개 및 Eclipse
특성 3 : 플랫폼 독립적
아키텍처에 독립적플랫폼 독립적인 중간코드 사용 – 바이트코드(bytecode)
가상기계를 이용하여 실행 – JVM(Java Virtual Machine)
기존 개발환경과의 비교전통적인 컴파일링 시스템
플랫폼에 독립적인 시스템
44
13Lecture 1: 자바소개 및 Eclipse
네이티브 에플리케이션
14Lecture 1: 자바소개 및 Eclipse
자바 에플리케이션
15Lecture 1: 자바소개 및 Eclipse
컴파일 및 실행
HelloWorld.java
자바 컴파일러 (javac)
HelloWorld.class
자바 가상기계 (java)
public class HelloWorld {public static void main(String[] args) {
System.out.println("Hello World!");}
}
public class HelloWorld {public static void main(String[] args) {
System.out.println("Hello World!");}
}
C:\JDK\BIN>javac HelloWorld.javaC:\JDK\BIN>javac HelloWorld.java
C:\JDK\BIN>java HelloWorldC:\JDK\BIN>java HelloWorld
Hello World!Hello World!
Hello World!
16Lecture 1: 자바소개 및 Eclipse
자바 플랫폼
자바 플랫폼 : 자바 가상 기계와 API장점 : 하드웨어 플랫폼 독립성
단점 : 실행 속도의 저하
자바 가상 기계자바 가상 기계
API
자바 프로그램자바 프로그램
하드웨어 기반 플랫폼하드웨어 기반 플랫폼
자바플랫폼
55
17Lecture 1: 자바소개 및 Eclipse
성능 향상 방법
Java Chip바이트코드를 직접 실행하는 프로세서를 적용
JIT(Just-In Time) Compilation실행 시간에 필요에 따라 메소드 단위로 바이트코드를목적코드로 바꾸어 실행하는 방법
Back-End바이트코드를 목적코드로 모두 바꾼 후 실행
Decompilation바이트코드를 C언어와 같이 효율이 좋은 고급 언어로역컴파일하여 실행하는 방법
18Lecture 1: 자바소개 및 Eclipse
자바 개발 환경
프로그래밍 언어 시스템프로그래밍환경 + 운영환경
프로그래밍 환경 : 프로그램 개발용 도구편집기, 디버거
통합 개발 환경(IDE)
운영 환경 : 프로그램 실행 환경컴파일러, 실행시간 지원 시스템, 라이브러리 시스템
JDK(Java Development Kit)
19Lecture 1: 자바소개 및 Eclipse
Integrated Development Environment; IDE프로그래밍 환경과 운영 환경이 결합
프로그램의 작성부터 실행까지 대화식으로 수행가능한 개발환경
이클립스, 넷빈즈
이클립스(Eclipse)이클립스 재단에서 개발
플러그인(plug-in) 개념을 가진 공개 통합 개발 환경
http://www.eclipse.org
넷빈즈(NetBeans)Sun사가 제공하는 무료 통합 개발 환경, JDK 필요
http://www.netbeans.org
20Lecture 1: 자바소개 및 Eclipse
자바 플랫폼 종류
자바 플랫폼자바 가상 기계와 API
하드웨어의 종류에 따라 다양한 자바 플랫폼 존재
자바 표준 에디션(Java SE: Java Standard Edition)
자바 엔터프라이즈 에디션(Java EE: Java Enterprise Edition)
자바 모바일 에디션(Java ME: Java Micro Edition)
자바 카드(Java card)
66
21Lecture 1: 자바소개 및 Eclipse 22Lecture 1: 자바소개 및 Eclipse
자바 표준 에디션
Java SE(Standard Edition)데스크탑용 프로그램에 사용
개발 : JDK, 이클립스, 넷빈즈 등
실행 : JRE(Java Runtime Environment) 설치 필요
주요 응용 분야콘솔 프로그램
문자기반의 콘솔을 통해 입출력 수행
그래픽 프로그램
그래픽 사용자 인터페이스(GUI : Graphic User Interface)를 통해 입출력 수행
애플릿
웹브라우저에서 실행되는 간단한 자바 프로그램
23Lecture 1: 자바소개 및 Eclipse
자바 엔터프라이즈 에디션
Java EE(Enterprise Edition)기업용 프로그램 작성을 위한 분산 객체, 트랜잭션,높은 이식성 제공
개발 : 별도의 Java EE SDK 사용
실행: 여러 종류의 애플리케이션의 조합으로 동작
24Lecture 1: 자바소개 및 Eclipse
자바 마이크로 에디션
Java ME(Micro Edition)내장형기기(embedded device)를 위한 자바 플랫폼
휴대폰, PDA, 셋탑박스 등 성능이 낮고, 메모리가 작은 기기
다양한 CPU와 운영체제가 사용되어 플랫폼 독립성이 중요
Configuration과 ProfileConfiguration
기기의 성능에 따라 구분한 API 명세
Profile
요구되는 기능에 따라 특화된 API 모임
77
25Lecture 1: 자바소개 및 Eclipse
자바 기본 패키지
java.lang
자바의 기능을 확장해 주는 기본적인 클래스 : Object, String 등
자바 컴파일러에 의해 자동으로 import
java.io
스트림 입출력, 파일 입출력에 관련된 클래스 제공
java.net 패키지는 소켓, 텔넷 인터페이스, URL 클래스 제공
java.util
프로그래머에게 유용한 벡터, 스택 , 해쉬테이블 등…
java.awt (Abstract Window Toolkit)
플랫폼 독립적인 GUI 개발 도구
java.swing은 자바로 구현되어 어느 시스템에서도 동일하게 보임
26Lecture 1: 자바소개 및 Eclipse
27Lecture 1: 자바소개 및 Eclipse
JDKJDK 설치하기
JDK 도구
이클립스이클립스 설치
이클립스 실행하기
프로그램 작성하기
디버깅하기
28Lecture 1: 자바소개 및 Eclipse
Java Development Kit썬 마이크로시스템즈사에서 발표한 자바 프로그램 개발 도구
컴파일러, 자바 가상기계, 라이브러리, 자바 디버깅을 위한 도구를 제공
썬 솔라리스(Sun Solaris) 플랫폼
마이크로소프트 윈도우즈용
리눅스(Linux) 시스템용 등이 존재
88
29Lecture 1: 자바소개 및 Eclipse
http://java.sun.com
30Lecture 1: 자바소개 및 Eclipse
윈도우즈의 경로에 자바 도구가 설치된 경로를 추가
[내 컴퓨터] – [속성] – [고급] - [환경 변수]
31Lecture 1: 자바소개 및 Eclipse
[새로 만들기]변수 이름 : “Path”
변수 값 : JDK를 설치한 경로와 \bin
32Lecture 1: 자바소개 및 Eclipse
javac자바 소스 파일을 자바 클래스 파일로 컴파일해 주는 도구
주요 실행 옵션
▶ 형식 : javac [Options] SourceFileName.java▶ 예 : javac HelloWorld.java
실행 옵션 설명
- classpath path, -
cp path
컴파일에 필요한 클래스 경로를 지정한다.path에는 파일 시스템 경로와 JAR 파일 이름이 올수 있다.
-d dir 클래스 파일를 생성할 디렉토리를 지정한다.
-g 디버깅 정보를 가진 클래스 파일을 생성한다.
-nowarn 컴파일 시, 경고를 출력하지 않는다.
-verbose 컴파일 시, 자세한 메시지를 출력한다.
99
33Lecture 1: 자바소개 및 Eclipse
java클래스 파일을 읽어 실행하는 자바 가상기계, 인터프리터
주요 실행 옵션
▶ 형식 : java [options] ClassName [command-line arguments]▶ 예 : java HelloWorld
실행 옵션 설명
- classpath path, -cp path실행에 필요한 클래스 경로를 지정한다.
path에는 파일 시스템 경로와 JAR 파일 이름이 올 수 있다.
-DPropertyName=NewValue 자바의 시스템 속성(property) 값을 지정한다.
-verbose 실행 시, 발생하는 다양한 정보를 출력한다.
-enableassertions, -ea 실행 시, 단정 검사를 활성화한다.
-disableassertions, -da 실행 시, 단정 검사를 비활성화(기본값)한다.
34Lecture 1: 자바소개 및 Eclipse
jar자바 프로그램을 압축하는 유틸리티, JAR 파일을 관리하는 도구
javadoc자바 소스 파일에 있는 문서 주석(Document comment)으로부터 HTML 문서로 구성된 자바 API 문서를 생성하는 도구
▶ 형식 : jar [option] destination FileName [FileNames]▶ 예 : jar cf sample.jar *.class
▶ 형식 : javadoc [option] JavaSourceFileName▶ 예 : javadoc HelloWorld.java
35Lecture 1: 자바소개 및 Eclipse
jdb자바 애플리케이션을 디버그하기 위해서 사용하는 도구
javah자바 네이티브 인터페이스(JNI; Java Native Interface)에 필요한 C/C++ 헤더 파일(Header File)을 생성해 주는 도구
▶ 형식 : jdb [options] ClassName [arguments]▶ 예 : jdb HelloWorld
▶ 형식 : javah [option] ClassName▶ 예 : javah HelloWorld
36Lecture 1: 자바소개 및 Eclipse
특징이클립스 재단에서 관리하는 공개 소스 프로젝트
다양한 플랫폼에서 실행
자바를 비롯한 다양한 언어를 위한 통합 개발 환경 지원
플러그인 기반으로 구성되어 있어 쉽게 기능 확장 가능
1010
37Lecture 1: 자바소개 및 Eclipse
http://www.eclipse.org/Eclipse IDE for Java Developers 선택,
다운로드 후 압축 해제
38Lecture 1: 자바소개 및 Eclipse
“eclipse.exe” 파일 실행
프로젝트 관리에 필요한 정보 저장하는 폴더 설정
39Lecture 1: 자바소개 및 Eclipse
① Package Explorer, Hierarchy
② 편집기(Java Editor)
③ 작업 목록(Task List)
④ Outline】탭
⑤ Problems 탭,
Javadoc 탭,
Declaration 탭
40Lecture 1: 자바소개 및 Eclipse
새 프로젝트(New Project) 마법사【File】➠【New】➠【Project】
1111
41Lecture 1: 자바소개 및 Eclipse 42Lecture 1: 자바소개 및 Eclipse
클래스를 작성【File】➠【New】➠【Class】
43Lecture 1: 자바소개 및 Eclipse
디버그 모드로의 전환디버그 버튼
중단점 설정 후 기능키 F11
① : Debug 탭
② : Variables 탭,
Breakpoints 탭
44Lecture 1: 자바소개 및 Eclipse
중단점 설정하기원하는 소스 코드 라인에서 <Ctrl+Shift+B>
여백 지시 막대의 단축 메뉴에서 【Toggle Breakpoint】 선택
중단점 해제하기설정된 중단점 라인에서<Ctrl+Shift+B>
설정된 중단점의 단축 메뉴에서 【Toggle Breakpoint】 선택
1212
45Lecture 1: 자바소개 및 Eclipse
한 단계씩 코드 실행변수 또는 객체의 값을 살펴볼 때 유용
중단점이 설정된 지점부터 디버깅 시작
【Run】➠【Step Into】 메뉴 선택하거나 기능키 <F5>
소스 코드의 세부적인 추적(trace)이 가능
46Lecture 1: 자바소개 및 Eclipse
메소드 단위 실행메소드 호출 후 변수 또는 객체의 값을 확인하거나 객체에 관한연산 후 값을 살펴 볼 때 유용
【Run】➠【Step Over】 메뉴 선택하거나 기능키 <F6>
47Lecture 1: 자바소개 및 Eclipse
변수 값 확인하기변수나 객체를 마우스 커서로 가리킴
【Variables】탭
지역 변수와 현재 객체의 필드 값 확인
【Debug】탭
시스템 프로세스와 스레드, 스택 프레임 확인