JVM分析

面试FAQ分析

1.你用的是什么JVM(java虚拟机)?

HotSpot

2.你了解市面上有哪些JVM?

HotSpot,JRockit,J9,TaobaoVM,Dalvik

3.JDK,JRE,JVM之间是什么关系

JDK>JRE>JVM

4.下一代JVM的发展方向应该是怎么样的?

支持更多编程语言

5.JVM规范JVM由哪几部分构成

类加载子系统,运行时数据区,执行引擎,本地方法接口

6.为什么我们要学习JVM?

JVM是什么

JVM是Java Virtual Machine的缩写,顾名思义,他是一个可以执行JAVA字节码的虚拟计算机(有自己的指令集、内存区域、执行引擎等),拥有自己独立的运行机制,是JAVA平台的一部分,

  • JRE(Java Runtime Environment)Java程序运行时的一些基础类库,同时包含JVM。
  • JDK(Java Development Kit)Java程序开发工具包(包含了jre,jvm,工具)。

JVM是Java程序能够实现跨平台的基础(Java的跨平台本质上是通过不同平台的JVM实现的),它的作用是加载Java字节码(bytecode),然后翻译或解释成对应平台的机器码再交由CPU执行。如图

 

程序在执行之前先要把Java代码(.java)转换成字节码(.class),JVM通过类加载器(ClassLoader)把字节码加载到内存中,但字节码文件是JVM的一套指令集规范(每一条JAVA指令,Java虚拟机规范中都有详细定义,如怎么取操作数,怎么处理操作数,处理结果放在哪里。),并不能直接交给底层操作系统去执行,因此需要特定的命令解析器执行引擎(Execution Engine)将字节码翻译成底层机器码,再交由CPU去执行。

市场主流JVM分析

JVM是一种规范,基于这种规范,不同公司就对此规范做了具体实现,例如市场上的一些主流

JVM如下:

  1. HotSpot VM(Sun公司研发,后再2010年由Oracle公司收购)。
  2. JRockit VM(BEA公司研发,后再2008年由Oracle公司收购)。
  3. J9 VM  (IBM内部使用)。
  4. TaobaoJVM(AliJVM团队开发,基于OpenJDK开发了AlibabaJDK)
  5. .........

说明:HotSpot目前是应用最官方,最主要的一款JVM虚拟机。

为什么要学习JVM

第一:深入理解JVM可以帮助我们从平台角度提高解决问题的能力,例如

  • 有效防止内存泄漏(Memory leak)。
  • 优化线程锁的使用(Thread Lock)。
  • 科学进行垃圾回收(Garbage collection)。
  • 提高系统吞吐量(throughput)。
  • 降低延迟(Delay),提高其性能(performance)。

第二:企业面试需要(中高级程序员必备技能),例如

第一:深入理解JVM可以帮助我们从平台角度提高解决问题的能力,例如:

有效防止内存泄漏(Memory leak)。
优化线程锁的使用 (Thread Lock)。
科学进行垃圾回收 (Garbage collection)。
提高系统吞吐量 (throughput)。
降低延迟(Delay),提高其性能(performance)。
第二:企业面试需要(中高级程序员必备技能),例如:

其实,我们学习一些java基础代码,可以不懂JVM。但是如果你想写一些比较精巧、效率比较高的代码,就需要懂一些JVM执行层面的知识了,比方说各种资源的分配,然后进行调优和故障排查。
 

`--javac -d . HelloJVM.java 编译Java文件,生成.class文件` `--java pkg.HelloJVM 执行.class文件` `--javap -v HelloJVM.class 查看.class文件中的指令集以及各种参数。`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值