1장 java란 무엇인가.key

Post on 29-Jan-2018

11.486 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

Java란 무엇인가

artdb@ex-em.com | 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

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 3

Java Architecture

1) Java Architecture

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 3

Java Architecture

1) Java Architecture

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

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 3

Java Architecture

1) Java Architecture

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

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

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

artdb@ex-em.com | 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

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

artdb@ex-em.com | 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

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 6

Java Architecture

2) Java Programming Language

Java Language

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

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

artdb@ex-em.com | 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 기술의 적용

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

artdb@ex-em.com | 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 기술의 적용

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 7

Java Architecture

3) Java Class File Format

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 7

Java Architecture

3) Java Class File Format

Compact한 형태

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 7

Java Architecture

3) Java Class File Format

Compact한 형태

Bytecode로 변경

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 7

Java Architecture

3) Java Class File Format

Compact한 형태

Bytecode로 변경

Platform 독립적

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 7

Java Architecture

3) Java Class File Format

Compact한 형태

Bytecode로 변경

Platform 독립적

Network byte order의사용

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

artdb@ex-em.com | 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

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

Java Virtual Machine

• Java Virtual Machine

9

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

Java Virtual Machine

• Java Virtual Machine

9

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

Java Virtual Machine

• Java Virtual Machine

9

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 10

Java Virtual Machine

1) What is JVM?

JAVA

Virtual

Machine

SoftWare

하나의 Machine과 같이

Java를 위한

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

artdb@ex-em.com | 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

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

artdb@ex-em.com | 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별 구현

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

artdb@ex-em.com | 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

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental

artdb@ex-em.com | performeister.tistory.com | twitter @novathinkerJava Performance Fundamental 14

top related