Loading

摘要: 垃圾收集器 Serial ParNew Parallel Scavenge Serial Old Parallel Old CMS G1 收集区域 面向全堆 面向全堆 面向新生代 面向老年代 面向老年代 面向老年代 面向回收集 在新生代上 标记加复制 标记加复制 标记加复制 标记加整理 在老年代上 阅读全文
posted @ 2024-06-18 20:49 Duancf 阅读(54) 评论(0) 推荐(0)
摘要: 切片 切片底层 Slice(切片)代表变长的序列,序列中每个元素都有相同的类型。一个slice类型一般写作[]T,其中T代表slice中元素的类型;slice的语法和数组很像,只是没有固定长度而已。 数组和slice之间有着紧密的联系。一个slice是一个轻量级的数据结构,提供了访问数组子序列(或者 阅读全文
posted @ 2024-06-18 20:36 Duancf 阅读(64) 评论(0) 推荐(0)
摘要: 概述 上一章我们学习了Class文件存储格式的具体细节,在Class文件中描述的各类信息,最终都需要加载到虚拟机中之后才能被运行和使用。而虚拟机如何加载这些Class文件,Class文件中的信息进入到虚拟机后会发生什么变化,这些都是本章将要讲解的内容。 Java虚拟机把描述类的数据从Class文件加 阅读全文
posted @ 2024-06-18 20:16 Duancf 阅读(47) 评论(0) 推荐(0)
摘要: map是并发安全的吗? 首先我们写一段程序验证一下,创建两个goroutine,同时对一个map进行写操作,看看会发生什么吧! func main() { m := make(map[string]int) m["foo"] = 1 var wg sync.WaitGroup wg.Add(2) g 阅读全文
posted @ 2024-06-18 20:11 Duancf 阅读(39) 评论(0) 推荐(0)
摘要: 单例模式 因为之前研究Java比较多,所以当我试着使用go来实现一些设计模式的时候,首先想到的就是照搬Java中的思路,后面对go了解加深之后又增加了一些新的思路。 在Java中实现的单例模式的思路有很多,但是比较好的两个思路是利用类加载机制生成单例对象,check-lock-check机制避免并发 阅读全文
posted @ 2024-06-18 17:25 Duancf 阅读(38) 评论(0) 推荐(0)