Java核心36讲
亦难猿
flag:在技术的道路上越苟越远!
展开
-
强引用、软引用、弱引用、幻象引用有什么区别?
在java语言中,除了原始数据类型的变量,其他所有都是所谓的引用类型,指向各种不同的对象。 不同的引用类型,主要体现的是对象的不同的可达性(reachable)状态和对垃圾收集的影响。 如今的Java平台,开始采用java.lang.ref.Cleaner 代替finalize.Cleaner 的实现使用了幻象引用。这是一种常见的post-mortem清理机制。这个Cleaner 的操作...原创 2019-02-15 15:37:22 · 493 阅读 · 0 评论 -
String、StringBuffer、StringBuilder有什么区别?
String 是 Java 语言非常基础和重要的类,提供了构造和管理字符串的各种基本逻辑。它是典型的 Immutable(不可变) 类,被声明成为 final class,所有属性也都是 final 的。也由于它的不可变性,类似拼接、裁剪字符串等动作,都会产生新的 String 对象。由于字符串操作的普遍性,所以相关操作的效率往往对应用性能有明显影响。 StringBuffer 是为解决上...转载 2019-02-18 10:32:28 · 199 阅读 · 0 评论 -
谈谈final、finally、 finalize有什么不同?
1. final; 修饰类:不可被继承 修饰方法:不可重写; 修饰变量:不可修改,只能约束引用不可以被再次赋值。匿名内部类访问局部变量时需要使用 final,因为 Innerclass 实际会 copy 一份局部变量,final 可以防止出现数据一致性问题(但是final有很多方法可以绕过去比如: Field field = util.getClass().getDeclaredF...原创 2019-02-14 15:18:17 · 211 阅读 · 0 评论