Java JVM 运行机制及基本原理

原文链接

对自己学习的重点做一个笔记,方便回想

在这里插入图片描述

  1. class文件:由java编译器生成,来源->.java文件。
  2. 类加载子系统:classloader,负责向内存空间加载class文件的二进制信息。
  3. 内存空间:负责存储class文件的二进制信息。
    1. 栈:存储基本类型和对象的引用,超出作用域后会被JVM自动释放
    2. 堆:存储实例对象或数组
    3. 方法:类型信息、类静态变量、常量
    4. 本地方法栈:调用本地方法时使用,存储本地方法的局部变量表、本地方法的操作数栈等信息
  4. 程序计数器:为每条线程创建一个独立的程序计数器。(执行Java方法为JVM字节码指令地址,执行本地方法值为Underfined)【唯一一个在JVM规范中没有规定OOM的区域】
  5. 执行引擎:输入Java字节码、解析字节码、输出执行结果。
  6. 本地方法接口(JNI):提供若干API实现Java和其他语言的通信。(不需要时没用)
  7. JVM GC:回收堆和方法区域的对象。

    · 对象没有引用
    · 作用域发生未捕获异常
    · 程序在作用域正常执行完毕
    · 程序执行了System.exit()
    · 程序发生意外终止(被杀线程等)

== 和 equals():

new出来的对象用equals(),因为地址变了。
常量和基本类型用==,因为引用指向同一个对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值