effective java——12考虑实现coparable接口
float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。但是,商业计算往往要求结果精确,这时候BigDecimal就派上大用场啦。
package com.jqf.www;
import java.math.BigDecimal;
public class test3 {
        public static void main(String[] args) {
            System.out.println(0.2+0.1);//s输出结果有误 false
            BigDecimal a=new BigDecimal("0.2");
            BigDecimal b=new BigDecimal("0.1");
            System.out.println(a.add(b));//true
            float d=(float) 0.1;
            float c=(float) 0.2;
            System.out.println(d+c);//true
            int dd=;
            int tt=;
            System.out.println(tt+dd);//true
            double d2=0.2;
            double d3=0.1;
            System.out.println(d2+d3
                    );//false
        }
}
于Comparable接口其中只有一个方法——compareTo。此方法和equals有类似之处,不过它所表达的含义相比equals要更多。equals通常是比较两个值是否相等,相等返回true,不相等返回false。compareTo则约定为第1对象若“大于”第2个对象则返回整数,“等于”则返回0,“小于”则返回负数,compareTo能约定更为复杂的“比较”,例如比较两个字符串进行字典序的比较,str = “abc”, str2 = “abd”,str.equals(str2)返回false,而str.compareTo(str2)则返回正数。compareTo与equals一样同样需要遵守自反性、对称性、传递性。同样有一个强烈的建议就是compareTo应该返回和equals方法相同的结果,但如果不一致,也不是不可以,就是最好能在注释中写明两个方法返回的结果不同。
public class WorldList {
        public static void main(String[] args) {
            Set<String> s=new TreeSet<String>();
            s.add("b");
            s.add("a");
            Collections.addAll(s,args);
            System.out.println(s);//[a, b]
        }
}
public class compareTest  {
       public static void main(String[] args) {
           Integer a=;
           Integer b=;
           System.out.println(a.compareTo(b));
    }
}
effective java——12考虑实现coparable接口的更多相关文章
- Effective Java 第三版—— 20. 接口优于抽象类
		Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ... 
- Effective Java 第三版——22. 接口仅用来定义类型
		Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ... 
- Effective Java 【考虑实现Comparable接口】
		Effective Java --Comparable接口 compareTo方法是Comparable接口的唯一方法.类实现了Comparable接口,表明它的实例具有内在的排序关系. 自己实现co ... 
- Effective Java 第三版——65. 接口优于反射
		Tips 书中的源代码地址:https://github.com/jbloch/effective-java-3e-source-code 注意,书中的有些代码里方法是基于Java 9 API中的,所 ... 
- Effective Java读书笔记--类和接口
		1.使类和成员的可访问性最小化不指定访问级别,就是包私有.protected = 包私有 + 子类一般private不会被访问到,如果实现了Serializable,可能会泄露.反射.final集合或 ... 
- Effective Java 12 Consider implementing Comparable
		Sort array with sorted collection construction. public class WordList { public static void main(Stri ... 
- 《Effective java》-----读书笔记
		2015年进步很小,看的书也不是很多,感觉自己都要废了,2016是沉淀的一年,在这一年中要不断学习.看书,努力提升自己!预计在2016年要看12本书,主要涉及java基础.Spring研究.java并 ... 
- Effective java读书笔记
		2015年进步很小,看的书也不是很多,感觉自己都要废了,2016是沉淀的一年,在这一年中要不断学习.看书,努力提升自己 计在16年要看12本书,主要涉及java基础.Spring研究.java并发.J ... 
- Effective Java Index
		Hi guys, I am happy to tell you that I am moving to the open source world. And Java is the 1st langu ... 
随机推荐
- 7.mongo python 库 pymongo的安装
			1.Python 中如果想要和 MongoDB 进行交互就需要借助于 PyMongo 库,在CMD中使用命令即可[注意此处是pip3,pip无法安装]: pip3 install pymongo 2. ... 
- GoldenGate实时投递数据到大数据平台(7)– Apache Hbase
			Apache Hbase安装及运行 安装hbase1.4,确保在这之前hadoop是正常运行的.设置相应的环境变量, export HADOOP_HOME=/u01/hadoop export HBA ... 
- C++ STL 顺序容器--list   + 关联容器
			list 双向链表,可以双向遍历,既指向前驱节点,又指向后继但不能随机访问任意元素,可动态增加或者减少元素,内存管理自动完成,增加任何元素都不会使迭代器失效, 删除元素时,除了指向当前被删元素的迭代器 ... 
- Docker Kubernetes 容器重启策略
			Docker Kubernetes 容器重启策略 当容器被创建时,容器会根据重启策略来进行容器重启. 支持三种策略: Always:当容器终止退出后,总是重启容器,默认策略. OnFailure:当容 ... 
- weex安装失败,按照官网步骤多次失败后成功
			在安装Weex Toolkit之前,需要确保安装了node, npm. yangfeifei:~ yff$ node -v v6.10.2 yangfeifei:~ yff$ npm -v 3.10. ... 
- 【Python66--checkbutton&】
			一.定义:Checkbutton组件用于实现是否选择的按钮 二.作用:使用Checkbutton,必须创建一个tkinter变量用于存放按钮的状态:v=IntVar() from tkinter im ... 
- 利用JS打印质数
			我爱撸码,撸码使我感到快乐!大家好,我是Counter,今天非常愉快,没有前几天的相对比较复杂的逻辑思维在里面,今天来写写,利用JS打印质数,基本上很多面试,会很经常的考到.那废话不多说,直接上代码: ... 
- 在myeclipse中使用log4j记录日志
			1.从官方网站下载 jakarta-log4j-1.2.17.tar.gz http://logging.apache.org/log4j/1.2/download.html 2.在eclipse中将 ... 
- JAVA代码覆盖率工具JaCoCo-原理篇
			JAVA代码覆盖率工具JaCoCo-原理篇 1.2 JAVA覆盖率工具介绍 1.3.3 Apache Maven方式 1.3.4 Eclipse EclDmma Plugin方式 JAVA代码覆盖率工 ... 
- Springboot解决war包放到Tomcat服务器上404的特殊情况
			Springboot解决war包放到Tomcat服务器上404的特殊情况 原文链接:https://www.cnblogs.com/blog5277/p/9330577.html 原文作者:博客园-- ... 
