ApacheCN Java 译文集 20211012 更新
- Effective Java 中文第三版
- 1. 考虑使用静态工厂方法替代构造方法
- 2. 当构造方法参数过多时使用 builder 模式
- 3. 使用私有构造方法或枚类实现 Singleton 属性
- 4. 使用私有构造器执行非实例化
- 5. 依赖注入优于硬连接资源(hardwiring resources)
- 6. 避免创建不必要的对象
- 7. 消除过期的对象引用
- 8. 避免使用 Finalizer 和 Cleaner 机制
- 9. 使用 try-with-resources 语句替代 try-finally 语句
- 10. 重写 equals 方法时遵守通用约定
- 11. 重写 equals 方法时同时也要重写 hashcode 方法
- 12. 始终重写 toString 方法
- 13. 谨慎地重写 clone 方法
- 14. 考虑实现 Comparable 接口
- 15. 使类和成员的可访问性最小化
- 16. 在公共类中使用访问方法而不是公共属性
- 17. 最小化可变性
- 18. 组合优于继承
- 19. 要么设计继承并提供文档说明,要么禁用继承
- 20. 接口优于抽象类
- 21. 为后代设计接口
- 22. 接口仅用来定义类型
- 23. 类层次结构优于标签类
- 24. 支持使用静态成员类而不是非静态类
- 25. 将源文件限制为单个顶级类
- 26. 不要使用原始类型
- 27. 消除非检查警告
- 28. 列表优于数组
- 29. 优先考虑泛型
- 30. 优先使用泛型方法
- 31. 使用限定通配符来增加 API 的灵活性
- 32. 合理地结合泛型和可变参数
- 33. 优先考虑类型安全的异构容器
- 34. 使用枚举类型替代整型常量
- 35. 使用实例属性替代序数
- 36. 使用 EnumSet 替代位属性
- 37. 使用 EnumMap 替代序数索引
- 38. 使用接口模拟可扩展的枚举
- 39. 注解优于命名模式
- 40. 始终使用 Override 注解
- 41. 使用标记接口定义类型
- 42. lambda 表达式优于匿名类
- 43. 方法引用优于 lambda 表达式
- 44. 优先使用标准的函数式接口
- 45. 明智审慎地使用 Stream
- 46. 优先考虑流中无副作用的函数
- 47. 优先使用 Collection 而不是 Stream 来作为方法的返回类型
- 48. 谨慎使用流并行
- 49. 检查参数有效性
- 50. 必要时进行防御性拷贝
- 51. 仔细设计方法签名
- 52. 明智审慎地使用重载
- 53. 明智审慎地使用可变参数
- 54. 返回空的数组或集合,不要返回 null
- 55. 明智审慎地返回 Optional
- 56. 为所有已公开的 API 元素编写文档注释
- 57. 最小化局部变量的作用域
- 58. for-each 循环优于传统 for 循环
- 59. 了解并使用库
- 60. 若需要精确答案就应避免使用 float 和 double 类型
- 61. 基本数据类型优于包装类
- 62. 当使用其他类型更合适时应避免使用字符串
- 63. 当心字符串连接引起的性能问题
- 64. 通过接口引用对象
- 65. 接口优于反射
- 66. 明智审慎地本地方法
- 67. 明智审慎地进行优化
- 68. 遵守被广泛认可的命名约定
- 69. 只针对异常的情况下才使用异常
- 70. 对可恢复的情况使用受检异常,对编程错误使用运行时异常
- 71. 避免不必要的使用受检异常
- 72. 优先使用标准的异常
- 73. 抛出与抽象对应的异常
- 74. 每个方法抛出的异常都需要创建文档
- 75. 在细节消息中包含失败一捕获信息
- 76. 保持失败原子性
- 77. 不要忽略异常
- 78. 同步访问共享的可变数据
- 79. 避免过度同步
- 80. executor 、task 和 stream 优先于线程
- 81. 并发工具优于 wait 和 notify
- 82. 文档应包含线程安全属性
- 83. 明智审慎的使用延迟初始化
- 84. 不要依赖线程调度器
- 85. 优先选择 Java 序列化的替代方案
- 86. 非常谨慎地实现 Serializable
- 87. 考虑使用自定义的序列化形式
- 88. 保护性的编写 readObject 方法
- 89. 对于实例控制,枚举类型优于 readResolve
- 90. 考虑用序列化代理代替序列化实例
- Thinking in Java (Java 编程思想)
- Java 8 简明教程
- Java 设计模式最佳实践
- Java 编程问题
- Java 项目大全
- Java 12 编程学习手册
- 精通 Java 11
- Java 自动化测试初学者实用指南
- Java9 高性能应用
- Java11 秘籍
- 精通 JUnit5 软件测试
- Java 测试驱动开发
- Java 云原生应用
- Java 代码面试完全指南
- Java 基础知识
- JavaFX 基础知识
- Java 编程入门
- Java7 并发秘籍
- Java9 和 JShell
- 面向初学者的 Java 编程
- 精通 Java8 并发编程
- Java7 新特性秘籍
- Java9 编程蓝图
- Java SE7 编程学习指南
- Java Lambda 学习指南
- Java 网络编程学习指南
- Java8 反应式编程学习指南
下载
Docker
docker pull apachecn0/apachecn-java-zh
docker run -tid -p <port>:80 apachecn0/apachecn-java-zh
# 访问 http://localhost:{port}
PYPI
pip install apachecn-java-zh
apachecn-java-zh <port>
# 访问 http://localhost:{port}
NPM
npm install -g apachecn-java-zh
apachecn-java-zh <port>
# 访问 http://localhost:{port}
贡献指南
本项目需要校对,欢迎大家提交 Pull Request。
请您勇敢地去翻译和改进翻译。虽然我们追求卓越,但我们并不要求您做到十全十美,因此请不要担心因为翻译上犯错——在大部分情况下,我们的服务器已经记录所有的翻译,因此您不必担心会因为您的失误遭到无法挽回的破坏。(改编自维基百科)
组织介绍
赞助我们
通过平台自带的打赏功能,或点击这里。
ApacheCN Java 译文集 20211012 更新的更多相关文章
- ApacheCN Java 译文集 20210921 更新
新增了五个教程: Java 设计模式最佳实践 零.前言 一.从面向对象到函数式编程 二.创建型模式 三.行为模式 四.结构模式 五.函数式模式 六.让我们开始反应式吧 七.反应式设计模式 八.应用架构 ...
- ApacheCN 数据库译文集 20211112 更新
创建你的 Mysql 数据库 零.前言 一.介绍 MySQL 设计 二.数据采集 三.数据命名 四.数据分组 五.数据结构调整 六.补充案例研究 Redis 学习手册 零.序言 一.NoSQL 简介 ...
- ApacheCN Linux 译文集 20211129 更新
笨办法学 Linux 中文版 练习 0:起步 练习 1:文本编辑器,vim 练习 2:文本浏览器,少即是多 练习 3:Bash:Shell..profile..bashrc..bash_history ...
- ApacheCN React 译文集 20211118 更新
React 入门手册 零.前言 一.React 和 UI 设计简介 二.创建组件 三.管理用户交互 React 全栈项目 零.前言 一.使用 MERN 释放 React 应用 二.准备开发环境 三.使 ...
- ApacheCN 计算机视觉译文集 20211110 更新
OpenCV3 和 Qt5 计算机视觉 零.前言 一.OpenCV 和 Qt 简介 二.创建我们的第一个 Qt 和 OpenCV 项目 三.创建一个全面的 Qt + OpenCV 项目 四.Mat和Q ...
- ApacheCN Python 译文集 20211108 更新
Think Python 中文第二版 第一章 编程之路 第二章 变量,表达式,语句 第三章 函数 第四章 案例学习:交互设计 第五章 条件循环 第六章 有返回值的函数 第七章 迭代 第八章 字符串 第 ...
- ApacheCN PHP 译文集 20211101 更新
PHP 入门指南 零.序言 一.PHP 入门 二.数组和循环 三.函数和类 四.数据操作 五.构建 PHP Web 应用 六.搭建 PHP 框架 七.认证与用户管理 八.建立联系人管理系统 使用 PH ...
- ApacheCN JavaWeb 译文集 20211017 更新
使用 Spring5 构建 REST Web 服务 零.前言 一.一些基本知识 二.在 Spring5 中使用 Maven 构建 RESTfulWeb 服务 三.Spring 中的 Flux 和 Mo ...
- ApacheCN 网络安全译文集 20211025 更新
Android 渗透测试学习手册 中文版 第一章 Android 安全入门 第二章 准备实验环境 第三章 Android 应用的逆向和审计 第四章 对 Android 设备进行流量分析 第五章 And ...
随机推荐
- misc之压缩文件处理
misc之压缩文件处理 一.预备知识 1.头文件名代码 二.实验环境 1.winhex 三.题目来源 攻防世界杂项:János-the-Ripper.再见李华 实验一 打开题目文件是一个压 ...
- 玩转 ByteBuffer
为什么要讲 Buffer 首先为什么一个小小的 Buffer 我们需要单独拎出来聊?或者说,Buffer 具体是在哪些地方被用到的呢? 例如,我们从磁盘上读取一个文件,并不是直接就从磁盘加载到内存中, ...
- RTD2172替代方案|TYPEC转HDMI4K@60HZ拓展坞|CS5265替代RTD2172
瑞昱RTD2172是TYPEC转HDMI4K60HZ音视频数据转换器芯片.CS5265可以替代兼容RTD2172,除了实现同等的转换功能外且整体方案成本和性价比方面比RTD2172要高,且外围器件较少 ...
- SpringCloud创建Config多客户端公共配置
1.说明 基于已经创建好的Spring Cloud配置中心, 在配置中心仅保存一套配置文件, 多个客户端可以通过配置中心读取到相同的配置, 而不需要在每个客户端重复配置一遍, 下面以一个Config ...
- CSS基础 overflow 内容溢出部分显示效果
属性:overflow 值 作用 visible 默认,内容溢出部分可见 hidden 内容溢出部分不可见 scroll 内容有无溢出,都有滚动条 auto 有内容溢出,自动显示滚动条
- vuex从后台数据后页面已完成渲染无法显示数据的解决办法
一.在store中state定义一个变量 来控制是否显示 二.在完成数据获取后把isShow设为true 三.把state状态映射到页面的computed中 四.在模板中使用v-if来判断是否显示 来 ...
- 2.OSI各层概述
应用层 1.用户与网络的界面,所有能和用户交互产生网络流量的程序 典型应用层服务:FTP.SMTP.HTTP 表示层 1.用于处理在两个通信系统中交换信息的标识方式 功能1:数据格式变换(翻译) 功能 ...
- 随机数Random 和枚举enum
(一):生成随机数 要指定的话 需要在方法中指定最大的值 nextint(10)意思是 下一个的数是10需要导包:import java.util.Random; (二)枚举 enum 的语法和 ...
- [WPF] 用 Effect 实现线条光影效果
1. 前言 几个月前 ChokCoco 大佬发布了一篇文章: CSS 奇技淫巧 | 妙用 drop-shadow 实现线条光影效果 在文章里实现了一个发光的心形线条互相追逐的效果: 现在正好有空就试试 ...
- Java 将PDF转为PDF/A
通过将PDF格式转换为PDF/A格式,可保护文档布局.格式.字体.大小等不受更改,从而实现文档安全保护的目的,同时又能保证文档可读.可访问.本篇文章,将通过Java后端程序代码展示如何将PDF转为符合 ...