Microsoft PowerPoint - java1-lecture1.ppt [호환 모드]

Similar documents
Microsoft PowerPoint - java1-lecture1.ppt [호환 모드]

Microsoft PowerPoint - java1-lecture1.ppt [호환 모드]

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

Microsoft PowerPoint - aj-lecture1.ppt [호환 모드]

PowerPoint Template

Microsoft PowerPoint - chap01-C언어개요.pptx

PowerPoint 프레젠테이션

02 C h a p t e r Java

1

PowerPoint 프레젠테이션

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

Microsoft PowerPoint - lec1.ppt

Chap7.PDF

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

파워포인트

쉽게 풀어쓴 C 프로그래밍

No Slide Title

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

인터넷환경과모바일환경에적합 C 계열의언어 C: 연산자, 문장등 C++: 객체지향, 예외처리, 제네릭기능자바에서확립된개념예외처리스레드 C# 에영향을미침 5 6 자바언어특징 특징 1 : 간단, 친숙한언어 특징 1 : 간단하며친숙한언어특징 2 : 객체지향언어특징 3 : 플랫

[Brochure] KOR_TunA

초보자를 위한 자바 2 21일 완성 - 최신개정판

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx)

Network Programming

4S 1차년도 평가 발표자료

JVM 메모리구조

JDK이클립스

chapter1,2.doc

Interstage5 SOAP서비스 설정 가이드

B.3 JDBC 설치 JDBC Java DataBase Connectivity 는자바에서 DBMS의종류에상관없이일관된방법으로 SQL을수행할수있도록해주는자바 API Application Program Interface 다. 이책에서는톰캣과 SQL Server 간의연결을위

데이터베이스_오라클_부록(최종).indd

Intro to Servlet, EJB, JSP, WS

Spring Boot

PowerPoint 프레젠테이션

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

서현수

1부

C# Programming Guide - Types

JavaGeneralProgramming.PDF

Microsoft PowerPoint - chap-02.pptx

혼자서일을다하는 JSP. 이젠일을 Servlet 과나눠서한다. JSP와서블릿의표현적인차이 - JSP는 <html> 내에서자바를사용할수있는수단을제공한다. - 서블릿은자바내에서 <html> 을작성할수있는수단을제공한다. - JSP나서블릿으로만웹페이지를작성하면자바와다양한코드가

슬라이드 1

PowerPoint Presentation

본 강의에 들어가기 전

Windows Embedded Compact 2013 [그림 1]은 Windows CE 로 알려진 Microsoft의 Windows Embedded Compact OS의 history를 보여주고 있다. [표 1] 은 각 Windows CE 버전들의 주요 특징들을 담고

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밊

앞부속

PowerPoint 프레젠테이션

표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1

PowerPoint Template

HTML5* Web Development to the next level HTML5 ~= HTML + CSS + JS API

Microsoft PowerPoint - 권장 사양

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

untitled

PowerPoint 프레젠테이션

슬라이드 1

PowerPoint Presentation

Angry MOMO Presentation

No Slide Title

Microsoft PowerPoint - chap-02.pptx

목차 1 전자정부프레임워크연동고려사항 실행환경 개발환경 어플리케이션배포 개발환경구성 Liberty profile 설치 Liberty profile v8.5.5 다운로드

Secure Programming Lecture1 : Introduction

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

슬라이드 1

임베디드시스템설계강의자료 4 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

에접속하여상단메뉴에서 [DOWNLOADS] 를클릭한다. 다운로드페이지에서 Java 카테고리에있는 [Java SE] 를클릭하고페이지가바뀌면 [Java Platform (JDK)] 를클릭한다. JDK 버전은다운로드하는시점에따라다를수

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras


untitled

Microsoft PowerPoint - Windows CE Programming_2008 [호환 모드]

Apache Ivy

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

THE TITLE

초보자를 위한 C++

슬라이드 1

52 l /08

PowerPoint 프레젠테이션

KNOM_Conference_2008_start.ppt

PowerPoint 프레젠테이션

IPAK 윤리강령 나는 _ 한국IT전문가협회 회원으로서 긍지와 보람을 느끼며 정보시스템 활용하 자. 나는 _동료, 단체 및 국가 나아가 인류사회에 대하여 철저한 책임 의식을 가진 다. 나는 _ 활용자에 대하여 그 편익을 증진시키는데 최선을 다한다. 나는 _ 동료에 대해

교육2 ? 그림

FileMaker 15 ODBC 및 JDBC 설명서

rmi_박준용_final.PDF

