示例: /* 空指针异常(NullPointerException) 关于垃圾回收器:GC 在java语言中,垃圾回收器主要针对的是堆内存。 当一个java对象没有任何“引用”指向该对象的时候,GC会考虑将该垃圾数据释放回收掉。 出现空指针异常的前提条件是? “空引用”访问实例【相关对象】相关的数据 ...
分类:
其他好文 时间:
2020-06-06 00:57:40
阅读次数:
79
对象的内存布局 在 HotSpot 虚拟机中,对象的内存布局分为以下 3 块区域: 对象头(Header) 实例数据(Instance Data) 对齐填充(Padding) 对象头 对象头记录了对象在运行过程中所需要使用的一些数据: 哈希码 GC 分代年龄 锁状态标志 线程持有的锁 偏向线程 ID ...
分类:
其他好文 时间:
2020-06-06 00:56:24
阅读次数:
62
一、背景 一般意义上而言,Java/Android中的引用类型包括强引用、软引用、弱引用、虚引用。不同的引用类型具有各自适用的应用场景,并与JVM的GC直接相关。 作为Java/Android中的引用类型之一,WeakReference被大量的使用到系统源码、基础工具甚至具体的业务逻辑中。在解决需要 ...
分类:
移动开发 时间:
2020-05-31 21:54:36
阅读次数:
110
GC 几个算法 标记 - 清理 会产生内存碎片 标记 - 整理 : 清除一个地方的内容,后面的内容自动补上 缺点: 代价太大了 复制算法: 将整个内存一分为二,分别记为1区2区。 当一个区快满的时候,把还没有被标记的内容复制到另外一个区,被标记的代表要删除的,就不用复制了。然后把当前区的内容全部清除 ...
分类:
其他好文 时间:
2020-05-31 20:11:39
阅读次数:
91
GC垃圾回收 JVM大部分时候回收的都是新生代(伊甸区+幸存0区+幸存1区)。按照回收的区域可以分成两种类型:Minor GC和Full GC(MajorGC)。 Minor GC:只针对新生代区域的GC,大多数Java对象的存活率都不高,Minor GC非常频繁,回收速度快。 Full GC:发生 ...
分类:
编程语言 时间:
2020-05-31 11:03:11
阅读次数:
74
JVM 深入理解JVM(2)——GC算法与内存分配策略 Posted by Crow on August 10, 2017 说起垃圾收集(Garbage Collection, GC),想必大家都不陌生,它是JVM实现里非常重要的一环,JVM成熟的内存动态分配与回收技术使Java(当然还有其他运行在 ...
分类:
编程语言 时间:
2020-05-30 22:00:10
阅读次数:
71
JVM 深入理解JVM(4)——如何优化Java GC「译」 Posted by Crow on August 21, 2017 本文翻译自Sangmin Lee发表在Cubrid上的”Become a Java GC Expert”系列文章的第三篇《How to Tune Java Garbage ...
分类:
编程语言 时间:
2020-05-30 21:34:51
阅读次数:
88
一.堆和栈 1.栈 栈的空间相对较小,由系统进行空间的分配和回收工作。栈的读取效率较高 2.堆 堆的空间相对较大,就像一个大仓库。由垃圾回收器(GC)进行空间回收工作。堆的访问效率相对较低。 二.数据类型 总的可以分为两大类: 基本类型和引用类型 基本类型包括: 整数型 Long :64位的整型数据 ...
分类:
编程语言 时间:
2020-05-29 23:37:19
阅读次数:
129
前言 对于Java开发人员来说,了解垃圾回收机制(GC)有哪些好处呢?首先可以满足作为一名软件工程师的求知欲,其次,深入了解GC如何工作可以帮你写出更好的Java应用。 这仅仅代表我个人的意见,但我坚信一个精通GC的人往往是一个好的Java开发者。如果你对GC的处理过程感兴趣,说明你已经具备较大规模 ...
分类:
其他好文 时间:
2020-05-29 21:40:14
阅读次数:
95
(jvisualvm.exe) 可以打开 visual vm,然后在 工具 --> 插件 --> 可用插件里面下载 (有时刷不出来,将设置代理点一下,点击不设置代理,再刷一下) 实在不行,就只能拿这个出错的链接自己想办法去下载了。下载了之后:工具 --> 插件 --> 已下载 进行离线安装 参考:h ...
分类:
其他好文 时间:
2020-05-27 18:27:04
阅读次数:
324