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




Java
Java Performance Fundamental                                                      2

                               artdb@ex-em.com | performeister.tistory.com | twitter @novathinker




Java Architecture
   1) Java Architecture
   2) Java Programming Language

   3) Java Class File Format

   4) Java API

Java Virtual Machine
   1) What is JVM?
   2) JVM Architecture
Java Performance Fundamental
               Java Performance Fundamental
                                                                                   3

                          artdb@ex-em.com | performeister.tistory.com | twitter @novathinker
  Java Architecture




1) Java Architecture
Java Performance Fundamental
               Java Performance Fundamental
                                                                                   3

                          artdb@ex-em.com | performeister.tistory.com | twitter @novathinker
  Java Architecture




1) Java Architecture


                                                                 !
                                                                     ..?
Java Performance Fundamental
               Java Performance Fundamental
                                                                                       3

                              artdb@ex-em.com | performeister.tistory.com | twitter @novathinker
  Java Architecture




1) Java Architecture


                      ,                                              !
                                                                         ..?
                          .
Java Performance Fundamental
               Java Performance Fundamental
                                                                                        4

                               artdb@ex-em.com | performeister.tistory.com | twitter @novathinker
  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
Java Performance Fundamental
                             Java Performance Fundamental
                                                                                                                  5

                                                         artdb@ex-em.com | performeister.tistory.com | twitter @novathinker
                Java Architecture




1) Java Architecture
                               Java source file                               Java class file

                    A.java           B.java    C.java              A.class          B.class         C.class
 Compile Time




                                                                                                                      Run Time
                                      Java                                     Java Virtual
                                    compiler                                     Machine




                   A.class           B.class   C.class           Object.class               String.class
                               Java class file                           Java API’s class files
Java Performance Fundamental
               Java Performance Fundamental
                                                                                     6

                            artdb@ex-em.com | performeister.tistory.com | twitter @novathinker
  Java Architecture



2) Java Programming Language

                      Java Language

                                            Software
Java Performance Fundamental
                  Java Performance Fundamental
                                                                                             6

                                    artdb@ex-em.com | performeister.tistory.com | twitter @novathinker
     Java Architecture



2) Java Programming Language

                             Java Language

                                                    Software
       Source Code

       Memory

Array bound check        Program
          corruption

Object Reference check       Null
          Reference
Java Performance Fundamental
                  Java Performance Fundamental
                                                                                             6

                                    artdb@ex-em.com | performeister.tistory.com | twitter @novathinker
     Java Architecture



2) Java Programming Language

                             Java Language

                                                    Software
       Source Code
                                                          object-orientation

       Memory                                               multi-threading
                                                     structured error-handling
Array bound check        Program
          corruption                                      garbage collection
                                                           dynamic linking
Object Reference check       Null
                                                          dynamic extension
          Reference
Java Performance Fundamental
               Java Performance Fundamental
                                                                                   7

                          artdb@ex-em.com | performeister.tistory.com | twitter @novathinker
  Java Architecture




3) Java Class File Format
Java Performance Fundamental
               Java Performance Fundamental
                                                                                         7

                                artdb@ex-em.com | performeister.tistory.com | twitter @novathinker
  Java Architecture




3) Java Class File Format



                      Compact
Java Performance Fundamental
               Java Performance Fundamental
                                                                                         7

                                artdb@ex-em.com | performeister.tistory.com | twitter @novathinker
  Java Architecture




3) Java Class File Format



                      Compact         Bytecode
Java Performance Fundamental
               Java Performance Fundamental
                                                                                          7

                                 artdb@ex-em.com | performeister.tistory.com | twitter @novathinker
  Java Architecture




3) Java Class File Format



                      Compact          Bytecode




                      Platform
Java Performance Fundamental
               Java Performance Fundamental
                                                                                          7

                                 artdb@ex-em.com | performeister.tistory.com | twitter @novathinker
  Java Architecture




3) Java Class File Format



                      Compact          Bytecode




                                     Network byte
                      Platform
                                       order
Java Performance Fundamental
                   Java Performance Fundamental
                                                                                                   8

                                          artdb@ex-em.com | performeister.tistory.com | twitter @novathinker
      Java Architecture