슬라이드 1

Portal_9iAS.ppt [읽기 전용]

DE1-SoC Board

Spring Boot/JDBC JdbcTemplate/CRUD 예제

J2EE Concepts

Microsoft PowerPoint - Introduction to Google Guava.pptx

Speculative Register Promotion Using Advanced Load Address Table (ALAT)

<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

ThisJava ..

슬라이드 1

Transcription:

자바란무엇인가? 기초사항 514760-1 2019 년봄학기 3/6/2019 박경신 1991년그린프로젝트 (Green Project) 선마이크로시스템즈의제임스고슬링 (James Gosling) 에의해시작 - 가전제품에들어갈소프트웨어를위해개발 목적 플랫폼호환성문제해결 기존언어로작성된프로그램은 PC, 유닉스, 메인프레임등플랫폼간에호환성없음 소스를다시컴파일하거나프로그램을재작성해야하는단점 플랫폼독립적인언어개발 모든플랫폼에서호환성을갖는프로그래밍언어필요 네트워크, 특히웹에최적화된프로그래밍언어의필요성대두 메모리사용량이적고다양한플랫폼을가지는가전제품에적용 가전제품 : 작은량의메모리를가지는제어장치 내장형시스템요구충족 2009 년에선마이크로시스템즈를오라클에서인수 Java Version https://en.wikipedia.org/wiki/java_version_history Java Version Java 1.0 Jan 1996 JDK 1.0 발표, Applet 도입 Java 1.1 Feb 1997 Inner class, JavaBeans, JDBC, RMI, reflection, JIT(Just-In-Time) compiler, Internationalization and Unicode Java 1.2 Dec 1998 ME, SE, EE version 발표 Swing이 SE에포함, Corba IDL, Collection framework Java 1.3 May 2000 HotSpot(Sun에서만든 JIT구현 ) JVM, JNDI(Java Naming and Directory Interface), JPDA, JavaSound 포함 Java 1.4 Feb 2002 Regular expression, assert, Security 2 version, IPv6, Non Blocking IO(NIO), Logging API, Image IO API, XML Parser, XSLT Java 1.5 Java 1.7 Sep 2004 Jul 2011 기능적으로가장많은변화가생긴버전 Generics, annotation, auto boxing, enum, varargs, foreach, static import, Java 1.8 Concurrent API, Scanner class Mar 2014 Java 1.6 Dec 2006 보안, 성능강화주력 String in switch, try-resource, generics 에서타입추론, 숫자에서 underscore 사용 JavaFX 가기본으로포함 오라클로인수된후첫번째버전 JDK1.5 이후가장큰언어적변화 Lambda expression, Default method interface, functional programming Date and Time API, stream API

Java Version 자바의특징 Java 1.9 Sep 2017 Modular system(jigsaw) jshell (Java Shell), G1 garbage collector Java 1.10 Mar 2018 Local-variable type interference(var), Parallel Full GC for G1 Java 1.11 Sep 2018 자바 11은 Long-term support 버전 Nest-based access controls, ZGC, Flight Recorder, HTTP API, TLS(Transport Layer Security) 1.3, 람다에서 var 변수 JavaFX, Java EE & CORBA 모듈, Web Start, Applets 삭제 Java 1.12 Mar 2019 자바의특징 WORA(Write Once Run Anywhere) 한번작성된코드는모든플랫폼에서바로실행되는자바의특징 C/C++ 등기존언어가가진플랫폼종속성극복 OS, H/W에상관없이자바프로그램이동일하게실행 네트워크에연결된어느클라이언트에서나실행 웹브라우저, 분산환경지원 WORA를가능하게하는자바의특징 바이트코드 (byte code) 자바소스를컴파일한목적코드 CPU에종속적이지않은중립적인코드 JVM에의해해석되고실행됨 JVM(Java Virtual Machine) 자바바이트코드를실행하는 ( 소프트웨어 ) 플랫폼종속성 (Platform Dependency) 인텔 CPU + 리눅스 인텔 CPU를가진리눅스환경에서개발 C/C++ 응용프로그램 실행 실행되지않음 Apple 사의 MAC PC 플랫폼 = 하드웨어플랫폼 + 운영체제플랫폼 실행되지않음 프로그램의플랫폼호환성없는이유 기계어가 CPU 마다다름 운영체제마다 API 다름 운영체제마다실행파일형식다름 인텔 CPU + 윈도우노트북

