Loading

摘要: 强引用 在 Java 中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即使该对象以后永远都不会被用到 JVM 也不会回收。因此强引用是造成 Java 内存泄漏的主要原因之一。 软引用 软引用需 阅读全文
posted @ 2021-12-01 20:21 Zhbeii 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 引用计数法 在 Java 中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,很显然一个简单的办法是通过引用计数来判断一个对象是否可以回收。简单说,即一个对象如果没有任何与之关联的引用,即他们的引用计数都不为 0,则说明对象不太可能再被用到,那么这个对象就是可回收对象。 可达性分析 ​ 阅读全文
posted @ 2021-12-01 20:13 Zhbeii 阅读(36) 评论(0) 推荐(0) 编辑
摘要: Java 堆从 GC 的角度还可以细分为: 新生代(Eden 区、From Survivor 区和 To Survivor 区)和老年代。 新生代 是用来存放新生的对象。一般占据堆的 1/3 空间。由于频繁创建对象,所以新生代会频繁触发MinorGC 进行垃圾回收。新生代又分为 Eden 区、Ser 阅读全文
posted @ 2021-12-01 19:36 Zhbeii 阅读(44) 评论(0) 推荐(0) 编辑
摘要: JVM 内存区域主要分为线程私有区域【程序计数器、虚拟机栈、本地方法区】、线程共享区域【JAVA 堆、方法区】、直接内存 线程私有区域 线程私有区域:生命周期与线程相同,随用户线程的 启动/结束 而 创建/销毁 。 (在 HotspotVM 内,每个线程都与操作系统的本地线程直接映射,因此这部分内存 阅读全文
posted @ 2021-12-01 15:30 Zhbeii 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 这里说的线程时程序执行过程中的一个线程实体,JVM允许一个应用并发执行多个线程。Hostspot JVM 中的Java线程与原生操作系统线程有直接映射的关系,当线程所需资源准备好了之后(线程本地存储、缓冲区分配、同步对象、栈、程序计数器等),就会创建一个操作系统原生线程,原生线程初始化完成后,就会调 阅读全文
posted @ 2021-12-01 14:30 Zhbeii 阅读(149) 评论(0) 推荐(0) 编辑
摘要: https://www.zhihu.com/question/27797637?sort=created 阅读全文
posted @ 2021-11-24 21:34 Zhbeii 阅读(20) 评论(0) 推荐(0) 编辑
摘要: https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/ 使用滑动窗口,max会一直更新结束之前的最长的长度, 在最初的时候每一次遇到一个键,都会添加到map,后面如果遇到重复的,就会把走过的相同 阅读全文
posted @ 2021-11-19 19:17 Zhbeii 阅读(26) 评论(0) 推荐(0) 编辑
摘要: https://blog.csdn.net/xyls12345/article/details/26256693 阅读全文
posted @ 2021-11-17 22:22 Zhbeii 阅读(7) 评论(0) 推荐(0) 编辑
摘要: https://leetcode-cn.com/problems/container-with-most-water/ 使用双指针 class Solution { public int maxArea(int[] height) { int i = 0, j = height.length - 1 阅读全文
posted @ 2021-11-14 13:06 Zhbeii 阅读(27) 评论(0) 推荐(0) 编辑
摘要: https://leetcode-cn.com/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/ 思路: int[][]的时候,二维数组.length返回的是数组的行数 把这个转化成图,搜索二叉树 class Solution { public boole 阅读全文
posted @ 2021-11-14 10:04 Zhbeii 阅读(11) 评论(0) 推荐(0) 编辑