![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 70
谈谈IT
独立IT博客【谈谈IT】tantanit.com博主。
展开
-
高效Java技巧重写equals方法时应当重写hashCode方法
hashCode需满足的条件当equals方法中涉及的参数没有改变时,hashCode应保持不变如果根据equals方法,两个对象是相等的,那么这两个对象的hashCode应该一样两个对象如果不相等,hashCode不强制要求不一样,但是如果能保证不一样,对哈希的效率会比较有帮助最重要的是第二点,相等的对象必须有相同的hashCode,由于默认的hashCode方法针对每一个对象返回一个固定的随机值(有的实现是根据对象地址返回值,相当于每一个对象对应一个固定的随机值),所以当我们使用equals原创 2021-09-06 17:18:03 · 241 阅读 · 0 评论 -
高效Java技巧之不滥用枚举的下标
所有的枚举类型都有一个ordinal方法,将返回枚举值在枚举类中的位置。// 滥用下标,将下标与枚举值的属性特征联系在一起,应当避免这样做 public enum Ensemble { SOLO, DUET, TRIO, QUARTET, QUINTET, SEXTET, SEPTET, OCTET, NONET, DECTET; public int numberOfMusicians() { return ordinal() + 1; }原创 2021-09-06 17:17:00 · 346 阅读 · 0 评论 -
java三段式中包装类报空指针异常的bug
最近在开发中遇到一个莫名其妙的bug,一个给Double类型赋值的三段式报了空指针异常,从程序字面上完全看不出有什么问题。项目代码,不方便直接贴,我写了下面这段例子进行说明:直接使用null赋值给三段式public static Double test() { Double b = null; Double result = b == null ? n...原创 2020-02-15 15:03:44 · 666 阅读 · 0 评论 -
java8之如何使用函数引用
在上一篇文章中以实例讲解如何定义和使用lambda表达式,以及与其它语言相比,lambda表达式在Java中的特殊规范。并且提到,lambda表达式可以进一步简化为函数引用。这篇文章将介绍如何使用函数引用。函数引用的类型函数引用分为以下四种:静态函数,比如Integer类的parseInt函数,可以写作Integer::parseInt对象级别函数的引用,比如String类的length...原创 2020-02-15 14:35:28 · 1483 阅读 · 0 评论 -
java8之lambda实例解析
在上一篇文章中介绍了lambda表达式的语法,引入了lambda表达式的使用场景,以及使用lambda 表达式的好处。我们将在这篇文章中,以实例讲解如何定义和使用lambda表达式,以及与其它语言相比,lambda表达式在Java中的特殊规范。使用匿名内部类的例子首先明确一点,在Java8出现之前,lambda表达式能够做到的,使用内部类也能做到,lambda表达式只是简化了编程。下面的例子...原创 2020-02-15 14:32:32 · 311 阅读 · 0 评论 -
Java8详解之lambda表达式
首发于谈谈ITJava8中引入了lambda表达式,从行为参数化的角度,在使用时,将行为作为参数,去除包围在外层的不必要的类声明,使代码更加简洁。lambda表达式的语法lambda表达式由参数,->,以及函数体三部分组成。其实函数体可以是表达式,也可以是语句。语句应该包含在{}里,而表达式不能。lambda表达式举例(List<String> list) -> ...原创 2020-02-14 20:15:57 · 179 阅读 · 0 评论