摘要: 一 ArrayList 内部通过数组实现,允许对元素进行快速随机访问。数组大小不满足时需要增加存储能力,就要将数据复制到新的存储空间中。插入或删除时,需要对数组进行移动复制,代价较高。因此,适合查找和遍历,不适合插入和删除。ArrayList是线程不安全的。当容量不够时,ArrayList当前容量* 阅读全文
posted @ 2020-08-18 17:32 182 阅读(67) 评论(0) 推荐(0)
摘要: (1)Serial垃圾收集器(单线程、复制算法) 使用一个CPU和一条线程去完成垃圾收集工作。收集期间其他线程暂停。当前,一般运行在clint端。 (2)ParNew垃圾收集器(Serial + 多线程) Serial收集器的多线程版本。也使用复制算法。收集期间其他线程暂停。 默认开启与CPU一样多 阅读全文
posted @ 2020-08-18 15:32 182 阅读(77) 评论(0) 推荐(0)
摘要: (一) 强引用 Java强引用最常见,就是把一个对象赋给一个引用变量,这个引用变量就是强引用,但一个对象被强引用时,它处于可达状态,不会被垃圾回收装置回收,因此强引用是造成内存泄漏的主要原因之一。 String s=new String("ABC"); (2)软引用 软引用需要SoftReferen 阅读全文
posted @ 2020-08-18 14:35 182 阅读(207) 评论(0) 推荐(0)
摘要: 1 如何确定垃圾 (1)引用计数法:一个对象没有任何有关联的引用,则这个对象就是可回收对象。 (2)可达性分析:为了解决引用计数法的循环引用问题,GC roots和对象之间没有可达路径,则该对象是不可达的。经过两次标记如果都是可回收对象,则进行回收。 2 垃圾回收算法 (1)标记清除算法:分为标记和 阅读全文
posted @ 2020-08-18 14:10 182 阅读(85) 评论(0) 推荐(0)