1. float运算的坑
float f = 9.9f; float m = f * 100.0f; System.out.println(m);
结果并不是990
不管是乘以100还是100.0f
8.9f 也有这个问题
2. string split问题
String ss = "5.11.17.0/24,,2635167,,0,1,,,,"; int i = 0; System.out.println("size: " + ss.split(",").length); for (String s : ss.split(",")) { System.out.println(String.format("str [%d]: [%s]", i, s)); i++; }
可以发现输出的size是6,后面的空串都直接被丢弃了,而中间的是被保留的
3. Boolean.TRUE本质上是预定义的new Boolean(true)
public static final Boolean TRUE = new Boolean(true);
Boolean trueA = new Boolean(true); System.out.println(trueA == Boolean.TRUE); //false!!! System.out.println(trueA == true); //true所以在确定Boolean类型的变量不为null的时候,最好还是和true,false比较,或者直接放if里面
同样的对于Integer和String,如果指向同一个常量,那么直接用==比较是相等的,但是如果是新new出来的,用==比较就不相等了
Integer int1 = 1; Integer int11 = new Integer(1); System.out.println(int1 == int11); //false!!!
相关推荐
### 写Java程序最容易犯的错误例析 在软件开发过程中,编写高质量的代码是非常重要的。良好的代码不仅能提高系统的可维护性和可扩展性,还能减少未来的维护成本。本文将详细介绍编写Java程序时最常见的21个错误,并...
注意:这种方法仅适用于开发和测试环境,不应用于生产环境,因为它会削弱安全性,使得系统容易受到中间人攻击。在生产环境中,你应该始终验证服务器证书,以保护用户的数据安全。 至于提到的"相关jar包全有",这...
java程序员必看的文档,对于巩固java基础、提升技术能力的人来说绝对是最好的选择。
本文将针对Java程序员容易犯的10个错误进行详细讲解,帮助大家避免这些陷阱。 1. **Array 转 ArrayList**: 当使用`Arrays.asList()`方法将数组转换为列表时,返回的是`java.util.Arrays.ArrayList`,这是一个内部...
以上只是学习Java过程中容易被忽略的一些知识点,实际上,Java的世界远比这复杂。持续深入学习,不断实践和总结,才能真正掌握这门语言。阅读和记录读书笔记,是提高学习效率的有效方式,希望我的笔记能对你有所帮助...
Java - 近10年来计算机软件发展过程中的传奇,其在众多开发者...嗯,这是个容易但又绝对不应该忽略的问题,你确信自己对Java感兴趣、而且又有吃苦的准备,那你才可能学好Java!如果具备这两点条件,就请继续往下看……
8. **retrace.jar**:当遇到混淆后的堆栈跟踪信息时,ReTrace工具(包含在retrace.jar中)可以帮助开发者解混淆这些信息,从而更容易地定位错误和异常。 9. **在Android开发中的应用**:在Android Studio中,...
本文将深入探讨“HTTP过代理和忽略SSL证书”这一主题,帮助你解决对接网站突然由HTTP改为HTTPS以及服务器增加代理的问题。 首先,HTTP(超文本传输协议)是互联网上应用最广泛的一种数据传输协议,用于从万维网...
这个项目的目标是使得在Java和Android平台上进行图像处理和计算机视觉研究变得更加容易。 标题"javacv-1.4.4-source_javacv-1.4.4_JAVACV_图像处理_"表明这是一个关于JavaCV 1.4.4版本的源代码包,主要关注图像处理...
Java学习时,初学者往往容易陷入一些误区,这些误区可能会阻碍他们的学习进程和技能提升。以下是一些常见的问题和相应的解决建议: 1. **盲目追求高级特性**:有些学习者在接触Java时,过于热衷于尝试最新的特性和...
这种方法对于解决复杂的内存问题特别有效,因为它允许在不同时间点比较堆内存的状态,从而更容易发现内存使用模式的变化。 ##### 查看活动对象的直方图 通过`-histo:live`选项,jmap只统计当前存活的对象,并生成...
这种方式虽然灵活但容易出错,例如常见的内存泄漏问题。而Java则通过自动化的GC机制解决了这一问题,这使得Java成为一种更加安全、易于维护的语言。 #### Java与C++中的内存管理区别 在C++中,程序员需要显式地...
对于初学者而言,IO 部分是容易忽略的内容,求职者一定要掌握该知识点。 Java 的 IO 模型设计非常优秀,它使用 Decorator 模式,用户可以动态装配不同功能的 Stream,以便获得需要的功能。例如,需要一个具有缓冲...
特别是对于初学者而言,IO 部分是容易忽略的内容,但是在项目开发中,IO 是非常基础的部分。 此外,Java 也对块传输提供支持,在核心库 java.nio 中采用的便是块 IO。块 IO 效率很高,但编程比较复杂。流 IO 的好处...
嗯,这是个容易但又绝对不应该忽略的问题,你确信自己对Java感兴趣、而且又有吃苦的准备,那你才可能学好Java!如果具备这两点条件,就请继续往下看…… 2. 准备一下 请不要把你的学习Java之路和其它计算机技术分开...
这个谜题展示了Java中一些容易被忽视的细节。通过深入理解`Boolean.getBoolean`和`Boolean.parseBoolean`的区别,我们不仅能够避免此类错误,还能够在编写健壮、可靠的Java应用程序时更加得心应手。
再者,内存管理也是Java初学者容易困惑的地方。Java通过垃圾回收机制自动管理内存,但这并不意味着开发者可以忽视内存泄漏的问题。理解对象生命周期,知道何时创建和销毁对象,以及何时使用弱引用、软引用等,能够...
### Java学习七宗罪 ...综上所述,《Java学习七宗罪》这篇文章从多个方面指出了Java学习过程中容易出现的问题,并提供了相应的解决策略。遵循这些建议,可以帮助学习者少走弯路,更快地成为一名合格的Java开发者。
在这个例子中,`Person`类的`equals()`方法只比较了`name`属性,而忽略了其他可能重要的属性。 **建议:** - 实现`equals()`时,考虑所有重要的属性。 - 遵循Java官方文档中关于`equals()`的约定。 #### 二、集合...