플랫폼독립성 자바는플랫폼독립성 - WORA(Write Once Run Anywhere) 자바컴파일러는특정한컴퓨터가아닌가상적인기계 (virtual machine) 를위한바이트코드를생성함 Write Once!! 자바응용프로그램 자바바이트코드 *.class Run Anywhere!! 실행 실행 실행 Windows 7 리눅스 Intel CPU AMD CPU 인텔 CPU + 리눅스 인텔 CPU + 윈도우노트북 Apple 사의 MAC PC 바이트코드 (JVM : Java Virtual Machine) 각기다른플랫폼에설치 동일한자바실행환경제공 자체는플랫폼에종속적 는플랫폼마다각각작성됨 예 ) 리눅스에서작동하는는윈도우에서작동하지않음 개발및공급 자바개발사인오라클외 IBM, MS 등다양한회사에서제작공급 자바의실행 가클래스파일 (.class) 의바이트코드실행 바이트코드 에서실행가능한바이너리코드 바이트코드는컴퓨터 CPU에의해직접실행되지않음 가작동중인플랫폼에서실행 가인터프리터방식으로바이트코드해석 클래스파일 (.class) 에저장

자바와 C/C++ 의실행환경차이 자바와 C/C++ 의실행환경차이 자바 if (i>0) { i = i*10; } i= i j; System.out.println(i); 자바소스파일 (Test.java) C/C++ if (i>0) { i = i*10; } i= i j; cout << i; 소스파일 (Test.cpp) 컴파일러 컴파일러 / 링커 010100000100 010101001111 010110101010 010111010101 010100001000 1110000000 바이트코드 (Test.class) 010100000100 010101101111 010110101010 010111110101 010100101010 1110001100 바이너리실행파일 (Test.exe) 자바프로그램 (Test.class) 운영체제 하드웨어 C++ 프로그램 (Test.exe) 운영체제 하드웨어 자바 자바는링크과정없이컴파일러가바로바이트코드생성 바이트코드는 JVM에서만실행가능 자바는필요한클래스들을프로그램실행중에동적으로로딩 동적로딩은 JVM에포함된클래스로더에의해이루어짐 ClassLoader 클래스를이용하여개발자가직접클래스로딩가능 C/C++ 컴파일 C/C++ 에서는컴파일러가중간단계인목적코드를생성 링크 링커가목적코드와라이브러리연결, 실행가능한최종실행파일생성 정적라이브러리는실행파일에포함 실행파일크기가커짐 목적코드및실행파일은플랫폼에따라다름 플랫폼이바뀌면다시컴파일및링크 자바의종류 자바의종류 오라클은개발환경에따라다양한자바배포판제공 Java SE 자바표준배포판 (Standard Edition) 데스크탑과서버응용개발플랫폼 Java EE 자바기업용배포판 자바를이용한다중사용자, 기업용응용개발을위한플랫폼 Java SE + 인터넷기반의서버사이드컴퓨팅관련 API 추가 응용서버, 웹서버, J2EE API, 엔터프라이즈자바빈즈 (JavaBeans) 지원, 자바서블릿 API 와 JSP 등을포함 Jave ME 자바마이크로배포판 휴대전화나 PDA, 셋톱박스등제한된리소스를갖는하드웨어에서응용개발을위한플랫폼 가장작은메모리풋프린트 Java SE 의서브셋 + 임베디드및가전제품을위한 API 정의 Jave FX 자바리치 - 인터넷 - 애플리케이션 (RIA: Rich Internet Application) 을생성하고배포하기위한자바클라이언트플랫폼 RIA 은서로인터넷상의다양한플랫폼에서도동일한외관으로실행 JavaFX 플랫폼은자바기술에기반을둔고성능의하드웨어가속그래픽과미디어엔진 API 를제공

Java SE JDK 와 JRE JDK(Java Development Kit) 자바응용개발환경. 개발에필요한도구포함 컴파일러, JRE (Java Runtime Environment), 클래스라이브러리, 샘플등포함 JRE(Java Runtime Environment) 자바실행환경. JVM 포함 자바실행환경만필요한경우 JRE 만따로다운가능 JDK 와 JRE 의개발및배포 오라클의 Technology Network 의자바사이트에서다운로드 http://www.oracle.com/technetwork/java/index.html JDK 의 bin 디렉터리에포함된주요개발도구 javac - 자바소스를바이트코드로변환하는컴파일러 java - JRE 의 bin 디렉터리에도있는자바응용프로그램실행기 jar - 자바아카이브파일 (JAR) 의생성및관리하는유틸리티 jdb - 자바디버거 appletviewer - 웹브라우저없이애플릿을실행하는유틸리티 자바로만들수있는것 자바애플리케이션 (Java application) 독립적으로실행될수있는일반응용프로그램 자바애플릿 (Java applet) 웹브라우저안에서실행되는작은프로그램 애플릿은사용할수있는자원접근에제약있음 자바로만들수있는것 자바서블릿 (Java servlet) 웹서버에서동작하는서버모듈로서클라이언트의요구를받아서그에대한처리를한후에, 실행결과를 HTML 문서형태로클라이언트컴퓨터로전송 데이터베이스서버및기타서버와연동하는복잡한기능구현시사용. 웹서버에의해실행통제받음. 웹브라우저 웹서버 인터넷 JVM servlet 서버 서버

