
阿里Java开发手册
星的奏鸣曲
这个作者很懒,什么都没留下…
展开
-
获取当前时间的毫秒数该使用哪种方式
[强制] 获取当前时间的毫秒数获取当前毫秒数:System.currentTimeMillis();而不是new Date().getTime()。说明:如果想获取更加精确的纳秒级时间值,使用 System.nanoTime 的方式。在 JDK8 中,针对统计时间等场景,推荐使用 Instant 类。Java中该使用 System.currentTimeMillis() 还是 new Date().getTime() 总结原文链接:https://blog.youkuaiyun.com/qq原创 2020-07-06 11:55:12 · 4123 阅读 · 0 评论 -
serialVersionUID的作用是什么
【强制】序列化类新增属性时,请不要修改 serialVersionUID 字段,避免反序列失败;如果完全不兼容升级,避免反序列化混乱,那么请修改 serialVersionUID 值。说明:注意 serialVersionUID 不一致会抛出序列化运行时异常。当执行序列化时,我们写对象到磁盘中,会根据当前这个类的结构生成一个版本号ID。当反序列化时,程序会比较磁盘中的序列化版本号ID跟当前的类结构生成的版本号ID是否一致,如果一致则反序列化成功,否则,反序列化失败。加上版本号,有助于当我们的类.原创 2020-07-06 11:08:28 · 4413 阅读 · 2 评论 -
基本数据类型和包装数据类型使用标准
关于基本数据类型与包装数据类型的使用标准如下:1) 【强制】所有的 POJO 类属性必须使用包装数据类型。2) 【强制】RPC 方法的返回值和参数必须使用包装数据类型。3) 【推荐】所有的局部变量使用基本数据类型。正例:数据库的查询结果可能是 null,因为自动拆箱,用基本数据类型接收有 NPE 风险。反例:某业务的交易报表上显示成交总额涨跌情况,即正负 x%,x 为基本数据类型,调用的 RPC 服务,调用不成功时,返回的是默认值,页面显示为 0%,这是不合理的,应该显示成中划线-。所以包原创 2020-07-06 09:36:41 · 978 阅读 · 0 评论 -
浮点数之间的等值判断
浮点数之间的等值判断,基本数据类型不能用==来比较,包装数据类型不能用equals来判断。说明:浮点数采用“尾数+解码”的编码方式,类似于科学技术法“有效数字+指数”的表示方式。二进制无法精确表示大部分的十进制小数。反例:float a = 1.0f - 0.9f;float b = 0.9f - 0.8f;if (a == b) { // 预期进入此代码快,执行其它业务逻辑 // 但事实上 a==b 的结果为 false}Float x = Float.valueOf(a);Float原创 2020-07-03 10:24:02 · 2916 阅读 · 0 评论