4) Java API (Application Programming Interface)
          Runtime Library
          Platform Independent



         Java Class                    Java Class                            Java Class

            Java API                    Java API                                Java API

                          Native Method (dynamic libraries)



                               Host Operating System
Java Performance Fundamental
              Java Performance Fundamental
                                                                                  9

                         artdb@ex-em.com | performeister.tistory.com | twitter @novathinker
  Java Virtual Machine




• Java Virtual Machine
Java Performance Fundamental
              Java Performance Fundamental
                                                                                  9

                         artdb@ex-em.com | performeister.tistory.com | twitter @novathinker
  Java Virtual Machine




• Java Virtual Machine
Java Performance Fundamental
              Java Performance Fundamental
                                                                                  9

                         artdb@ex-em.com | performeister.tistory.com | twitter @novathinker
  Java Virtual Machine




• Java Virtual Machine
Java Performance Fundamental
              Java Performance Fundamental
                                                                                     10

                            artdb@ex-em.com | performeister.tistory.com | twitter @novathinker
  Java Virtual Machine



1) What is JVM?


                    JAVA             Java


                  Virtual              SoftWare


                Machine                Machine
Java Performance Fundamental
              Java Performance Fundamental
                                                                                            11

                                   artdb@ex-em.com | performeister.tistory.com | twitter @novathinker
  Java Virtual Machine



1) What is JVM?


         Write once, run everywhere

                         Compiled Java Program

                         Java Virtual Machine


                           H/W Platform & OS
Java Performance Fundamental
                Java Performance Fundamental
                                                                                            12

                                   artdb@ex-em.com | performeister.tistory.com | twitter @novathinker
    Java Virtual Machine




 1) What is JVM?
                                Abstract
     JVM = CONCEPT            Specification
                                                                     JAVA




                                                                          SINGLE RUNNING



                   Concrete                        A Runtime
                  Implement                         Instance

VENDOR
Java Performance Fundamental
                 Java Performance Fundamental
                                                                                                    13

                                           artdb@ex-em.com | performeister.tistory.com | twitter @novathinker
     Java Virtual Machine



 2) JVM Architecture
                              Java Application


  Class                                                                      Java




                                                                                                         Native Threads
Libraries                   Class Loader System                            Threads



 Native                Execution         Run-time                        Garbage
Method                   Engine          Data Area                       Collector
Libraries


                               (Real-Time) Operating System
Java Performance Fundamental
   Java Performance Fundamental
                                                                       14

              artdb@ex-em.com | performeister.tistory.com | twitter @novathinker

