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虚拟机(JVM)是Java程序运行的基础,它提供了执行环境和各种内存区域,以支持Java代码的高效运行。本地方法栈是JVM的一部分,它主要负责处理与本地方法(通常是由C或C++编写)相关的调用。本地方法栈在Java线程...
深入 Java 虚拟机.pdf Java 虚拟机(Java Virtual Machine,JVM)是 Java 语言的 runtime 环境,是 Java 程序执行的核心组件。它提供了一个平台无关的环境,允许 Java 程序在不同的操作系统和硬件平台上运行。 一...
《实战Java虚拟机——JVM故障诊断与性能优化》内容简介:随着越来越多的第三方语言(Groovy、Scala、JRuby等)在Java虚拟机上运行,Java也俨然成为一个充满活力的生态圈。本书将通过200余示例详细介绍Java虚拟机中的...
第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虚拟机不用多少了吧。 深入java虚拟机第二版.pdf
#### 第一章 Java体系结构介绍 - **Java体系结构概述**:本章主要介绍了Java体系结构的基本概念及其组成部分。Java体系结构旨在为开发者提供一个统一、高效且跨平台的应用开发环境。 - **Java虚拟机(JVM)**:JVM是...
通过阅读《深入理解Java虚拟机》第三章,开发者不仅可以深入理解Java的安全机制,还能学习到如何在实际项目中实施这些安全策略,提升应用的安全性。对于想要从事Java开发或者对系统安全有深入了解需求的人来说,这一...
java虚拟机读书笔记,主要描述阅读Java虚拟机核心技术的描述。
讲述java虚拟机 唯二的书。本书作者曾因本书荣获专业技术杂志《Java Report》评选的优秀...作者以易于理解的方式深入揭示了Java虚拟机的内部工作原理,深入理解这些内容,将对读者更快速地编写更高效的程序大有裨益!
第9~10章介绍了Java虚拟机的核心——Class文件结构,以及Java虚拟机中类的装载系统。第11章介绍了Java虚拟机的执行系统和字节码,并给出了通过ASM框架进行字节码注入的案例。, 《实战Java虚拟机——JVM故障诊断与...
《深入JAVA虚拟机第二版》是由Bill Venners撰写,并由曹晓钢和蒋靖翻译的中文书籍。这本书是Java开发者必备的经典读物,它详细地解析了Java虚拟机(JVM)的工作原理,帮助读者深入理解Java程序的运行机制。尽管描述...
通过阅读《深入JAVA虚拟机》和《JVM规范》,结合实际的代码分析,可以让我们更好地理解和掌握这个强大的虚拟机。无论是初级开发者还是经验丰富的专家,都应该对JVM有深入的理解,这将极大地提升我们的编程实践能力。
深入理解Java虚拟机,首先我们要明白Java虚拟机(JVM)的核心功能:它负责装载类文件,执行字节码,并管理内存。Java虚拟机的结构复杂且高效,主要由类装载器、执行引擎、内存管理和类库等组件构成。 类装载器是JVM...
《深入Java虚拟机》这本书是Java开发者深入了解JVM(Java Virtual Machine)的必备经典之作。它详尽地探讨了Java虚拟机的工作原理、内存管理、类加载机制、字节码执行以及性能优化等多个核心主题,旨在帮助开发者...
深入JAVA虚拟机第二版.pdf深入JAVA虚拟机第二版.pdf深入JAVA虚拟机第二版.pdf深入JAVA虚拟机第二版.pdf深入JAVA虚拟机第二版.pdf深入JAVA虚拟机第二版.pdf
第1章 Java体系结构介绍 第2章 平台无关 第3章 安全 第4章 网络移动性 第5章 Java虚拟机 第6章 Java class文件 第7章 类型的生命周期 第8章 连接模型 第9章 垃圾收集 第10章 栈和局部变量操作 第11章 类型转换 第12...
《深入JAVA虚拟机 不那么完美的第二版》这本书虽然在印刷上可能存在一些小瑕疵,但这并不影响我们从中汲取宝贵的Java虚拟机(JVM)知识。Java虚拟机是Java平台的核心组成部分,它负责执行Java程序,提供了跨平台的...
《深入Java虚拟机(原书第二版清晰版)》这本书是为那些已经学习了Java编程语言,希望通过深入理解Java虚拟机(JVM)来进一步提升自己技术能力的Java程序员所准备的。本书详细介绍了JVM的内部工作机制,包括但不限于...
深入JAVA虚拟机,帮助大家在Java方面进行学习,深入JAVA虚拟机,帮助大家在Java方面进行学习,
Java虚拟机(JVM)是Java程序运行的核心组件,它为Java代码提供了跨平台的运行环境。JVM的底层结构主要包括几个关键部分:寄存器、栈和堆。 首先,JVM寄存器是虚拟机内部的一个概念,尽管实际硬件可能不包含与之...