浅谈JVM

1. JVM是什么?

JVM: Java Virtual Machine,Java虚拟机.

什么是虚拟机?

答: 虚拟机指 通过软件模拟的具有完整硬件功能的,运行在一个完全隔离的环境中的完整计算机系统.

Java虚拟机,是虚拟机的一个简化版本,裁减了很多内容,完成Java字节码指令集的执行.

2. Java文件的运行过程

运行的第二步:

对于单行字节码指令的翻译,速度很快,但是大量的字节码指令翻译积少成多,时间消耗也是比较大的.

于是有了JIT即时编译器: 热点代码在运行时,编译为机器码,之后再执行,不需要再翻译,提高了效率.(比如while(true){...}循环代码等)

一个Java进程运行起来: 是一个Java程序(初始化VM参数,创建Java虚拟机,启动一个main线程运行main主函数,启动很多守护线程(GC垃圾回收线程等等))运行起来,作为一个进程.

(1) Java进程运行以后,启动了一个Java虚拟机,包括自动回收垃圾.

(2) 编译期的编译(Java文件编译为class字节码文件),运行期同时存在解释,执行编译.

  • 解释: 翻译字节码为机器码
  • 执行: 执行机器码
  • 编译: JIT即时编译器的热点代码编译,如循环等.

(3) 有很多第三方Java虚拟机,可以把其他的语言(如kotlin,groovy,scala)编译为字节码,通过Java虚拟机加载到内存执行.

(4) 关于类加载的补充

  • 类加载的时机: new对象,调用/设置静态变量值,调用静态方法,执行main方法的类,其他.
  • 类加载做的事情: 粗略看,把class字节码数据,加载到Java进程的方法区,堆里边生成了一个Class类对象.
  • 类加载时运行期执行的,不仅可以从class文件中加载,还可以从其他来源.

 

 

 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值