打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
厉害了,Effective Java(中文第3版)终于有了

  

  私信小编“学习”无偿分享哦

  第1章 引言 1

  第2章 创建和销毁对象 4

  第1条:用静态工厂方法代替构造器 4

  第2条:遇到多个构造器参数时要考虑使用构建器 8

  第3条:用私有构造器或者枚举类型强化Singleton属性 13

  第4条:通过私有构造器强化不可实例化的能力 15

  第5条:优先考虑依赖注入来引用资源 16

  第6条:避免创建不必要的对象 18

  第7条:消除过期的对象引用 20

  第8条:避免使用终结方法和清除方法 23

  第9条:try-with-resources优先于try-finally 27

  第3章 对于所有对象都通用的方法 30

  第10条:覆盖equals时请遵守通用约定 30

  第11条:覆盖equals时总要覆盖hashCode 40

  第12条:始终要覆盖toString 44

  第13条:谨慎地覆盖clone 46

  第14条:考虑实现Comparable接口 53

  第4章 类和接口 59

  第15条:使类和成员的可访问性小化 59

  第16条:要在公有类而非公有域中使用访问方法 62

  第17条:使可变性小化 64

  第18条:复合优先于继承 70

  第19条:要么设计继承并提供文档说明,要么禁止继承 75

  第20条:接口优于抽象类 79

  第21条:为后代设计接口 83

  第22条:接口只用于定义类型 85

  第23条:类层次优于标签类 86

  第24条:静态成员类优于非静态成员类 88

  第25条:限制源文件为单个类 91

  第5章 泛型 93

  第26条:请不要使用原生态类型 93

  第27条:消除非受检的警告 97

  第28条:列表优于数组 99

  第29条:优先考虑泛型 102

  第30条:优先考虑泛型方法 106

  第31条:利用有限制通配符来提升API的灵活性 109

  第32条:谨慎并用泛型和可变参数 114

  第33条:优先考虑类型安全的异构容器 118

  第6章 全日制枚举和注解 123

  第34条:用enum代替int常量 123

  第35条:用实例域代替序数 131

  第36条:用EnumSet代替位域 132

  第37条:用EnumMap代替序数索引 134

  第38条:用接口模拟可扩展的枚举 138

  第39条:注解优先于命名模式 140

  第40条:坚持使用Override注解 147

  第41条:用标记接口定义类型 149

  第7章 Lambda和Stream 151

  第42条:Lambda优先于匿名类 151

  第43条:方法引用优先于Lambda 154

  第44条:坚持使用标准的函数接口 156

  第45条:谨慎使用Stream 159

  第46条:优先选择Stream中无副作用的函数 164

  第47条:Stream要优先用Collection作为返回类型 168

  第48条:谨慎使用Stream并行 172

  第8章 方法 176

  第49条:检查参数的有效性 176

  第50条:必要时进行保护性拷贝 179

  第51条:谨慎设计方法签名 182

  第52条:慎用重载 184

  第53条:慎用可变参数 189

  第54条:返回零长度的数组或者集合,而不是null 190

  第55条:谨慎返回optinal 192

  第56条:为所有导出的API元素编写文档注释 196

  第9章 通用编程 202

  第57条:将局部变量的作用域小化 202

  第58条:for-each循环优先于传统的for循环 204

  第59条:了解和使用类库 207

  第60条:如果需要精确的答案,请避免使用float和double 209

  第61条:基本类型优先于装箱基本类型 211

  第62条:如果其他类型更适合,则尽量避免使用字符串 213

  第63条:了解字符串连接的性能 215

  第64条:通过接口引用对象 216

  第65条:接口优先于反射机制 218

  第66条:谨慎地使用本地方法 220

  第67条:谨慎地进行优化 221

  第68条:遵守普遍接受的命名惯例 223

  第10章 异常 227

  第69条:只针对异常的情况才使用异常 227

  第70条:对可恢复的情况使用受检异常,对编程错误使用运行时异常 229

  第71条:避免不必要地使用受检异常 231

  第72条:优先使用标准的异常 232

  第73条:抛出与抽象对应的异常 234

  第74条:每个方法抛出的所有异常都要建立文档 235

  第75条:在细节消息中包含失败-捕获信息 237

  第76条:努力使失败保持原子性 238

  第77条:不要忽略异常 239

  第11章 并发 241

  第78条:同步访问共享的可变数据 241

  第79条:避免过度同步 245

  第80条:executor、task和stream优先于线程 250

  第81条:并发工具优先于wait和notify 251

  第82条:线程安全性的文档化 256

  第83条:慎用延迟初始化 258

  第84条:不要依赖于线程调度器 261

  第12章 序列化 263

  第85条:其他方法优先于Java序列化 263

  第86条:谨慎地实现Serializable接口 266

  第87条:考虑使用自定义的序列化形式 269

  第88条:保护性地编写readObject方法 274

  第89条:对于实例控制,枚举类型优先于readResolve 279

  第90条:考虑用序列化代理代替序列化实例 282

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
20151024
Java中的Lambda表达式
Java9中2个被废弃的使用方法
编写高质量代码改善C#程序的157个建议
【Java】基础50:如何让写的代码像诗一样优雅?
关于Java8的精心总结 前言
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服