![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
文章平均质量分 93
yarnecn
这个作者很懒,什么都没留下…
展开
-
多线程会遇到什么问题?
文章目录为什么多线程会出现各种各样的问题?线程执行单核CPU执行造成的问题gon多核CPU执行造成的问题JMM什么是JMM造成的问题重排序重排序遵守的规则Happens-beforeas-if-serial各种级别的重排序编译器级别的重排序处理器指令级别的重排序处理器内存级别的重排序造成的问题如何解决这些问题?总结接着上篇文章,了解了一些线程的基本知识,知道了如何去使用线程,那么在多线程的环境下,我们会遇到什么问题呢?经常能遇到的JMM是啥?多线程的三大特性是啥,跟我们平时的使用有什么关系?为什么多线程原创 2021-08-29 23:12:18 · 908 阅读 · 0 评论 -
几个jvm问题场景
文章目录OOM死循环内存泄漏堆内存小StackOverflowErrorCPU占用过高总结之前介绍过一些关于jvm的一些知识,包括内存结构,垃圾回收算法,垃圾回收器,这次主要是模拟一些问题场景,通过一些问题场景的分析,可以对这几部分的理解更加深刻。而且顺带可以简单的介绍一些jvm调试的命令,以及运行参数,方便我们去排查问题。OOMoom翻译过来是Out Of Memory,也就是内存溢出,Java中的报错是java.lang.OutOfMemoryError,这个应该是我们比较常见的一个问题场景了,我原创 2021-08-08 20:56:45 · 246 阅读 · 0 评论 -
简述垃圾收集器
文章目录Stop The World各种收集器介绍Serial GC必知必会ParNew GC必知必会Parallel GC必知必会CMS GC必知必会G1 GC必知必会ZGC如何选择?总结之前介绍过jvm中的垃圾算法,算法只是我们将无效对象回收的一种方式,最终将这些算法运用起来的,是垃圾收集器,随着java应用的业务场景越来越多,java在不停的版本迭代过程中,推出了很多中垃圾收集器,来应对不同的业务以及服务场景。Stop The World在介绍GC收集器之前,先介绍一个在了解GC回收过程中必要的原创 2021-08-01 23:11:28 · 133 阅读 · 0 评论 -
jvm垃圾回收算法
文章目录引入判断对象可用算法java引用类型强引用软引用弱引用虚引用判断可用算法引用标记法可达性判断算法垃圾回收算法标记清除标记整理标记复制分带假设年轻代老年代小结总结上次在jvm内存结构介绍的时候有说过,在堆空间,分为老年代和新生代,新生代又分为Eden space,survive From,Survive to这三部分,那垃圾对象是如何在新生代和老年代进行清理的呢?引入我们知道,堆内存的空间是固定的,可以将内存空间理解为一个定长的数组,每次新建对象的时候,都会根据对象的大小,在数组中,按顺序选取一原创 2021-07-26 09:55:39 · 126 阅读 · 0 评论 -
Java类加载器(ClassLoader)
文章目录类的生命周期初始化时机不会被初始化的情况类加载器的分类启动类加载器(BootstrapClassLoader)扩展类加载器(ExtClassLoader)扩展类自定义加载的几种方式应用类加载器(AppClassLoader)自定义类加载器类加载器的特性双亲委派spi机制对双亲委派的破坏ps: 反射中Class.forName和ClassLoader的区别总结Java类加载器是jvm运行时环境的一个部件,负责将类动态的加载到虚拟机的内存中,类通常是按需加载,由于有了类加载器,Java运行时不需要知原创 2021-07-12 01:08:17 · 420 阅读 · 0 评论 -
Java字节码(Java bytecode)
java字节码,就是jvm执行的一种指令格式.jvm通过字节码指令,做相对应的动作字节码查看(助记符->二进制).class文件本身是二进制文件,我们可以以两种方式查看,一种就是直接看它的二进制内容,但是不方便查看和理解,还有一种是看它经过javap转成助记符模式的内容,方便我们理解二进制查看方式二进制文件查看器因为电脑中的二进制文件,一般文本编辑器在打开的同时会给做一些转义,这里推荐使用比如winhex这种软件查看,便于理解助记符查看javap使用javac命...原创 2021-07-05 09:46:44 · 3732 阅读 · 1 评论