350 likes | 1.87k Views
New. 알기 쉽게 해설한 Java. 책의 구성. Chapter 01 자바의 개요와 실행환경 Chapter 02 객체지향 개념 Chapter 03 자바 기본 구조 Chapter 04 클래스 Chapter 05 상속 Chapter 06 인터페이스 Chapter 07 예외 처리 Chapter 08 다중 스레드 Chapter 09 패키지와 주요 클래스 Chapter 10 입출력 Chapter 11 네트워킹 Chapter 12 그래피컬 사용자 인터페이스 (GUI)
E N D
New 알기 쉽게 해설한 Java
책의 구성 Chapter 01 자바의 개요와 실행환경 Chapter 02 객체지향 개념 Chapter 03 자바 기본 구조 Chapter 04 클래스 Chapter 05 상속 Chapter 06 인터페이스 Chapter 07 예외 처리 Chapter 08 다중 스레드 Chapter 09 패키지와 주요 클래스 Chapter 10 입출력 Chapter 11 네트워킹 Chapter 12 그래피컬 사용자 인터페이스(GUI) Chapter 13 이벤트 처리 Chapter 14 스윙(SWING)
Chap01 자바의 개요와 실행환경 1.1 : 자바(JAVA) 언어의 탄생과 발전 1.2 : 프로그래밍 언어 : 자바 1.3 : 플랫폼 : 자바 1.4 : 자바 프로그래밍을 위한 소프트웨어 1.5 : 자바 프로그램의 실행
언어란 ? • 의사 소통을 위한 수단이다. • 언어의 발전<고급언어, 저급언어 : 누구 위주로 소통> • ALGOL60 CPL(1963) BCPL B C C++(1985) • 자바 언어의 의사 소통 방법 • 컴파일러(Compiler) : 바이트 코드로의 변환<통역기> • 인터프리터(Interpreter) : 라인 별 실행 JDK 고급언어 : 인간이 이해하기 쉬운 언어 저급언어 : 컴퓨터가 이해하기 쉬운 언어 B : 포인터가 너무 많았음
1.1 자바 언어의 탄생과 발전 • 1991년 선사의 James Gosling에 의해 가전제품에 이용하기 위해 개발이 시작(Green Project). 당시 WWW은 별로 알려지지 않았다 • 초기에 개발된 언어를 Oak라 하였으며 전자기기의 내장된 프로그램을 위해 사용. Oak는 별로 관심을 끌지 못하였다 • 1994년 Gosling은 Oak를 JAVA(커피의 속어)로 다시 명명하고 당시 인터넷에서 급격히 성장한 WWW에 자바를 적용 결정 • Hot Java 검색기 개발, 넷스케이프, 익스플로러 자바 지원
1.1 자바 언어의 탄생과 발전 -자바 역사(요약) • 1994년 • World Wide Web 등장 • Oak에서 Java로 명칭변경 • Java, Hot Java project 시작 • 1995년 • Hot Java, Java, Java context, source code가 Web에 공개 • 플랫폼 : Sun SPARC Solaris, Windows NT, Windows95, Linux • Java beta1 발표(Sun Microsystems) • Netscape 지원결정 • Java beta2 발표 • JavaScript 발표(Sun & Netscape) • 1996년 • Java1.0 발표, Netscape2.0 Java 지원 • 현재 java1.6.x(JDK 6)사용 • J2ME, J2SE, J2EE 환경 제공
1.2 프로그래밍 언어 : 자바 자바는 프로그래밍 언어이다(by white paper) JAVA : A simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high-performance, multithreaded and dynamic language • Tip • 자바는 네트웍(인터넷) 환경의 전용 언어이다 ---- ( X ) • 자바는 강력한 범용언어(General Purpose Language) 이며 특히 네트웍 환경에 강한 특징을 가지고 있다 ---( O )
1.2 프로그래밍 언어 : 자바 • 단순(simple) • 자바는 C++ 언어를 기반으로 탄생하였지만, C나 C++에서 프로그래머에게 많은 혼란을 주는 요소들을 제거 • 자바는 C++의 preprocessor, 포인터, 다중상속, 구조체, 전역변수, goto문, 연산자 중복 등의 기능을 제외하여 언어의 복잡성을 제거 • 자동적인 쓰레기 수집(garbage collection) 기능을 제공 • 객체지향(Object-Oriented) • 자바는 객체지향 언어이다. 자바 프로그램의 모든 요소들은 객체로 표현된다. 객체지향은 소프트웨어의 재사용과 정보의 캡슐화 같은 많은 장점을 제공한다. 객체지향은 우리의 실 세계와 유사한 프로그램 방식이다.
1.2 프로그래밍 언어 : 자바 • 분산(Distributed) 환경에 적합 • 자바는 인터넷 또는 네트웍을 통하여 효율적으로 수행될 수 있도록 설계되었다. http, ftp, tcp/ip 프로토콜 등과 연관된 라이브러리를 제공한다. 또한 자바는 다른 컴퓨터에 있는 원격 객체들을 호출할 수 있는 RMI 기능을 제공한다.
1.2 프로그래밍 언어 : 자바 바이트코드 Java program 실행결과 인터프리터 컴파일러 • 인터프리터(Interpreted)에 의해 실행 • 자바는 독특한 실행 방식을 취하고 있다. 자바 소스는 자바 가상 기계에서 실행될 수 있는 바이트 코드로 번역되며, 번역된 바이트 코드는 바이트 코드 해석기가 있는 어떠한 기종의 컴퓨터 환경에서도 실행될 수 있다. Tip : 자바는 compiled interpreted language (Hybrid 방식)
1.2 프로그래밍 언어 : 자바 소스코드*.java 번역기 바이트코드*.class 클라이언트(자바가상기계) 해석기 해석기 실행결과 실행결과 서버 인터넷 클라이언트(자바가상기계) • 인터프리터(Interpreted)에 의해 실행(계속) 자바는 네트웍을 통하여 자바 가상기계가 설치된 어떤 컴퓨터에서도 실행 가능
1.2 프로그래밍 언어 : 자바 • 견고(Robust)하다 • 자바는 한번 작성되어 다양한 컴퓨터에서 실행되어야 하므로 높은 신뢰성이 요구된다. 자바는 높은 신뢰성을 유지하기 위해 다음과 특징을 가진다. • No Pointer • Automatic Garbage Collection • Strict Type Checking • Runtime Error Processing
1.2 프로그래밍 언어 : 자바 자바클래스라이브러리 클래스로더 바이트코드검증기 소스코드*.java 바이트코드*.class 자바인터프리터 실행결과 실행환경 개발환경 자바 컴파일러 인터넷 JVM (Security Manager) • 안전(Secure)하다 • 자바는 분산 환경에서 실행될 수 있도록 개발환경과 실행환경이 분리되어 있다. • JVM은 무결성에 대한 필수적인 검사를 수행한다.
1.2 프로그래밍 언어 : 자바 • 구조에 중립(Architecture neutral)적이고 이식성(Portable)이 높다 • 자바는 자바 가상기계에서 실행되는 바이트 코드를 사용함으로써 특정 컴퓨터에 종속되지 않는다. • 자바는 한번 작성되면 JVM이 설치된 모든 종류의 컴퓨터에서 실행할 수 있다. • 자바는 언어의 문법 뿐만 아니라 시스템 종속적인 부분까지도(int는 항상 32비트 등) 시스템 구조 중립적으로 설계되었다. • 구조 중립적으로 설계된 자바는 높은 이식성을 제공한다.
1.2 프로그래밍 언어 : 자바 자바프로그램 인터프리터 인터프리터 인터프리터 바이트코드 개발환경 Sun Ultra SolarisSystem PC호환Window XP MacSystem 자바 컴파일러 실행환경 JVM (Security Manager) • 구조에 중립(Architecture neutral)적이고 이식성(Portable)이 높다(계속)
1.2 프로그래밍 언어 : 자바 • 높은 성능(High-performance) • 바이트 코드는 인터프리터에 의해 효율적으로 수행될 수 있도록 설계되었다. • 실행의 효율성을 제공하기 위해 JIT 컴파일러 제공(웹 검색기에서 제공) • 자바 번역기는 바이트 코드 생성시 자동 레지스터 할당과 최적화를 수행하여 효율적인 바이트 코드를 생성한다 • 멀티스레드(Multithread) • 동시에 수행하여야 하는 작업들을 스레드 기술할 수 있다 • 자바는 스레드의 편리한 사용을 위한 라이브러리를 제공 • 동적(Dynamic) • 자바는 변화하는 환경에 적응되도록 설계된 언어로서, 기존의 프로그램에 영향을 주지 않고 라이브러리에 새로운 메소드나 속성들을 추가할 수 있다. • 자바는 라이브러리와의 연결을 실행시간에 수행한다.
1.3 플랫폼 : 자바 자바 프로그램 자바 API 자바 플랫폼 자바 가상 기계(JVM) 운영체제(OS) 하드웨어 플랫폼 • 플랫폼 : 프로그램이 실행되는 하드웨어와 소프트웨어 환경 • 기존의 컴퓨터에 자바 플랫폼을 구축하기 위해서는 자바 소프트웨어(JDK)만 설치하면 된다.
1.3 플랫폼 : 자바 1.3.1 자바 가상 기계(Java Virtual Machine) • 자바 바이트 코드를 기계어로 사용하는 컴퓨터 • 자바 가상 기계의 구성 형태 • 독립형(Standalone) 컴퓨터에서 단독으로 실행되는 자바 응용 프로그램과 자바 가상 기계(java.exe) • 자바 지원 웹 검색기(Java-Compatible Web Browser) 내에서 실행되는 자바 애플릿 프로그램과 자바 가상 기계(웹 검색기에 포함). • 자바 가능 서버(Java-Enabled Server)에서 실행되는 자바 서블릿(Servlet) 또는 JSP 프로그램과 자바 가상 기계(Tomcat, JRun, Resin, JSWDK 등에 내장되어 제공되는 자바 가상 기계)
1.3 플랫폼 : 자바 선사에서 제공되는 자바 플랫폼의 종류
1.3 플랫폼 : 자바 • J2SE 플랫폼: 자바 언어를 이용하여 응용프로그램, 애플릿 프로그램, 컴포넌트 등을 개발하고 실행할 수 있는 환경을 제공 • Java HotSpot Performance Engine • Java Foundation Class(JFC) • Java2 Security Model • Java Plug-In • JavaBeans Component API • JDBC(Java DataBase Connectivity) • Java RMI(Remote Method Invocation) • Java IDL(Interface Definition Language)
1.3 플랫폼 : 자바 • J2EE 플랫폼 : J2SE를 확장하여 구성한 자바 서버측 기술로서, 다중 구조(Multi-tier)의 응용 프로그램을 개발하고 실행할 수 있는 환경을 제공 • Servlets • JSP(Java Server Page) • EJB(Enterprise JavaBeans) • JNDI(Java Naming and Directory Interface) • Java IDL & CORBA • RMI over IIOP • Java Connector for EIS(Enterprise Information System) • JDBC(Java DataBase Connectivity) • Message Service • Transaction Service • JavaMail
1.3 플랫폼 : 자바 • J2ME 플랫폼: 핸드폰이나 PDA 등 소형의 내장(Embeded) 기기에서 실행될 수 있는 자바 플랫폼 • J2ME 플랫폼은 KVM(Kilobytes Virtual Machine)이라는 작은 규모의 자바 가상 기계를 제공하고 있으며, 소규모의 기계에 적합한 API 셋(Configuration)과 프로파일 등으로 구성되어 있다
1.3 플랫폼 : 자바 1.3.2 자바 API(Application Programming Interface) • JDK에서 제공되는 거대한 패키지 • 자바 개발자는 자바 API에 미리 정의된 소프트웨어 패키지를 이용하여 자바 프로그램을 작성
1.3 플랫폼 : 자바 • 자바는 플랫폼이면서 프로그래밍 언어이다 JDK(Java Developer’s Kit) API and Libraries Workshop Standard Extensions Core APIs Solstice Workshop JDBC(Java Database Connectivity) JavaOS Language Java RMI (Java Remote Method Invocation) JVM Java IDL(Java Interface Definition Language) HotJava
1.4 자바 프로그래밍을 위한 소프트웨어 1.4.1 JDK 설치 • 선(Sun) 사에서 제공 • 자바가 탄생한 이후 자바는 다양한 이기종 컴퓨팅 환경에서 어플리케이션 개발용 객체지향 플랫폼으로 발전 • 선사는 어플리케이션의 용도에 따라 다양한 자바 플랫폼을 제공한다 • J2SE : 자바 표준 개발 환경 • JDK = SDK • JDK1.2 = Java 2 • J2SE 6.0 = J아 6.0 • JDK 설치 • http://java.sun.com/j2se/
자바 설치 및 환경 설정 (JDK1.6) • JDK와 JRE의 차이 : 인터프리터 • Sun 공식 사이트 (http://java.sun.com) • jdk-6u21-windows-i586.exe : download • C:\myjava-관리 편하기 위해 • JDK의 설치와 환경 설정 : 시스템 별 설정 내컴퓨터-고급-환경변수-시스템변수-새로만들기 • CLASSPATH : 실행 시 클래스 파일의 위치와 참조 파일들의 위치 지정 (기본 공용 폴더)---- %classpath%;. • JAVA_HOME : 자바의 홈 Directory--- C:\myjava\jdk1.6 • PATH : 실행 명령어 위치 지정 (bin)--- %JAVA_HOME%\bin;
환경변수 설정 CLASSPATH %classpath%;. JAVA_HOME C:\myjava\jdk1.6 PATH %JAVA_HOME%\bin; CLASSPATH : %classpath% ; 기존의 classpath 인정 , : 연결해서 사용 . Java_HOME---자바가 있는 위치 : %classpath% ; 기존의 classpath 인정 , : 연결해서 사용 .
설치 확인 밥법 • 시작 – 실행창 - cmd 입력 • javac –version 입력 • javac 입력 확인
Documentation API • API의 다운로드와 실행 • Documentation API의 영역별 의미 • packages 영역 : java, javax, org package • classes 영역 • interface, classes, errors, exceptions • contents 영역 : class에 대한 설명 • Field, Construct, Method, Nested
1.4 자바 프로그래밍을 위한 소프트웨어 1.4.2 JDK 도구 • JDK 도구 • 자바 번역기 : javac • 자바 해석기 : java • 애플릿 프로그램 실행기 : appletviewer • 자바 디버거 : jdb • C 헤더파일과 스터브 파일 생성기 : javah • 자바 문서 생성기 : javadoc • 자바 압축 도구 : jar
1.4 자바 프로그래밍을 위한 소프트웨어 1.4.3 이클립스 설치 • 자바 프로그램을 개발하기 위한 통합 개발 환경(Integrated Development Environment) • Step 1 • 소프트웨어 다운로드(www.eclipse.org) • Step 2 • 소프트웨어 압축 해제 • Step 3 • 생성된 eclipse 디렉터리에 있는 eclipse.exe 실행
1.5 자바 프로그램의 실행 1.5.1 JDK 환경 • JDK는 별도의 편집기를 제공하지 않는다. 윈도우의 메모장이나 프로그램 편집기 등을 이용하여 프로그램을 작성
1.5 자바 프로그램의 실행 1.5.2 이클립스 환경 • Step 1 • 자바 프로젝트 선택(File => New => Project)하고 프로젝트 이름을 입력
1.5 자바 프로그램의 실행 1.5.2 이클립스 환경 • Step 2 • 클래스 생성(File => New => Class)을 선택하고 클래스 이름을 입력한 다음 프로그램 입력 창에서 프로그램을 입력한다.
1.5 자바 프로그램의 실행 1.5.2 이클립스 환경 • Step 3 • 프로그램을 실행(Run => Run As => Java Application)하고 결과를 콘솔 창에서 확인한다