垃圾回收器帮我们处理了内存中不在使用的对象,提高了机器的性能,让开发人员轻松了很多。 你真的了解垃圾回收吗? 或许你知道垃圾回收,听说过是通过标记回收,可是怎么标记回收呢就不是很清楚了,好吧,如果不清楚就继续往下看。如果你是大神对这块了如执掌,请直接跳过,欢迎来提不同的意见。 1、我们先来聊一下内存 ...
分类:
其他好文 时间:
2020-04-15 21:34:29
阅读次数:
70
垃圾回收器的发展历程 背景 01、G1解决的问题 G1垃圾回收器是04年正式提出,12开始正式支持,在17年作为JDK9默认的垃圾处理器。 在04年的时候,java程序堆的内存越来越大,从而导致程序中可存活的活对象越来越多,因此GC的STW时间越来越长。这是G1要解决的主要问题:STW带来的停顿时间 ...
分类:
其他好文 时间:
2020-04-11 09:26:48
阅读次数:
81
WeakHashMap的键是弱键。在 WeakHashMap 中,当某个键不再正常使用时,会被从WeakHashMap中被自动移除。更精确地说,对于一个给定的键,其映射的存在并不阻止垃圾回收器对该键的丢弃,这就使该键成为可终止的,被终止,然后被回收。某个键被终止时,它对应的键值对也就从映射中有效地移... ...
分类:
其他好文 时间:
2020-04-02 10:28:34
阅读次数:
62
JVM 静态内部类会被编译成几个class?为什么内部类可以访问外部类的private的方法? 1 内部类对象的创建依赖于外部类对象; 2 内部类对象持有指向外部类对象的引用。 linkedhashmap实现LRU 内存泄漏例子 OOM的原因及排查方法 https://blog.csdn.net/l ...
分类:
其他好文 时间:
2020-04-01 00:59:12
阅读次数:
90
主要针对Java堆和方法区1、判断对象是否已“死”Java堆中存放着几乎所有的对象实例,垃圾回收器在对堆进行回收之前,首先应该判断这些对象哪些还“存活”,哪些已经“死亡”。(1)引用计数法A.?工作流程 给每个对象附加一个计数器,每当有一个地方引用此对象。计数器+1;每当有一个地方不再引用此对象,计 ...
分类:
其他好文 时间:
2020-03-30 21:39:44
阅读次数:
88
带着问题去思考!大家好 上次我们讲到GC的一些基础知识,感谢评论的大佬给我指点。 配置参数 关于配置垃圾回收器的方法不是很多,所以建议不要随意去动,垃圾回收器的配置以及调优,很大程度上由硬件配置,可用资源和程序的行为决定。屈指可数的几个参数也是用于控制很高层的行为,主要取决于程序的类型, 工作站模式 ...
分类:
其他好文 时间:
2020-03-26 01:31:16
阅读次数:
70
1、强引用只要引用存在,垃圾回收器永远不会回收 如 obj.equels(new Object()); 而这样 obj 对象对后面 new Object 的一个强 引用,只有当 obj 这个引用被释放之后,对象才会被释放掉,这也是我们经常所用到的编码形式。 2、软引用 非必须引用,内存溢出之前进行回 ...
分类:
其他好文 时间:
2020-03-25 23:28:01
阅读次数:
95
七种作用于不同分代的收集器,如果两个收集器之间存在连线,就说明它们可以搭配使用,图中收集器所处的区域,则表示它是属于新生代收集器抑或是老年代收集器。 并行(Parallel):并行描述的是多条垃圾收集器线程之间的关系,说明同一时间有多条这样的线程在协同工作,通常默认此时用户线程是处于等待状态。 并发 ...
分类:
其他好文 时间:
2020-03-25 01:31:35
阅读次数:
74
初面 1、JVM的垃圾回收器有哪些? Serial、Parallel、CMS、G1 2、MyBatis 中 # 和 $ 的区别? # 预编译后生成占位符,$ 类似于字符串拼接;# 比较安全,$ 容易造成 SQL 注入 3、什么是 SQL 注入?(我给忘了) sql注入是一种将sql代码添加到输入参数 ...
分类:
编程语言 时间:
2020-03-18 23:51:44
阅读次数:
185
JVM | 垃圾回收Java垃圾回收的概念垃圾回收器安全点和安全区域 Java垃圾回收的概念如何判断哪些是垃圾对象,引用计数法,根搜索算法哪些是GC RootsJVM栈中的引用方法区静态变量的引用JNI(即native方法)中的引用方法区(永久代)会发生GC吗,会回收哪些对象?方法区的垃圾回收主要回... ...
分类:
其他好文 时间:
2020-03-12 09:20:50
阅读次数:
72