zoukankan      html  css  js  c++  java
  • Java

    1,String   s   =   new   String( "xyz "); 
    首先在string池内找,找到?不创建string对象,否则创建,   这样就一个string对象 
    遇到new运算符号了,在内存上创建string对象,并将其返回给s,又一个对象 

    在写LeetCode的时候,一个题目需要计算两两点之间的斜率,使用double类型数据保存的时候,已经有预感到了精度的问题了,自己认为理论上在一次计算中,对于同一个double值如0.5,在同一个计算机类数据表示形式是一样的,可以忽略不计,但是实际中遇见的是double数据类型0.0和-0.0的比较问题。

    System.out.println(0.0 == -0.0);
    System.out.println(Double.compare(0.0, -0.0));
    System.out.println(new Double(0.0).equals(new Double(-0.0)));
    Map<Double, Integer> map = new HashMap<>();
    map.put(0.0, 1);
    map.put(-0.0, 2);
    System.out.println(map.size());
    System.out.println((double)(2-2)/(1-2));
    System.out.println((double)(3-3)/(2-1));

    输出结果如下所示:

    true
    1
    false
    2
    -0.0
    0.0

    在集合中遇见0.0和-0.0时,由于自动装箱,导致两个在绝对数值上相等的数据,放入集合时表现出不相等。 
    解决办法: 
    对获得的double类型数据加上一个0.0

    Map<Double, Integer> map = new HashMap<>();
    map.put(0.0, 1);
    map.put(-0.0+0.0, 2);
    System.out.println(map.size());
    1
  • 相关阅读:
    自动释放池
    图片裁剪成圆形(无边框)
    根据数字对应星期几
    IOS 周几转化数字
    计算两个日期之间的天数
    java——IO流整理(一)
    java——File类的用法整理
    java——用递归和IO流来实现文件的复制
    java——java集合详解
    java——对象的克隆
  • 原文地址:https://www.cnblogs.com/meixudong/p/10298136.html
Copyright © 2011-2022 走看看