Effective Java

《effective java》 第12条:考虑实现Comparable接口 实现Comparable接口可以使用java.util.Collections.sort对集合排序,也可以使用对象1.compareTo(对象2)进行排序; 使用java.util.Collections.sort对集合排序时可以自定义Comparator; package com.company; /** * Title: * * @Author * @CreateTime 20... 阅读详情

第一章 

第二章 创建和销毁对象

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、考虑用序列化代理代替序列化实例

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Linux系统监控实战:夜莺监控+categraf采集器配置全流程(附常见问题排查) 本文详细介绍了在Linux系统中使用夜莺监控和categraf采集器进行系统监控的全流程配置,包括环境准备、核心配置文件(如config.toml和procstat.toml)详解、服务集成与验证、高级监控配置实战以及常见问题排查。通过实战案例和优化建议,帮助运维人员快速构建高效的监控体系。 阅读详情

相关推荐

U8 API接口开发踩过的坑

U8 API接口开发踩过的坑

haiyang5233233的专栏 1656

Effective Java 第三版 中文翻译

effective-java-third-edition 介绍 Effective Java 第三版全文翻译,纯属个人业余翻译,不合理的地方,望指正,感激不尽! 目录 推荐序 前言 致谢 第一章 引言 第二章 创建和销毁对象   本章涉及创建和销毁对象,包括何时以及如何创建它们,何时以及如何避免创建它们,如何确保它们被及时销毁,以及如何管理在销毁之前必须进行的清理操作。 第1项:考虑静态工...

Coloured_Glaze的博客 3861

Colab虚拟环境配置全攻略:从安装到实战应用

本文详细介绍了在Google Colab中配置Python虚拟环境的完整流程与实战技巧。通过安装Anaconda、创建独立环境、解决常见错误及结合深度学习项目应用,帮助用户有效管理依赖、避免冲突,并利用环境持久化策略提升在Colab中的开发效率与项目可复现性。

weixin_29204121的博客 340

Effective Java 总结

前言读完了Effective Java,对这本书总结一下,结合自己在实际中的使用,这里只记录部分我觉得重点的点,顺便加上自己平时注意到的点一、对象创建和销毁1:考虑用静态工厂方法替换构造器静态工厂方法的惯用名称:valueOf——该方法返回的实例与它的参数具有相同的值,实际上是类型转换方法; getInstance——返回的实例是通过方法的参数来描述的,对于单例模式(Singleton)来说,该方

XXX 1万+

黑马程序员Pink的javaScript课程APIday4

本文摘要:介绍了JavaScript中日期对象的实例化方法(有参/无参)及三种获取时间戳的方式。讲解了DOM节点操作,包括节点查找(父、子、兄弟节点)、增加/克隆/删除节点的方法。详细说明了移动端touch事件和Swiper插件的使用,包括自动播放和小圆点配置。最后提及学成在线案例中表单验证和取消默认跳转的实现。

JLY19970726的博客 825

Frida实战:SSL Pinning绕过技术全解析

本文详细解析了如何使用Frida工具绕过SSL Pinning技术,包括环境搭建、四种实战绕过方案及常见问题排查指南。通过具体代码示例和实战经验,帮助安全研究人员快速掌握SSL Pinning绕过技术,适用于金融类App的安全测试场景。

weixin_42530732的博客 188

Effective Java, Third Edition

https://github.com/jbloch/effective-java-3e-source-code 网址是 Effetive java的源码 effective-java-3e-source-code 转载于:https://www.cnblogs.com/qxyy/p/9606873.html

anjieqing1102的博客 259

doris2.1.8连接报错ERROR 1203 (42000): Reach limit of connections解决办法

摘要:客户Doris数据库报错"ERROR 1203 (42000): Reach limit of connections"的解决过程。发现AI提供的解决方案存在错误:1)查询命令应为SHOW FRONTEND CONFIG而非show variables;2)参数名称应为qe_max_connection而非max_connections。正确解决步骤:1)用admin账户登录查看连接数限制和当前连接数;2)通过SHOW PROPERTY命令检查用户资源限制;3)针对不同情况修改参数

Brent的专栏 1762

Effective Java阅读心得

最近再次拜读了Effective Java一书,确实很有感悟,第一次读的时候我的java基础还很不牢,代码积累也不多,读起来总是云里雾里,而这一次读的时候,确实有很多共鸣,感悟,在书上自己写了一些心得体会,俗话说好记性不如烂笔头,也记录到博客里,有需要的时候可以查阅一下第一章  引言引言部分就没啥说的了,就是介绍一下本书第二章  创建和销毁对象第一条:考虑用静态工厂方法代替构造器其实这里指的静态工...

Qunter的博客 2397

CAN-do-paser:Java开发的CAN总线数据帧解析库

CAN总线数据帧使用DBC文件信息解析为物理量,基于Java开发的数据解析工具。

佳瑞的博客 1133

Livox MID-360与FAST-LIO2实战:从驱动部署到参数调优的完整指南

激光雷达惯性里程计(LIO)是机器人定位与建图(SLAM)领域的核心技术,它通过紧耦合融合激光雷达点云与惯性测量单元(IMU)数据,实现高精度、低漂移的位姿估计。其核心原理在于利用IMU的高频数据预测运动,并用激光雷达的精确测距信息进行校正与优化,从而在快速运动或特征缺失场景下保持鲁棒性。这项技术的工程价值在于为自动驾驶、移动机器人及三维重建提供了可靠的前端里程计解决方案。针对Livox MID-360固态雷达与FAST-LIO2这一热门组合,其应用场景广泛覆盖了室内外导航与地图构建。本文聚焦于**驱动部署

weixin_29997523的博客 446

一. 初识Effective Java

这几天看了Effective Java,感觉这本书中讲解的Java中的一些方面帮助我们更深的理解Java,学习Java,所以决定把里面我觉得重要的点 记再这里。 第一章,简单通俗地讲到本书中大多数条目是通过程序示例进行说明。 许多的代码示例说明了 许多设计模式 和 习惯用法,还会有设计模式和习惯用法交叉引用。 1.代码规则:清晰性和简洁性最为重要; 模块的用户不应该被模块的行为...

Jason_LH1024的博客 290

海康机器人visionmaster5.0全局通信西门子S7操作

德国西门子(SIEMENS)公司生产的可编程序控制器在我国的应用也相当广泛,在冶金、化工、印刷生产线等领域都有应用。西门子(SIEMENS)公司的PLC产品包括S7-200、S7-1200、S7-300、S7-400、S7-1500等。西门子S7系列PLC体积小、速度快、标准化,具有网络通信能力,功能更强,可靠性高。S7系列PLC产品可分为微型PLC(如S7-200),小规模性能要求的PLC(如S7-300)和中、高性能要求的PLC(如S7-400)等。

weixin_65316120的博客 423

effective java网址

2020年12月31日: 准备看些编程类的书籍: effective java :https://cl0610.github.io/effective-java-learning/

mingyuli的博客 188

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

《Effective Java》笔记

《Effective Java》笔记以前看书时记的笔记,分享一下。1 创建和销毁对象1.1 考虑用静态工厂方法代替构造函数静态工厂方法相比于构造函数的优点: 1、具有名字,从而易于阅读; 2、每次调用时不要求非得创建一个新的对象(如Singleton); 3、可以返回一个原返回类型的子类型对象; 缺点: 1、如果不含公有的或者受保护的构造函数,就不能被子类化 2、静态工

渔歌唱晚 1168

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

《Effective java》第二版阅读笔记

18.接口优于抽象类 接口和抽象类都是java中定义类型、扩展功能的机制。 两者主要区别在于接口中全部是抽象方法,抽象类中可以包含抽象方法,也可以包含非抽象方法。 而接口优于抽象类的原因是,类可以实现多个接口,但只能继承一个抽象类,抽象类的使用受限。 假使对一个类进行扩展功能,可在implements后新增接口实现,如Comparable引进到java中后,更新了许多现有类。同时接口也是mixin...

张晨雪的博客 664

Effective Java第三版有哪些新功能?

自从听说即将出版的有效Java 第三版以来,我一直想知道其中有什么新内容。 我假设将涵盖自Java 6以来引入Java的功能,的确如此。 但是,第三版Java开发人员经典版也有一些其他更改。 在本文中,我提供了有关在第三版中添加,更改或删除的主题的高级概述。 在列出我所观察到的似乎是《 有效Java第三版》中的新内容之前,我需要做出免责声明,说我很可能会错过本书中的几处更改,共有12章,...

最佳 Java 编程 518

effective java(一)

文章目录effective java(一)第一条:用静态工厂方法代替构造器优势缺点第二条:遇到多个构造器参数时要考虑使用构建器第三条:用私有构造器或者枚举类型强化Singleton属性 effective java(一) 本系列内容是学习effective java的理解和笔记。有一些内容在初次阅读的时候理解不深刻,或者完全不理解。因此先把内容要点记录下来,后续可以不断回顾这些笔记的内容,和多次查...

qq_22343953的博客 544

Effective Java精髓

Effective Java  第一章:创建和销毁对象 1. 使用静态工厂方法 ——优点:1. 可以提供多种方式的方法签名。                   2. 不必每次都返回一个新的实例。                    3. 可以返回本类的一个子类实例。                   4. 使用静态类型推导:public static <k,v> Ha...

仙路看近行远 608

《Effective Java2》笔录

转自:http://www.verydemo.com/demo_c89_i134810.html Joshua Bloch在国内出版的书包括《Effective Java2》《Java Puzzlers》《Java Concurrency in Practive》(合著)。特别...

chenghuo9876的博客 189

《Effective Java(第三版)》笔记

本文提供了《Effective Java》第3版的思维导图和相关资源链接。思维导图分为三部分,分别对应第1-4章、第5-8章和第9-12章的内容,帮助读者快速梳理和掌握书中的核心知识点。此外,文章还提供了该书的源码链接,方便读者深入学习和实践。这些资源为Java开发者提供了高效的学习工具,助力提升编程技能。

千里之行,始于足下 606

Effective Java 78条军规

Effective Java, 2nd Edition by Joshua Bloch I, Michael Parker, own this book and took these notes to further my own learning. If you enjoy these notes, please purchase the book! Chapter

Bitcoin学习中,欢迎吐槽 1898

Effective Java 学习资源

Effective Java 学习资源 去发现同类优质开源项目:https://gitcode.com/ 欢迎来到Effective Java资源仓库!这里为您提供了《Effective Java》的PDF版本书籍,旨在帮助Java开发者提高编程技能,写出更高效、更可靠的代码。 简介 《Effective Java》是一本由Joshua Bloch编写的经典Java编程书籍,它详细介绍了Java编...

gitblog_06796的博客 303

Effective Java(第3版)总结

创建和销毁对象 1、用静态工厂方法代替构造器 2、遇到多个构造器参数时要考虑使用构建器 3、用私有构造器或者枚举类型强化Singleton属性 4、通过私有构造器强化不可实例化的能力 5、优先考虑依赖注入来引用资源 6、避免创建不必要的对象 7、消除过期的对象引用 8、避免使用终结方法和清除方法 9、try-with-resources优先于try-finally 对于所有对象都通用的方法 10、覆盖equals时请遵守通用约定 11、覆盖equals时总要覆盖hashCode 12、始终要覆盖toStr.

chenjingwo4的博客 485

effective java

        今天了解了一下Java四大名著之一的《Effective Java》,读了一下作者Joshua Bloch的序言颇有感触。下面引用一下作者经典原文:       “如果曾经学习过第二种语言,并尝试在课堂之外使用这种语言,那么你该知道有三件事情是必须要掌握的:这门语言的结构如何(语法).如何命名你想谈论的事物(词汇),以及如何用习惯和高效的方式来表达事情(用法).在课堂上通常只是涉及...

灰色影子 152
上一篇: JAVA设计模式UML图
下一篇: JVM类加载、概念和高级特性
九号铅笔芯
博客等级 码龄9年 9粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值