Java基础整理篇--JVM(入门必看)

 

1)基本概念
JVM 是可运行 Java 代码的假想计算机 ,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收,堆 和 一个存储方法域。JVM是运行在操作系统之上的,它与硬件没有直接的交互。
Java虚拟机本质上就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节码文件中的指令。Java语言的可移植性正是建立在Java虚拟机的基础上。任何平台只要装有针对于该平台的Java虚拟机,字节码文件(.class)就可以在该平台上运行。这就是“一次编译,多次运行”。
2)java代码的执行
使用javac 命令,通过编译器将java源文件编译为.class字节码文件文件;字节码文件通过解释器,编译成特定机器上的机器码。

Java源文件-->编译器-->字节码文件
字节码文件-->JVM-->机器码
每一种平台的解释器是不同的,但是实现的虚拟机是相同的,这也就是 Java 为什么能够跨平台的原因了
3)内存管理

  • 方法区
  • 方法栈
  • PC寄存器

4)JVM内存分类

  • 私有区域:生命周期与线程生命周期相同
    • 程序计数器:一块较小的内存空间,当前线程所执行的字节码的行号指示器,每条线程都需要独立的程序计数器
    • 虚拟机栈:java方法执行的内存模型,每个方法执行的同事都会创建一个栈帧,用于存储局部变量表、操作数栈、动态链接、方法出口等信息。方法调用-->执行完成==入栈-->出栈
    • 本地方法区:和Java Stack作用类似,虚拟机栈为执行Java方法服务,而本地方法栈则为Native方法服务
  • 线程共享区域:随虚拟机的启动/关闭,而创建/销毁
    • JAVA堆:线程共享的内存区域,创建的对象和数组保存在堆内存中,是GC进行垃圾收集的最重要内存区域。VM采用分带收集算法,所以java堆还可以分为,新生代和老年代
    • 方法区:也称永久代,用于存储被JVM加载的类信息、常量、静态变量、即时编译器编译后的代码,使用Java堆的永久代来实现方法区。运行时常量池是方法区的一部分。

    • 5)JVM运行时内存(从GC角度&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值