mirror of
https://github.com/Snailclimb/JavaGuide
synced 2025-06-16 18:10:13 +08:00
Update Java疑难点.md
This commit is contained in:
parent
78813345a3
commit
18e80a8fcf
@ -61,7 +61,7 @@ public static boolean equals(Object a, Object b) {
|
||||
|
||||
Reference:[Java中equals方法造成空指针异常的原因及解决方案](https://blog.csdn.net/tick_tock97/article/details/72824894)
|
||||
|
||||
- 每种原始类型都有默认值一样,如int默认值为0,boolean的默认值为false,null是任何引用类型的默认值,不严格的说是所有object类型的默认值。
|
||||
- 每种原始类型都有默认值一样,如int默认值为 0,boolean 的默认值为 false,null 是任何引用类型的默认值,不严格的说是所有 Object 类型的默认值。
|
||||
- 可以使用==或者!=操作来比较null值,但是不能使用其他算法或者逻辑操作。在Java中`null==null`将返回true。
|
||||
- 不能使用一个值为null的引用类型变量来调用非静态方法,否则会抛出异常
|
||||
|
||||
@ -81,7 +81,7 @@ System.out.println(a == b);//false
|
||||
System.out.println(a.equals(b));//false
|
||||
```
|
||||
|
||||
当使用自动装箱方式创建一个Integer对象时,当数值在-128 ~127时,会将创建的Integer对象缓存起来,当下次再出现该数值时,直接从缓存中取出对应的Integer对象。所以上述代码中,x和y引用的是相同的Integer对象。
|
||||
当使用自动装箱方式创建一个Integer对象时,当数值在-128 ~127时,会将创建的 Integer 对象缓存起来,当下次再出现该数值时,直接从缓存中取出对应的Integer对象。所以上述代码中,x和y引用的是相同的Integer对象。
|
||||
|
||||
**注意:**如果你的IDE(IDEA/Eclipse)上安装了阿里巴巴的p3c插件,这个插件如果检测到你用 ==的话会报错提示,推荐安装一个这个插件,很不错。
|
||||
|
||||
@ -155,9 +155,7 @@ Reference:《阿里巴巴Java开发手册》
|
||||
|
||||
**正例** : 数据库的查询结果可能是 null,因为自动拆箱,用基本数据类型接收有 NPE 风险。
|
||||
|
||||
**反例** : 比如显示成交总额涨跌情况,即正负 x%,x 为基本数据类型,调用的 RPC 服务,调用不成功时,
|
||||
返回的是默认值,页面显示为 0%,这是不合理的,应该显示成中划线。所以包装数据类型的 null 值,能
|
||||
够表示额外的信息,如:远程调用失败,异常退出。
|
||||
**反例** : 比如显示成交总额涨跌情况,即正负 x%,x 为基本数据类型,调用的 RPC 服务,调用不成功时,返回的是默认值,页面显示为 0%,这是不合理的,应该显示成中划线。所以包装数据类型的 null 值,能够表示额外的信息,如:远程调用失败,异常退出。
|
||||
|
||||
# 2. 集合
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user