导航:首页 > 编程语言 > 对javajvm的理解

对javajvm的理解

发布时间:2022-03-09 11:44:58

1. java jvm讲解

JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。

从Java平台的逻辑结构上来看,我们可以从下图来了解JVM:

2. 谁能给我解释一下 "Java运行系统是各供应商对JVM的具体实现" 这一句话该怎么理解我菜。。

就根本来说,Java还是运行在JVM虚拟机下的.但是,现在有很多Java运行系统,它把抽象的JVM虚拟机给弄得可见并且形象了.让人们易于接受.
举个例子来说吧, 比如我们的手机通信,本质上是无线电波的交互,但是,我们通过手机这个工具来实现,JVM虚拟机就相当于手机,而Java运行系统就相当于手机上运行的软件了,他让我们的通信变得具体,形象.

3. <解惑>jvm如何理解java泛型类

public class Test<E>{ public static void main(String args[]){ Test<String> test=new Test<String>(); } } 主要是你实例化的时候E要能确定下来,或者说要让编译器知道它转能成什么。比如这种方式也是可以的 public static <T> void run(Class<T> clazz) { Test<T> test = new Test<T>(); } 程序在运行的时候T类型就能定下来,所以它也能new出来

4. 学习java有必要看 深入jvm 吗

有必要。
刚好之前面试被问到类似的问题,所以简单的说一下(有空的话详细补充一下)。

首先我们广泛使用的JVM一般是HotSpot虚拟机,HotSpot有两个JVM的实现。
一个是`Java HotSpot Cilent VM`,另一个是`Java HotSpot Server VM`。
前者致力于在客户端环境中减少启动时间而优化,后者在服务器环境中最大化程序执行速度而设计。

学习JVM主要是,理解编译过程,理解内存分配与垃圾回收,以及线程资源分配等问题。

可以从下面几方面入手:
编译过程(Compile)
内存分配(Memory)
执行时间(Runtime)
垃圾回收(Garbage Collection)
线程资源方面(Thread)
与虚拟机相关的异常处理(Exception)

根据业务特点调整JVM:
修改JVM参数,修改堆的初始大小和最大堆大小,修改年轻带与持久代的大小,修改每个线程的堆栈大小等等。

当然,在处理网站性能问题上,很多人在业务层上想办法,有人坚持做出了更好的JVM,例如这个Zing

当然,你说不在乎这些东西,了解这些东西浪费时间。
那帮老板画画界面,用个开源库写写业务逻辑,改改bug,帮老板赚钱,也是极好的。

5. JVM,JRE,JDK各是什么含义之间的关系

JVM为Java Virtual Machine(Java虚拟机)的缩写,JVM为一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

Java运行环境(Java Runtime Environment,简称JRE)为一个软件,由太阳微系统所研发,JRE可以让计算机系统运行Java应用程序(Java Application)。

JDK为Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK为整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

JRE包括两部分:Java Runtime Environment和Java Plug-in,JavaRuntimeEnvironment(JRE)为可以在其上运行、测试和传输应用程序的Java平台,它包括Java虚拟机(jvm)、Java核心类库和支持文件。

它不包含开发工具(JDK)-编译器、调试器和其它工具。JRE需要辅助软件Java Plug-in以便在浏览器中运行applet。



(5)对javajvm的理解扩展阅读

Java平台可分为两部分,即Java虚拟机(Java virtual machine,JVM)和Java API类库。Java虚拟机主要分为五大模块:类装载器子系统、运行时数据区、执行引擎、本地方法接口和垃圾收集模块。

其中垃圾收集模块在Java虚拟机规范中并没有要求Java虚拟机垃圾收集,但是在没有发明无限的内存之前,大多数JVM实现都是有垃圾收集的。

而运行时数据区都会以某种形式存在于每一个JAVA虚拟机实例中,但是Java虚拟机规范对它的描述却是相当抽象。这些运行时数据结构上的细节,大多数都由具体实现的设计者决定。

6. 什么是JVMJava跨平台的原理是什么

首先我们要理解什么是跨平台,所谓的跨平台就是JAVA写的一份代码可以在任意的操作系统平台上运行。

为什么跨平台会成为一个问题呢?因为每一个操作系统平台支持不同的指令集我们所写的代码经过编译之后只能适用于一个平台,换一个平台就不支持了。而JAVA完美的解决了这个问题。

