Effective Java

本文全面介绍了Java编程的最佳实践,从对象的创建与销毁、方法设计到泛型使用,再到并发和异常处理,提供了详实的指导原则,帮助开发者提高代码质量和系统稳定性。

第一章 

第二章 创建和销毁对象

1、考虑用静态工厂方法代替构造器

2、遇到多个构造器参数是要考虑用构造器

3、用私有构造器或者枚举类型强化sigleton属性

4、通过私有构造器强化不可实例化的能力

5、避免创建不必要的对象

6、消除过期的对象引用

7、避免使用终结方法

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

8、覆盖equels时请准守通用约定

9、覆盖equels时总要覆盖hashCode

10、始终要覆盖tostring

11、谨慎地覆盖clone

12、考虑实现Comparable接口

第四章 类和接口

13、使类和成员的可访问性最小化

14、在公有类中使用访问方法而非共有域

15、使可变性最小化

16、复合优先于继承

17、要么为继承而设计,并提供文档说明,要么就禁止继承

18、接口由于抽象类

19、接口只用于定义类型

20、类层次优先于标签类

21、用函数对象表示策略

22、有限考虑静态成员类

第五章 泛型

23、请不要在新代码中使用原生态类型

24、消除非受检警告

25、列表优先于数组

26、优先考虑泛型

27、有限考虑泛型方法

28、利用通配符来提升API的灵活性

29、优先考虑类型安全的异构容器

第六章 枚举和注解

30、用enum代替int常量

31、用实例代替序数

32、用EnumSet代替位域

33、用EnumMap代替序数索引

34、用接口模拟可伸缩的枚举

35、注解优先于命名模式

36、坚持使用Override注解

37、用标记接口定义类型

第七章、方法

38、检查参数的有效性

39、必要时进行保护性拷贝

40、谨慎设计方法签名

41、慎用重载

42、慎用可变参数

43、返回零长度的数组或者集合,而不是null

44、为所有导出的API元素编写文档注释

第八章 通用程序设计

45、将局部变量的作用域最小化

46、for each循环优先于传统的for循环

47、了解和使用类库

48、如果需要精确的答案,请避免使用float和double

49、基本类型优先于装箱基本类型

50、如果其他类型更适合,则尽量避免使用字符串

51、担心字符串连接的性能

52、通过接口引用对象

53、接口优先于反射机制

54、谨慎地使用本地方法

55、谨慎地进行优化

56、准守普遍接受的命名规范

第九章 异常

57、只针对异常的情况才使用异常

58、对可恢复的情况使用受检异常,对编程错误使用运行时异常

59、避免不必要的使用受检异常

60、优先使用标准的异常

61、抛出与抽象相对应的异常

62、每个方法抛出的异常都要有文档

63、在细节消息中包含能捕获失败的信息

64、努力使失败保持原子性

65、不要忽略异常

第十章 并发

66、同步访问共享的可变数据

67、避免过度同步

68、excutor和task优先于线程

69、并发工具优先于wait和notify

70、线程安全性的文档化

71、慎用延时初始化

72、不要依赖于线程调度器

73、避免使用线程组

第十一章 序列化

74、谨慎的实现serializable接口

75、考虑使用自定义序列化形式

76、保护性的编写readObject方法

77、对于实例控制,枚举优先于readResolve

78、考虑用序列化代理代替序列化实例

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

代码转载自:https://pan.quark.cn/s/9cde95ebe57a 横道图,亦称为甘特图,是一种可视化的项目管理手段,用于呈现项目的进度安排和时间框架。 在信息技术领域,特别是在项目执行与软件开发范畴内,横道图被普遍采用来监控作业、配置资源以及保障项目能按时交付。 此类图表借助水平条带图示来标示各个任务的起止时间点,使项目成员与管理者可以明确掌握项目的整体发展状况。 周期表或可指代计算机科学中的“作业调度周期表”或“资源配置周期表”。 在计算机系统中,作业调度是一项核心功能,它规定了哪个进程或线程能够在中央处理器上执行以及执行的具体时长。 周期表有助于系统管理者洞察作业的执行频率和资源使用状况,进而提升系统的运作效能和响应能力。 不仅如此,周期表也可能意指数据处理或研究中的周期性文档,如在金融分析中按期更新的市场信息文档。 在压缩文件“横道图,周期表.zip”内含的“横道图,周期表.doc”文件,很可能是对某个项目或任务管理的详尽阐述,涵盖利用横道图来制定和展示项目的时间进程,以及可能牵涉的周期性作业调度或资源配置情形。 文件或许包含以下部分:1. **项目简介**:阐述项目的目标、范畴、预期成效及参与项目的团队成员。 2. **横道图详述**:具体列出了项目中的各项任务,每个任务的启动与终止时间,以及它们之间的关联性。 横道图通常涵盖关键节点,这些节点是项目中的重要事件,象征重要阶段的实现。 3. **任务配置**:明确了每个任务的责任归属,使项目成员明晰自己的职责和截止日期。 4. **进展更新**:若文件是动态维护的,可能会记录项目的实际进展与计划进展的对比,有助于识别延误并调整计划。 5. **周期表探讨**:深入说明了周期性作业的调度,如定期的会议、报告递交、...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值