首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Effective-Java
只因后端
创建于2023-04-25
订阅专栏
Effective-Java学习
等 4 人订阅
共89篇文章
创建于2023-04-25
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
86. 非常谨慎地实现 Serializable
86. 非常谨慎地实现 Serializable 使类的实例可序列化非常简单,只需实现 Serializable 接口即可。因为这很容易做到,所以有一个普遍的误解,认为序列化只需要程序员付出很少的
70. 对可恢复的情况使用受检异常,对编程错误使用运行时异常
70. 对可恢复的情况使用受检异常,对编程错误使用运行时异常 Java 程序设计语言提供了三种 throwable:受检异常(checked exceptions)、运行时异常(runtime e
31. 使用限定通配符来增加API的灵活性
31. 使用限定通配符来增加 API 的灵活性 如条目 28 所述,参数化类型是不变的。换句话说,对于任何两个不同类型的 Type1 和 Type,List<Type1> 既不是 List<Typ
27. 消除非检查警告
27. 消除非检查警告 使用泛型编程时,会看到许多编译器警告:未经检查的强制转换警告,未经检查的方法调用警告,未经检查的参数化可变长度类型警告以及未经检查的转换警告。 你使用泛型获得的经验越多,获
35. 使用实例属性替代序数
35. 使用实例属性替代序数 许多枚举通常与单个 int 值关联。所有枚举都有一个 ordinal 方法,它返回每个枚举常量类型的数值位置。你可能想从序数中派生一个关联的 int 值: 虽然这
30. 优先使用泛型方法
30. 优先使用泛型方法 正如类可以是泛型的,方法也可以是泛型的。 对参数化类型进行操作的静态工具方法通常都是泛型的。 集合中的所有“算法”方法(如 binarySearch 和 sort)都是泛
07. 消除过期的对象引用
7. 消除过期的对象引用 如果你从使用手动内存管理的语言(如 C 或 C++)切换到像 Java 这样的带有垃圾收集机制的语言,那么作为程序员的工作就会变得容易多了,因为你的对象在使用完毕以后就自
39. 注解优于命名模式
39. 注解优于命名模式 过去,通常使用命名模式(naming patterns)来指示某些程序元素需要通过工具或框架进行特殊处理。 例如,在第 4 版之前,JUnit 测试框架要求其用户通过以
23. 类层次结构优于标签类
23. 类层次结构优于标签类 有时你可能会碰到一个类,它的实例有两个或更多的风格,并且包含一个标签字段(tag field),表示实例的风格。 例如,考虑这个类,它可以表示一个圆形或矩形: 这
41. 使用标记接口定义类型
41. 使用标记接口定义类型 标记接口(marker interface),是不包含方法声明的接口,只是指定(或「标记」)一个类实现了具有某些属性的接口。 例如,考虑 Serializable 接
69. 只针对异常的情况下才使用异常
69. 只针对异常的情况下才使用异常 假如你某一天不走运的话,可能遇到如下代码: 这段代码有什用,看起来根本不明显,这正是它没有真正被使用的原因(详见 67 条)。事实证明,作为一个要对数组元
38. 使用接口模拟可扩展的枚举
38. 使用接口模拟可扩展的枚举 在几乎所有方面,枚举类型都优于本书第一版中描述的类型安全模式[Bloch01]。 从表面上看,一个例外涉及可扩展性,这在原始模式下是可能的,但不受语言结构支持。
51. 仔细设计方法签名
51. 仔细设计方法签名 这一条目是 API 设计提示的大杂烩,但它们本身并足以设立一个单独的条目。综合起来,这些设计提示将帮助你更容易地学习和使用 API,并且更不容易出错。 仔细选择方法名
57. 最小化局部变量的作用域
57. 最小化局部变量的作用域 这条目在性质上类似于条目 15,即“最小化类和成员的可访问性”。通过最小化局部变量的作用域,可以提高代码的可读性和可维护性,并降低出错的可能性。 较早的编程语言
16. 在公共类中使用访问方法而不是公共属性
16. 在公共类中使用访问方法而不是公共属性 有时候,你可能会试图写一些退化的类(degenerate classes),除了集中实例属性之外别无用处: 由于这些类的数据属性可以直接被访问,因
61. 基本数据类型优于包装类
61. 基本数据类型优于包装类 Java 有一个由两部分组成的类型系统,包括基本类型(如 int、double 和 boolean)和引用类型(如 String 和 List)。每个基本类型都有一
43. 方法引用优于lambda表达式
43. 方法引用优于 lambda 表达式 lambda 优于匿名类的主要优点是它更简洁。Java 提供了一种生成函数对象的方法,比 lambda 还要简洁,那就是:方法引用(method ref
11. 重写equals方法时同时也要重写hashcode方法
11. 重写 equals 方法时同时也要重写 hashcode 方法 在每个类中,在重写 equals 方法的时侯,一定要重写 hashcode 方法。 如果不这样做,你的类违反了 hashCo
75. 在细节消息中包含失败一捕获信息
75. 在细节消息中包含失败一捕获信息 当程序由于未被捕获的异常而失败的时’候,系统会自动地打印出该异常的堆栈轨迹。在堆栈轨迹中包含该异常的字符串表示法 (string representatio
65. 接口优于反射
65. 接口优于反射 核心反射机制 java.lang.reflect 提供对任意类的编程访问。给定一个 Class 对象,你可以获得 Constructor、Method 和 Field 实例,
下一页