![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 90
JVM
Cafebaby_
这个作者很懒,什么都没留下…
展开
-
2.1虚拟机类加载机制
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-83uFJDQw-1686638190412)(C:\Users\10059\AppData\Roaming\Typora\typora-user-images\image-20220321190306773.png)]一个类加载器接收到了一个类的加载请求时,它不会尝试加载这个类而是向上委派父加载器去加载,如果父类加载器没法加载才会自己加载。每一个层次的加载器都是这样,这也是为什么一个类要加载会先去加载它的父类。原创 2023-06-13 14:36:44 · 27 阅读 · 0 评论 -
1.4虚拟机性能监控和故障处理工具
参数:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zOGyfxqM-1686638171273)(C:\Users\10059\AppData\Roaming\Typora\typora-user-images\image-20220314144618999.png)]概念:jstat命令用于统计或者监视虚拟机进程运行时的信息数据,包括类加载、内存、垃圾回收、即时编译等数据。概念:jps命令可以列出主机上所有的虚拟机进程,包括LVMID。原创 2023-06-13 14:37:55 · 46 阅读 · 0 评论 -
1.3内存分配策略和垃圾回收器
程序计数器、虚拟机栈、本地方法栈随着线程而生随着线程而亡,占用内存大小在编译期间就确定好了,因此不需要去考虑回收问题,当方法结束或者线程死亡这部分内存也随之回收掉。堆,方法区需要进行垃圾回收。原创 2023-06-09 09:28:11 · 29 阅读 · 0 评论 -
1.2HotSpot虚拟机对象
轻量级锁认为竞争存在,但是竞争的程度很轻,一般两个线程对于同一个锁的操作都会错开,或者说稍微等待一下(自旋),另一个线程就会释放锁。但是当自旋超过一定的次数,或者一个线程在持有锁,一个在自旋,又有第三个来访时,轻量级锁膨胀为重量级锁,重量级锁使除了拥有锁的线程以外的线程都阻塞,防止CPU空转。,然后重新偏向新的线程,如果原来的线程依然存活,则马上执行那个线程的操作栈,检查该对象的使用情况,如果仍然需要持有偏向锁,则偏向锁升级为轻量级锁,(线程来访问它的时候,它会偏向这个线程,此时,对象持有偏向锁。原创 2023-06-09 09:26:30 · 21 阅读 · 0 评论 -
1.1运行时数据区
①方法正常返回②遇到异常结束,那么会看当前栈帧是否处理,如果没法处理则会抛给上一层栈帧,看它是否处理,如果仍然不处理则继续往上抛。定义:每一个java进程创建时都会创建一JVM,一个JVM一个方法区(之前叫永久代)。特点 :不会有GC问题,但会有OOM问题(和虚拟机栈一样,在创建或者扩展失败时,就会报OOM)方法里会调用其它方法,此时就会有新的栈帧入栈成为当前栈帧。定义:每一个线程被创建后时都会创建一个虚拟机栈,内部保存着一个个栈帧,对应一个个方法调用。包括局部变量表,操作数栈,动态链接,方法返回地址。原创 2023-06-09 09:24:16 · 18 阅读 · 0 评论