- 博客(4)
- 收藏
- 关注
原创 Java泛型原理
T’ 并没有特殊的含义,它只是一个通用的类型参数名称,通常被用作表示泛型类型的占位符。在Java中,你可以使用任何有效的标识符作为类型参数名称,例如 ‘E’、‘K’、‘V’ 等,但 ‘T’ 是最常用的。是必须的,告诉编译器这个方法使用了类型参数,如果没有它 ,编译器将无法理解参数中‘T’的含义,也就无法进行类型检查和类型推断,导致错误。:使用类型参数可以在编译时指定泛型类型,这样编译器就可以检查类型安全性,并生成更加优化的代码。在上面的示例中,swap 方法是一个泛型方法,使用。
2023-09-15 22:57:23 49
原创 Java中,一个对象在什么情况下会被回收?
JVM维护一个被称为“GC Roots”的根对象集合,从这些根对象出发,根据引用关系向下查找它们引用的其它对象,再对这些查找到的引用对象进行同样操作,如此反复,最终形成一条引用链。在这个例子中,对象A引用对象B,对象B引用对象A,两个对象形成了引用闭环,即使它们已经完全不被程序里其它对象引用,即完全不被程序需要,因为它们的计数器不为0,也不能被垃圾回收。语句时,B被A引用,B是可以通过根对象的引用链达到的,即满足可达性,不能被垃圾回收。循环引用,即两个或多个对象相互引用,形成引用闭环。
2023-09-09 13:21:12 657 1
原创 内存分页中使用多级页表的原因
如果我们只在某个页被需要时才创建对应的页表项来建立映射,那么,这个页表所消耗的内存空间大小,按照上面的20%计算,只有0.8mb。例子:在 32 位的环境下,虚拟地址空间共有 4GB,假设一个页的大小是 4KB(2^12),那么就需要大约 100 万 (2^20) 个页,每个「页表项」需要 4 个字节大小来存储,那么整个 4GB 空间的映射就需要有。这样,因为局部性原理,重复命中率会大大提高。在上面的例子中,假如每个进程实际使用到的虚拟地址空间只有20%,那么,总共的内存资源浪费就达到了320MB。
2023-08-13 18:55:29 216 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人