자바로만들수있는것 JSP (Java Server Pages) HTML 안에자바스크립트코드를넣으면웹페이지를사용자와상호작용하도록만들수있음 JSP 는서버에서실행되고클라이언트요청에따라서동적으로 HTML, XML 웹페이지를생성 자바로만들수있는것 안드로이드애플리케이션 안드로이드개발자들은자바의 SE 버전중에서 AWT와스윙 (swing) 을제외한거의모든패키지를사용함 개발언어는자바를사용하나효율성때문에자체적인달빅 (Dalvik) 가상머신을구현함. 달빅은기존바이트코드와호환성이없어변환이필요함. JDK 설치 JDK 설치 Java SE Development Kit Download http://www.oracle.com/technetwork/java/javase/downloads/ind ex.html

JDK 설치후디렉터리구조 자바개발, 실행하는데필요한도구와유틸리티 JDK 설치 경로설정하기 Configuration file 네이티브코드프로그래밍에필요한헤더파일 컴파일된모듈정의 Copyright과라이선스파일 JDK 의기본라이브러리, 추가클래스라이브러리와개발도구에서필요로하는여러파일 JDK 설치 설치된자바버전확인 자바프로그램개발단계 소스파일.java 컴파일후바이트코드로변환.class 바이트코드를메모리로적재및검증 JVM에서바이트코드실행

자바프로그램개발단계 소스코드 Hello.java 자바프로그램개발단계 Disassemble 클래스파일에들어있는바이트코드를텍스트로볼수있게변환하는작업 (JDK 의 javap.exe 이용 ) Hello.class 파일을디스어셈블한결과 Hello.bc 파일생성 컴파일 javac Hello.java 실행 java Hello 자바 API 자바 API(Application Programming Interface) JDK에포함된클래스라이브러리 주요한기능들을미리구현한코드 ( 클래스라이브러리 ) 의집합 개발자는 API를이용하여쉽고빠르게자바프로그램개발 API 에서정의한규격에따라클래스사용 자바패키지 (Package) 서로관련된클래스들을분류하여묶어놓은것 계층구조로되어있음 클래스의이름에패키지이름도포함 다른패키지에동일한이름의클래스존재가능 자바 API( 클래스라이브러리 ) 는 JDK에패키지형태로제공됨 필요한클래스가속한패키지만 import하여사용 개발자자신의패키지생성가능 자바 API 문서 https://docs.oracle.com/en/java/javase/11/

자바 IDE 소개와설치 자바 IDE (Integrated Development Environment) 통합개발환경 편집, 컴파일, 디버깅을한번에할수있는통합된개발환경 이클립스 (Eclipse) 자바응용프로그램개발을위한통합개발환경 IBM 에의해개발된오픈소스프로젝트 http://www.eclipse.org/downloads/ 에서다운로드 넷빈즈 (Netbeans) https://netbeans.org/ IntelliJ Idea http://www.jetbrains.com/idea/download/ Eclipse 설치하기 이클립스 IDE 2018-12 (eclipse-inst-win64.exe) https://www.eclipse.org/downloads/ 다운로드 eclipse.exe 실행 자바프로그램작성 이클립스프로젝트생성 File->New->Java Project 자바프로그램작성 클래스생성 [ 프로젝트 ]->New->Class

자바프로그램작성 클래스에소스코드추가 자바프로그램컴파일오류 컴파일오류시 quick fix 를눌러서수정 자바프로그램실행 프로그램실행 Run (Ctrl+F11) 자바프로그램실행 이클립스프로젝트디렉토리 또는콘솔창에서실행

LAB0 HelloWorld 프로그램을작성한다. JDK 설치 IDE 설치 환경설정 이클립스를사용한자바프로그램작성 프로젝트디렉토리안에보고서 (1~2장) 를넣고 Lab0_ 학번 _ 이름.zip 압축한후제출