首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
JVM
订阅
蜜汁微笑
更多收藏集
微信扫码分享
微信
新浪微博
QQ
9篇文章 · 0订阅
JVM指令分析实例二(算术运算、常量池、控制结构)
相关实例均使用Oracle JDK 1.8编译,并使用javap生成字节码指令清单。 Java虚拟机通常基于操作数栈进行算术运算。只有iinc指令例外,它直接对局部变量进行自增操作。 以上指令,并没有出现取反的指令操作。因为JVM并没有提供取反指令,而是使用异或指令来实现取反。…
技术问答集锦(十)JVM结构与机制
动态类型语言:指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。 静态类型语言:静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程…
深入理解JVM(一)JVM内存模型
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,总共包括以下几个运行时数据区域。 1.1. 可以看做是当前线程所执行的字节码的信号指示器。字节码解释器就是通过改变该计数器的值来选取下一条需要执行的字节码指令, 分支、循环、跳转、异常处理、线…
深入理解JVM(三)垃圾收集器与内存分配策略
判断对象是否已死有两种方法,一种是引用计数法,另一种是可达性分析算法。 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器就减一;任何时刻为0的对象就是不肯再被使用的。 通过一系列的称为“GC Roots”的对象作为起始点,从这些节点开始向…
Java应用异常状态监测
老板最近分派了一个任务,说线上客户在部署应用的时候发生了系统级别的OOM,触发了OOM Killer杀掉了应用,让我们解决这个问题。 对于这个任务,我从如下几点开始调研、分析与解决。 当创建进程时,进程都会建立起自己的虚拟地址空间(对于32位系统来说为4g)。这些虚拟地址空间并…
面试必问之JVM原理
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 J…
轻松看懂Java字节码
计算机只认识0和1。这意味着任何语言编写的程序最终都需要经过编译器编译成机器码才能被计算机执行。所以,我们所编写的程序在不同的平台上运行前都要经过重新编译才能被执行。 而Java刚诞生的时候曾经提过一个非常著名的宣传口号: "一次编写,到处运行"。 为了实现该目的,Sun公司以…
深入理解JVM(二)HotSpot虚拟机对象探秘
1.2对象所需内存的大小在类加载完成后便可以完全确定。为对象分配空间的任务等同于把一块确定大小的内存从Java堆中划分出来。从堆中划分一块对应大小的内存空间给新的对象;分配堆中内存有两种方式: 假设Java堆中内存是绝对完整的,所有用过的内存都放到一边,空闲的内存放到另一边,中…
深入理解JVM(四)类加载的时机
虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化。最终形成可以被虚拟机最直接使用的java类型的过程就是虚拟机的类加载机制。 这四条字节码指令时,如果类没有进行过初始化,则必须先触发其初始化。最常见的生成这 4 条指令的场景是:使用 new 修…