Java的一大特色就是“write once, run anywhere”即“一次编译,到处运行”。就是说你不用专门为每个平台写一份代码,你写的Java程序在任何平台都能跑起来。

它的实现原理是在系统层面上又增加了一层虚拟机(Java Virtual Machine,简称JVM),且为每个平台都定制了对应的虚拟机。然后Java程序是在虚拟机上跑的,因此平台无关。

Java的运行流程是:程序员写了源代码(Source Code,.java后缀,跨平台),然后经过编译器编译成字节码(Byte Code,.class后缀,二进制文件),字节码是所有虚拟机都能理解的中间文件。然后交给虚拟机(每个平台都有对应的虚拟机)去运行。

所以对“write once, run anywhere”更准确的理解是,“一次编译,到处装虚拟机,所以到处运行”。

整个流程如下图所示。

7. 如何简单理解jvm的原理呢

JVM工作原理和特点主要是指操作系统装入JVM是通过jdk中Java.exe来完成,通过下面4步来完成JVM环境. 1.创建JVM装载环境和配置 2.装载JVM.dll 3.初始化JVM.dll并挂界到JNIENV(JNI调用接口)实例 4.调用JNIEnv实例装载并处理class类。

8. jvm的理解

JVM主要就是为java程序提供一个运行环境,包括类的加载,内存的分配,垃圾的回收,JVM将内存划分为堆,虚拟机栈,线程计数器,本地方法栈,方法区五个内存区域。

为了满足java程序运行时的垃圾回收,jvm提供了一些垃圾回收器用于堆内存的回收,常用的垃圾收集器包括ParNew新生代垃圾收集器,cms老年代垃圾收集器,G1垃圾收集器,这些垃圾收集器根据年龄代对象的特点使用不同的垃圾回收算法,为了解决垃圾收集时GC停顿对于Java程序的影响,使用一些参数的配置尽量减少垃圾回收时的停顿。

比如ParNew新生代垃圾收集器采用复制收集算法,使用多线程收集,提高垃圾回收的效率,CMS采用分段收集,对于比较耗时的阶段允许用户线程并行,但随之而来的也会导致一些缺陷,比如浮动垃圾,cpu资源紧张,内存碎片的问题,对于这些问题,可以通过JVM调优去尽量避免,比如浮动垃圾则可以减小CMS垃圾回收的老年代内存阈值。

G1垃圾收集器则采用可控的GC停顿时间来进行垃圾回收,将内存划分为一个个小的region,逻辑上划分出年轻代和老年代,所以G1垃圾收集器的调优主要就是对于GC停顿时间的调优,太大可能会导致每次GC停顿时间太长,太小可能导致GC发生的太频繁。

对于JVM调优这个话题,我们主要要保证减少YGC的次数,和尽量避免Full GC,因为对老年代的回收由于存活的对象比较多,回收是比较耗时的,那么对于这目标的实现,我们主要围绕一个思想来做,就是尽量保证每次回收后存活的对象可以存放在s区,这些都需要对程序有一个预测和平时的JVM观测

9. Java中API,JVM的含义是什么

JVM是JAVA虚拟机的意思,API是接口的意思,可以理解成他是JDK那些类库的详细介绍的文档

阅读全文

与对javajvm的理解相关的资料

热点内容
优信二手车解压后过户 浏览:62
Windows常用c编译器 浏览:778
关于改善国家网络安全的行政命令 浏览:833
安卓如何下载网易荒野pc服 浏览:654
javainetaddress 浏览:104
苹果4s固件下载完了怎么解压 浏览:1003
命令zpa 浏览:286
python编译器小程序 浏览:945
在app上看视频怎么光线调暗 浏览:540
可以中文解压的解压软件 浏览:593
安卓卸载组件应用怎么安装 浏览:913
使用面向对象编程的方式 浏览:340
程序员项目经理的年终总结范文 浏览:930
内衣的加密设计用来干嘛的 浏览:433
淮安数据加密 浏览:292
魔高一丈指标源码 浏览:982
松下php研究所 浏览:168
c回调java 浏览:401
梦幻端游长安地图互通源码 浏览:746
电脑本地文件如何上传服务器 浏览:314