java技术的核心就是java虚拟机——所有的java程序都在其上运行。
Java的面向网络的核心就是java虚拟机,它支持java面向网络体系结构的三大支柱的所有方面:平台无关性,安全性和网络移动性。
不同的java虚拟机,有不同的执行引擎实现:
1. 由软件实现的虚拟机中,最简单的执行引擎是一次性解释字节码;
2. 即时编译器:执行引擎更快,跟消耗内存;第一次执行字节码时就会编译成本地机器代码,被缓存,可以重用;
3. 自适应优化器:监视运行中的程序活动,并记录下使用频繁的代码段,运行时,虚拟机会把活动最频繁的代码编译成本地的代码,其他代码继续保留字节码——由虚拟机继续解释他们。优点:使虚拟机在80%~90%的时间里执行被优化过的本地代码,只需要编译10%~20%对性能有影响的代码;
4. 有硬件芯片构成的虚拟机:它用本地代码执行java字节码,这种执行引擎实际上市内嵌在芯片里的。
Java虚拟机的基本结构:
Java的2种方法:java方法和本地方法;java方法是由java语言编写,编译成字节码,存储为class文件中的。本地方法是由其他语言(比如C,C++或者汇编语言)编写,编译成和处理器相关的机器代码;java方法与平台无关,但是本地方法不是的,本地方法是联系java、
程序和底层主机操作系统的链接方法,使java程序可以直接访问底层操作系统的资源,这样您的程序就变成与平台有关了,因为本地方法的动态库是平台相关的。
Java本地接口(Java native interface,JNI)——使得本地方法可以在特定主机系统的任何一个java平台实现上运行,只要平台供应商支持JNI。
Java有两种类型的类装载器:启动类装载器和用户定义的类装载器。启动类装载器是虚拟器实现的一个部分,通常用C/C++语言编写。它主要装载java api 的核心类库。用户定义的类装载器则是用Java语言编写的,能够编译为class文件,能够被虚拟机装载,还能够像其他对象一样实例化
Java class 文件主要在平台无关性和网络移动性方面使java更适应于网络。
Java语言的优势(对比c++):
1. 没有通过使用强制转换指针或者通过进行指针运算直接访问内存的方法,避免内存操作引起崩溃
2. 自动垃圾回收,
3. 数组边界检查,实际也是指针运算带来的内存冲突
4. 对象引用的检查,防止空引用
Java语言的劣势:
1. 性能比不上本地代码,手段:预编译(编译为本地代码),虚拟机性能的提高,分布式系统。
2. 内存管理和线程调度缺陷:无法确定何时开始,多长时间。
3. 最小公分母问题
4. 反编译问题:混淆器。
分享到:
相关推荐
深入Java虚拟机——本地方法栈.pdf
第1章 java体系结构介绍 1.1 为什么使用java 1.2 网络带来的挑战和机遇 1.3 体系结构 1.3.1 java虚拟机 1.3.2 类装载器的体系结构 1.3.3 java class文件 1.3.4 java api 1.3.5 java程序设计...
深入java虚拟机.pdf
java虚拟机不用多少了吧。 深入java虚拟机第二版.pdf
《实战Java虚拟机——JVM故障诊断与性能优化》内容简介:随着越来越多的第三方语言(Groovy、Scala、JRuby等)在Java虚拟机上运行,Java也俨然成为一个充满活力的生态圈。本书将通过200余示例详细介绍Java虚拟机中的...
深入理解Java虚拟机学习笔记借鉴.pdf
java虚拟机读书笔记,主要描述阅读Java虚拟机核心技术的描述。
深入java虚拟机——applet 演示, 深入java虚拟机的光盘中的所有文件。打包上传了
java 虚拟机
第9~10章介绍了Java虚拟机的核心——Class文件结构,以及Java虚拟机中类的装载系统。第11章介绍了Java虚拟机的执行系统和字节码,并给出了通过ASM框架进行字节码注入的案例。, 《实战Java虚拟机——JVM故障诊断与...
不废话Java 虚拟机入门黄金搭档。JVM规范+深入JAVA虚拟机(附带源码)。
深入java虚拟机笔记http://blog.csdn.net/yangzl2008/article/details/8074667
深入JAVA虚拟机第二版.pdf深入JAVA虚拟机第二版.pdf深入JAVA虚拟机第二版.pdf深入JAVA虚拟机第二版.pdf深入JAVA虚拟机第二版.pdf深入JAVA虚拟机第二版.pdf
深入JAVA虚拟机是中文的,但是内容是图片
第1章 Java体系结构介绍 第2章 平台无关 第3章 安全 第4章 网络移动性 第5章 Java虚拟机 第6章 Java class文件 第7章 类型的生命周期 第8章 连接模型 第9章 垃圾收集 第10章 栈和局部变量操作 第11章 类型转换 第12...
深入java虚拟机深入java虚拟机深入java虚拟机深入java虚拟机
深入JAVA虚拟机,帮助大家在Java方面进行学习,深入JAVA虚拟机,帮助大家在Java方面进行学习,
第1章 Java体系结构介绍 第2章 平台无关 第3章 安全 第4章 网络移动性 第5章 Java虚拟机 第6章 Java class文件 第7章 类型的生命周期 第8章 连接模型 第9章 垃圾收集 第10章 栈和局部变量操作 第11章 类型转换 第12...
深入JAVA虚拟机 第二版,比较老的一本书,不那么完美但不影响观看,稍微有点倾斜