1장 Java란 무엇인가.key

  • 1.
    Java Performance Fundamental artdb@ex-em.com | performeister.tistory.com | twitter @novathinker Java
  • 2.
    Java Performance Fundamental 2 artdb@ex-em.com | performeister.tistory.com | twitter @novathinker Java Architecture 1) Java Architecture 2) Java Programming Language 3) Java Class File Format 4) Java API Java Virtual Machine 1) What is JVM? 2) JVM Architecture
  • 3.
    Java Performance Fundamental Java Performance Fundamental 3 artdb@ex-em.com | performeister.tistory.com | twitter @novathinker Java Architecture 1) Java Architecture
  • 4.
    Java Performance Fundamental Java Performance Fundamental 3 artdb@ex-em.com | performeister.tistory.com | twitter @novathinker Java Architecture 1) Java Architecture ! ..?
  • 5.
    Java Performance Fundamental Java Performance Fundamental 3 artdb@ex-em.com | performeister.tistory.com | twitter @novathinker Java Architecture 1) Java Architecture , ! ..? .
  • 6.
    Java Performance Fundamental Java Performance Fundamental 4 artdb@ex-em.com | performeister.tistory.com | twitter @novathinker 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
  • 7.
    Java Performance Fundamental Java Performance Fundamental 5 artdb@ex-em.com | performeister.tistory.com | twitter @novathinker Java Architecture 1) Java Architecture Java source file Java class file A.java B.java C.java A.class B.class C.class Compile Time Run Time Java Java Virtual compiler Machine A.class B.class C.class Object.class String.class Java class file Java API’s class files
  • 8.
    Java Performance Fundamental Java Performance Fundamental 6 artdb@ex-em.com | performeister.tistory.com | twitter @novathinker Java Architecture 2) Java Programming Language Java Language Software
  • 9.
    Java Performance Fundamental Java Performance Fundamental 6 artdb@ex-em.com | performeister.tistory.com | twitter @novathinker Java Architecture 2) Java Programming Language Java Language Software Source Code Memory Array bound check Program corruption Object Reference check Null Reference
  • 10.
    Java Performance Fundamental Java Performance Fundamental 6 artdb@ex-em.com | performeister.tistory.com | twitter @novathinker Java Architecture 2) Java Programming Language Java Language Software Source Code object-orientation Memory multi-threading structured error-handling Array bound check Program corruption garbage collection dynamic linking Object Reference check Null dynamic extension Reference
  • 11.
    Java Performance Fundamental Java Performance Fundamental 7 artdb@ex-em.com | performeister.tistory.com | twitter @novathinker Java Architecture 3) Java Class File Format
  • 12.
    Java Performance Fundamental Java Performance Fundamental 7 artdb@ex-em.com | performeister.tistory.com | twitter @novathinker Java Architecture 3) Java Class File Format Compact
  • 13.
    Java Performance Fundamental Java Performance Fundamental 7 artdb@ex-em.com | performeister.tistory.com | twitter @novathinker Java Architecture 3) Java Class File Format Compact Bytecode
  • 14.
    Java Performance Fundamental Java Performance Fundamental 7 artdb@ex-em.com | performeister.tistory.com | twitter @novathinker Java Architecture 3) Java Class File Format Compact Bytecode Platform
  • 15.
    Java Performance Fundamental Java Performance Fundamental 7 artdb@ex-em.com | performeister.tistory.com | twitter @novathinker Java Architecture 3) Java Class File Format Compact Bytecode Network byte Platform order
  • 16.
    Java Performance Fundamental Java Performance Fundamental 8 artdb@ex-em.com | performeister.tistory.com | twitter @novathinker Java Architecture 4) Java API (Application Programming Interface)  Runtime Library  Platform Independent Java Class Java Class Java Class Java API Java API Java API Native Method (dynamic libraries) Host Operating System
  • 17.
    Java Performance Fundamental Java Performance Fundamental 9 artdb@ex-em.com | performeister.tistory.com | twitter @novathinker Java Virtual Machine • Java Virtual Machine
  • 18.
    Java Performance Fundamental Java Performance Fundamental 9 artdb@ex-em.com | performeister.tistory.com | twitter @novathinker Java Virtual Machine • Java Virtual Machine
  • 19.
    Java Performance Fundamental Java Performance Fundamental 9 artdb@ex-em.com | performeister.tistory.com | twitter @novathinker Java Virtual Machine • Java Virtual Machine
  • 20.
    Java Performance Fundamental Java Performance Fundamental 10 artdb@ex-em.com | performeister.tistory.com | twitter @novathinker Java Virtual Machine 1) What is JVM? JAVA Java Virtual SoftWare Machine Machine
  • 21.
    Java Performance Fundamental Java Performance Fundamental 11 artdb@ex-em.com | performeister.tistory.com | twitter @novathinker Java Virtual Machine 1) What is JVM? Write once, run everywhere Compiled Java Program Java Virtual Machine H/W Platform & OS
  • 22.
    Java Performance Fundamental Java Performance Fundamental 12 artdb@ex-em.com | performeister.tistory.com | twitter @novathinker Java Virtual Machine 1) What is JVM? Abstract JVM = CONCEPT Specification JAVA SINGLE RUNNING Concrete A Runtime Implement Instance VENDOR
  • 23.
    Java Performance Fundamental Java Performance Fundamental 13 artdb@ex-em.com | performeister.tistory.com | twitter @novathinker Java Virtual Machine 2) JVM Architecture Java Application Class Java Native Threads Libraries Class Loader System Threads Native Execution Run-time Garbage Method Engine Data Area Collector Libraries (Real-Time) Operating System
  • 24.
    Java Performance Fundamental Java Performance Fundamental 14 artdb@ex-em.com | performeister.tistory.com | twitter @novathinker