1장 java란 무엇인가.key

24
[email protected] | performeister.tistory.com | twitter @novathinker Java Performance Fundamental Java무엇인가

Upload: -

Post on 29-Jan-2018

11.486 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: 1장 Java란 무엇인가.key

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

Java란 무엇인가

Page 2: 1장 Java란 무엇인가.key

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 2

Java Architecture1) Java Architecture

2) Java Programming Language

3) Java Class File Format

4) Java API

Java Virtual Machine1) What is JVM?

2) JVM Architecture

Page 3: 1장 Java란 무엇인가.key

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 3

Java Architecture

1) Java Architecture

Page 4: 1장 Java란 무엇인가.key

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 3

Java Architecture

1) Java Architecture

자기야!자바가 뭐야..?

Page 5: 1장 Java란 무엇인가.key

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 3

Java Architecture

1) Java Architecture

자기야!자바가 뭐야..?

응, 그거는프로그램 짤 때 쓰는 언어야.

Page 6: 1장 Java란 무엇인가.key

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 4

Java Architecture

1) Java Architecture

Java는 상호 관련된 4가지 기술로 구성

The Java Programming Language

The Java Class File Format

The Java Application Programming Interface

The Java Virtual Machine

Page 7: 1장 Java란 무엇인가.key

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 5

Java Architecture

1) Java Architecture

A.java B.java C.java

Javacompiler

A.class B.class C.class

Java source file

Java class file

Object.class String.classJava API’s class files

Java class file

A.class B.class C.class

Java Virtual Machine

Com

pile

Tim

e Run Time

Page 8: 1장 Java란 무엇인가.key

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 6

Java Architecture

2) Java Programming Language

Java Language

생산성의 극대화 최신 Software 기술의 적용

Page 9: 1장 Java란 무엇인가.key

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 6

Java Architecture

2) Java Programming Language

Source Code의 재사용

Memory관리에서 해방

Array bound check를 통한 Program의 corruption방지

Object Reference check를 통한 Null Reference 방지

Java Language

생산성의 극대화 최신 Software 기술의 적용

Page 10: 1장 Java란 무엇인가.key

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 6

Java Architecture

2) Java Programming Language

object-orientation

multi-threading

structured error-handling

garbage collection

dynamic linking

dynamic extension

Source Code의 재사용

Memory관리에서 해방

Array bound check를 통한 Program의 corruption방지

Object Reference check를 통한 Null Reference 방지

Java Language

생산성의 극대화 최신 Software 기술의 적용

Page 11: 1장 Java란 무엇인가.key

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 7

Java Architecture

3) Java Class File Format

Page 12: 1장 Java란 무엇인가.key

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 7

Java Architecture

3) Java Class File Format

Compact한 형태

Page 13: 1장 Java란 무엇인가.key

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 7

Java Architecture

3) Java Class File Format

Compact한 형태

Bytecode로 변경

Page 14: 1장 Java란 무엇인가.key

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 7

Java Architecture

3) Java Class File Format

Compact한 형태

Bytecode로 변경

Platform 독립적

Page 15: 1장 Java란 무엇인가.key

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 7

Java Architecture

3) Java Class File Format

Compact한 형태

Bytecode로 변경

Platform 독립적

Network byte order의사용

Page 16: 1장 Java란 무엇인가.key

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 8

Java Architecture

4) Java API (Application Programming Interface) Runtime Library의 집합 Platform Independent

Host Operating System

Java API Java API Java API

Native Method (dynamic libraries)

Java Class Java Class Java Class

Page 17: 1장 Java란 무엇인가.key

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

Java Virtual Machine

• Java Virtual Machine

9

Page 18: 1장 Java란 무엇인가.key

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

Java Virtual Machine

• Java Virtual Machine

9

Page 19: 1장 Java란 무엇인가.key

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

Java Virtual Machine

• Java Virtual Machine

9

Page 20: 1장 Java란 무엇인가.key

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 10

Java Virtual Machine

1) What is JVM?

JAVA

Virtual

Machine

SoftWare

하나의 Machine과 같이

Java를 위한

Page 21: 1장 Java란 무엇인가.key

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 11

Java Virtual Machine

1) What is JVM?

Write once, run everywhere

H/W Platform & OS

Java Virtual Machine

Compiled Java Program

Page 22: 1장 Java란 무엇인가.key

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 12

Abstract Specification

A Runtime Instance

Concrete Implement

Java Virtual Machine

1) What is JVM?

JAVA의 핵심

SINGLE RUNNING

JVM = CONCEPT

VENDOR별 구현

Page 23: 1장 Java란 무엇인가.key

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 13

Java Virtual Machine

Java Application

(Real-Time) Operating System

NativeMethodLibraries

Class Libraries Class Loader System

Execution Engine

Run-timeData Area

GarbageCollector

2) JVM Architecture

JavaThreads

Nat

ive

Thre

ads

Page 24: 1장 Java란 무엇인가.key

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

[email protected] | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 14