zoukankan      html  css  js  c++  java
  • java中的那些坑

    “==” 与 equals 的比较,结果不同。(使用equals才靠谱。)

    Integer ig1 = new Integer(1);
    Integer ig2 = new Integer(1);
    System.out.println(ig1 == ig2);//对象地址值,都是new 的地址,false
    System.out.println(ig1.equals(ig2));//true

     “==”  与 equals 比较,byte 范围内的 整型数字 作比较 用 “==” 时,得特殊考虑。(使用equals才靠谱。)

    /*
    * byte : -128~127 
    * 当数据在byte范围内,JVM不会从新new对象。
    */
    Integer ig3 = 127;//Integer  ig3 = new Integer(127);
    Integer ig4 = 127;//Integer  ig4 = ig3;
    System.out.println(ig3==ig4);//true
    System.out.println(ig3.equals(ig4));//false

    浮点数计算 得不到正确的值。(尽量使用 BigDecimal 去参与运算才安全)

    /* 特殊情况计算 有问题 
     * 原因:计算机二进制中,表示浮点数不精确造成
     * 超级大型的浮点数据,提供高精度的浮点运算,
     *         使用 BigDecimal,应尽可能使用 public BigDecimal(String val) 去参与运算。
     * */
    System.out.println(0.09 + 0.01);//0.09999999999999999
    System.out.println(1.0 - 0.32);//0.6799999999999999
    System.out.println(1.015 * 100);//101.49999999999999
    System.out.println(1.301 / 100);//0.013009999999999999

      

  • 相关阅读:
    查看linux服务器CPU相关
    Innobackupex(xtrabackup)物理备份
    给xen虚拟机添加硬盘分区格式化
    快速做ssh免密钥登陆
    windows基本命令大全
    linux系统下python升级安装
    快速安装Java环境
    「十二省联考 2019」骗分过样例
    「十二省联考 2019」皮配
    「SNOI2019」积木
  • 原文地址:https://www.cnblogs.com/lztkdr/p/JavaDefect.html
Copyright © 2011-2022 走看看