(提高Java代码质量)|25个优化Java代码的小技巧.txt2020年06月26日21时45分53秒

作者: 发表时间:2020-06-26 19:37:52 浏览人数:1874

这个数字主要用于分享企业常用的技术,更强调实用性。欢迎关注,以便浏览更多实用的历史文章。

当循环中只需要map的主键时,迭代键集()是正确的。但是,当需要主键和值时,迭代entryset()比先迭代keyset()然后获取值更有效。

使用集合.大小()检测空逻辑,但使用托收.isEmpty()使代码更易于阅读并提供更好的性能。任何托收.isEmpty实现的时间复杂度为O(1),但有些集合.大小实现的时间复杂度可以是o(n)。

收藏品.isEmpty(收藏)收藏品.isNotEmpty(收藏)3。不要将集合对象传递给自己

此外,由于某些方法要求参数在执行期间保持不变,因此将集合传递给自身可能会导致意外行为。

Java的collection类使用起来非常方便,但从源代码中可以看出,collection的大小也是有限的。每个扩展的时间复杂性可能为o(n),因此请尝试指定可预测的集大小以减少扩展的数量。

一般来说,字符串拼接在编译时会在Java中的优化中完成,但在循环字符串拼接中,优化在编译时不能在Java中完成,因此需要使用StringBuilder进行替换。

我们都知道数组和链表的区别:数组的随机访问效率更高。调用方法获取列表时,如果要随机访问数据,不知道数组的内部实现是链表还是数组,该怎么办?您可以确定它是否实现随机访问接口。

在Java集合类库中,list的contains方法的一般时间复杂度为O(n)。如果需要频繁调用contains方法来查找代码中的数据,可以首先将列表转换为哈希集实现,并将O(n)的时间复杂度降低到O(1)。

当使用长整型常量值时,需要在其后面加上L。必须是大写L,而不是小写L。小写L很容易与数字1混淆,引起误解。

当您编写一段代码时,使用magic值可能看起来很明确,但在调试时却不那么明确。这就是为什么需要将魔法值定义为可读常量的原因。但是,-1、0和1不被视为魔法值。

在Java 7中引入try-with-resources语句,保证了相关资源的封闭性,优于原来的try-catch-finally语句,使程序代码更加安全简洁。

删除未使用的私有方法和字段,使代码更简单、更易于维护。如果需要重用它,可以从历史提交中检索它。

未使用的方法参数具有误导性。删除未使用的方法参数使代码更简单、更易于维护。但是,由于重写方法基于父类或接口的方法定义,因此即使有未使用的方法参数,也无法删除它们。

实用程序类是不应实例化的静态字段和函数的集合。但是,Java为每个没有显式定义构造函数的类添加了隐式公共构造函数。因此,为了避免Java空白的误用,应该显式地定义私有构造函数来屏蔽隐式公共构造函数。

使用catch语句捕获异常后,如果未处理任何内容,则将再次引发异常。这与不捕获异常的效果相同。您可以删除此代码或添加其他处理。

虽然允许通过类的实例访问公共静态常量,但很容易让人认为类的每个实例都有一个公共静态常量。因此,应该通过类直接访问公共静态常量。

如果要将其他对象或类型转换为字符串,请使用字符串.valueOf(值)比+值更有效率。

如果某段代码已过期,但无法直接删除以获得兼容性,则可以添加@deprecated注释来标记它,前提是以后不希望有人再次使用它。在文档注释中添加@deprecated以解释和提供替代项

BigDecimal(double)存在精度损失的风险,在计算或值比较的情况下可能导致业务逻辑异常。

返回null,调用方必须强制进行空检测,否则将引发空指针异常。返回空数组或空集合,可以有效避免调用方由于未检测到空而抛出空指针异常,还可以删除调用方检测空的语句,使代码更加简洁。

对象的equals方法很容易抛出空指针异常。您应该使用常数或确定值的对象调用equals方法。

枚举通常用作常量。如果枚举中存在公共属性字段或设置字段方法,则可以轻松修改这些枚举的属性。理想情况下,枚举中的属性字段是私有的,并在私有构造函数中分配。没有对应的setter方法。更好添加最后的修改器。

字符串的拆分方法。传递的字符串是正则表达式!一些关键字(例如,[](|)需要转义

这个数字主要用于分享企业常用的技术,更强调实用性。欢迎关注,以便浏览更多实用的历史文章。

统计 字数: 2979 汗字: 2184 数字:23 大写字母:25 小写字母:367 符号:380 总字节数:5163 共:52行2020年06月26日21时45分54秒

Top
RELATEED CONSULTING相关咨询
选择下列产品马上在线沟通
服务时间:9:00-19:00
你可能遇到了下面的问题