Post on 29-Jan-2018
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