Java体系结构

Java体系结构
    JVM+Java API = "平台"也叫做Java平台,Java运行时系统。所有Java程序都可以在这个平台上运行。
    Java程序设计语言
        开发效率快,执行速度较慢。
        内存管理
        线程调度
        代码容易被反编译
    Java应用编程接口(API)
        java api通过支持平台无关性和安全性。
        JVM和java api class文件是任何java平台都要实现的必要部分。
        java api的class文件天生就与主机平台密切相关,在一个平台能够支持java程序以前,必须在这个特定平台上明确地实现api的功能。
    Java class文件格式
        平台无关性和网络移动性
        在java class文件中字节顺序是高位在前。
        class文件设计得紧凑,可以快速地在网络上传送。
        java程序是动态连接和动态扩展的,class文件可以在需要的时候下载。
    Java虚拟机
        Java面象网络的核心是JVM。平台无关性,安全性,网络移动性。
        JVM规范:定义了每个JVM都必须实现的特性,其实现细节不要求。
            纯粹软件方式来实现:
            大部分由硬件实现:
        JVM包涵class loader,它加载程序class文件,及api中用到的class文件,执行引擎来执行字节码。
        执行引擎的实现:
            软件实现的jvm中,执行引擎是:
                一次性解释字节码。
                即时编译器,第一次被执行的字节码会被编译成本地机器代码,这些代码会被缓存,当方法以后被调用的时候可以重用。
                自适应优化器,开始时解释字节码,监视并记录下使用最频繁的代码段,只把这段代码编译成本地代码,其他的保留为字节码。由JVM继续解释它们。
            硬件芯片构成的jvm,执行引擎是:
                用本地方法来执行java字节码。
        Java中的方法:
            Java方法
            本地方法
                c,c++,汇编
                    Java平台供应商并不一定必须支持JNI,他们还可以提供自己的本地方法接口。
                    保存在dll动态连接库中。它是与平台相关的。
        类装载器
            是JVM在安全性和网络移动性上的应用方面
            class loader体系结构
                被不同类装载器装载的类是不可以相互访问的,除非应用程序显式允许这么做。
                一个java应用程序可以从一个类或多个类中实例化多个用户定义的类装载器。而每一个类装载器都有它自己的命名空间,
                启动类装载器是JVM实现的一部分,而用户定义的类装载器则都是堆上的对象。
                jvm会使用装载第一个类的类装载器装载被引用的类。
                bootstrap类装载器
                    通常使用某种默认方式从本地磁盘中装载类,包括java api中的类.
                    它是JVM实现的一部分。
                    系统中惟一,用C,C++实现的。
                extension类装载器
                application类装载器
                用户定义类装载器
Java体系结构
Java class文件格式
    平台无关性和网络移动性
    在java class文件中字节顺序是高位在前。
    class文件设计得紧凑,可以快速地在网络上传送。
    java程序是动态连接和动态扩展的,class文件可以在需要的时候下载。
Java虚拟机
    Java面象网络的核心是JVM。平台无关性,安全性,网络移动性。
    JVM规范:定义了每个JVM都必须实现的特性,其实现细节不要求。
        纯粹软件方式来实现:
        大部分由硬件实现:
    JVM包涵class loader,它加载程序class文件,及api中用到的class文件,执行引擎来执行字节码。
    执行引擎的实现:
        软件实现的jvm中,执行引擎是:
            一次性解释字节码。
            即时编译器,第一次被执行的字节码会被编译成本地机器代码,这些代码会被缓存,当方法以后被调用的时候可以重用。
            自适应优化器,开始时解释字节码,监视并记录下使用最频繁的代码段,只把这段代码编译成本地代码,其他的保留为字节码。由JVM继续解释它们。
        硬件芯片构成的jvm,执行引擎是:
            用本地方法来执行java字节码。
    Java中的方法:
        Java方法
        本地方法
            c,c++,汇编
                Java平台供应商并不一定必须支持JNI,他们还可以提供自己的本地方法接口。
                保存在dll动态连接库中。它是与平台相关的。
    类装载器
        是JVM在安全性和网络移动性上的应用方面
        class loader体系结构
            被不同类装载器装载的类是不可以相互访问的,除非应用程序显式允许这么做。
            一个java应用程序可以从一个类或多个类中实例化多个用户定义的类装载器。而每一个类装载器都有它自己的命名空间,
            启动类装载器是JVM实现的一部分,而用户定义的类装载器则都是堆上的对象。
            jvm会使用装载第一个类的类装载器装载被引用的类。
            bootstrap类装载器
                通常使用某种默认方式从本地磁盘中装载类,包括java api中的类.
                它是JVM实现的一部分。
                系统中惟一,用C,C++实现的。
            extension类装载器
            application类装载器
            用户定义类装载器
JVM+Java API = "平台"也叫做Java平台,Java运行时系统。所有Java程序都可以在这个平台上运行。
Java程序设计语言
    开发效率快,执行速度较慢。
    内存管理
    线程调度
    代码容易被反编译
Java应用编程接口(API)
    java api通过支持平台无关性和安全性。
    JVM和java api class文件是任何java平台都要实现的必要部分。
    java api的class文件天生就与主机平台密切相关,在一个平台能够支持java程序以前,必须在这个特定平台上明确地实现api的功能。

你可能感兴趣的:(Java体系结构)