`
nicegege
  • 浏览: 589684 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Double类型大小比较--坑爹的java自动拆箱机制

阅读更多

java5以上版本支持了基本数据类型和基本数据类型对象的自动拆箱和装箱。在java7版本中,我要比较2个Double类型的大小值,发现2个值相等,使用==符号比较的时候,返回false。数据类型声明为double类型的时候,返回true。

public class DoubleTest {

	public static void main(String[] args) {
		double d1=0.8900000000000006;
		double d2=0.8900000000000006;
		System.out.println(d1==d2);
				
		Double d_1=0.8900000000000006;
		Double d_2=0.8900000000000006;
		System.out.println(d_1==d_2);
	}

}

 结果

true
false

扩展:

public class DoubleTest {

	public static void main(String[] args) {
		double d1=0.8900000000000006;
		double d2=0.8900000000000006;
		System.out.println(d1==d2); //返回结果true
				
		Double d_1=0.8900000000000006;
		Double d_2=0.8900000000000006;
		System.out.println(d_1==d_2);//返回结果false
		System.out.println(d_1==0.8900000000000006);//返回结果true
		
		
		Integer a1=1;
		Integer a2=1;
		System.out.println(a1==a2);//返回结果true
		
		Float f1=1f;
		Float f2=1f;
		System.out.println(f1==f2);//返回结果false
		
		Short s1=1;
		Short s2=1;
		System.out.println(s1==s2);//返回结果true
		
		Byte b1=2;
		Byte b2=2;
		System.out.println(b1==b2);//返回结果true
		
		char c1='a';
		char c2='a';
		System.out.println(c1==c2);//返回结果true
		
		Long l1=11111l;
		Long l2=11111l;
		System.out.println(l1==l2);//返回结果false
	}

}

 

 总结:没有自动拆箱和装箱,对象类型的Double的==比较,是对象引用的比较。Integer,Short,Byte,char的比较返回结果是ture,Long,Float,Double返回结果是false。

 

分享到:
评论

相关推荐

    test2_JavaDouble类型比较大小_java编程_

    标题"test2_JavaDouble类型比较大小_java编程_"提示我们关注的是Java中`Double`类型的比较操作。通常,我们可能会像处理整数那样直接使用`>`或`来比较两个`Double`值,例如`double a = 0.1; double b = 0.2; if (a +...

    JAVA装箱拆箱(很详细、易于理解)

    Java中的装箱和拆箱是面向对象编程中的一个重要概念,主要涉及到Java的自动类型转换机制。装箱是指将基本数据类型(如int、char、boolean等)转换为对应的包装器类对象,而拆箱则是相反的过程,即把包装器类的对象...

    Java中的自动装箱与拆箱Java开发Java经验技巧共6

    在Java编程语言中,自动装箱(Autoboxing)和自动拆箱(Unboxing)是两个重要的特性,它们简化了基本类型(如int、double等)与对应的包装类(如Integer、Double等)之间的转换过程。这些特性是在Java 5引入的,极大...

    java装拆箱.ppt

    Java装箱和拆箱是Java...在实际编程中,理解并熟练掌握装箱和拆箱机制对于编写高效、健壮的Java代码至关重要。合理地利用自动装拆箱可以简化代码,提高可读性,但在性能敏感的场景下,需要谨慎考虑装拆箱操作的使用。

    Java中的自动装箱与拆箱:深入理解基本数据类型与对象的转换

    自动装箱和拆箱的实现依赖于Java中的特殊机制。每个包装类都包含一个名为`value`的私有成员变量,用于存储基本数据类型的值。例如,在`Integer`类中,有一个名为`value`的`int`类型成员变量。 - **自动装箱实现**:...

    java编程中自动拆箱与自动装箱详解

    Java编程中自动拆箱与自动装箱详解 ...自动装箱和自动拆箱是Java编程中重要的数据类型转换机制,可以简化代码,提高开发效率。但是,需要注意自动装箱和自动拆箱的应用场景和注意事项,以确保程序的正确性和性能。

    Java软件开发实战 Java基础与案例开发详解 8-3 装箱和拆箱 共4页.pdf

    装箱和拆箱就是Java提供的一种自动转换机制,用于在基本数据类型和其对应的包装类之间进行转换。 #### 二、包装类的概念 **包装类**是为了实现面向对象编程中的“一切皆对象”思想而存在的。在Java中,每种基本...

    java自动装箱拆箱深入剖析

    Java中的自动装箱和拆箱是自J2SE 5.0版本引入的特性,它极大地简化了基本数据类型与其对应的包装类之间的转换过程。基本数据类型包括int、double、boolean等,而包装类如Integer、Double和Boolean分别对应这些基本...

    Java 自动转换的资源

    Java 自动转换是Java编程语言中的一个重要特性,它涉及到类型转换、自动装箱与拆箱、数据类型提升等多个方面。在Java中,自动转换极大地方便了开发人员处理不同类型的数据,提高了代码的可读性和效率。以下是关于...

    Java中的自动装箱和拆箱是什么?它们有什么作用?(java面试题附答案).txt

    **自动装箱**指的是将基本数据类型自动转换为对应的包装类对象的过程。例如,将`int`类型转换为`Integer`对象。这一过程在后台由Java编译器完成,无需开发者显式调用`Integer.valueOf()`方法。 **自动拆箱**则是...

    《深入理解java虚拟机》自动装箱拆箱实例.doc

    在Java中,自动装箱是指将基本数据类型自动转换为对应的包装类对象的过程,而自动拆箱则是指将包装类对象自动转换为基本数据类型的逆过程。这一特性自Java 5起引入,极大地简化了开发者的编程工作。 #### 基本数据...

    Java中的自动装箱与拆箱_.docx

    在Java编程语言中,自动装箱(Autoboxing)和自动拆箱(Unboxing)是从Java 1.5版本开始引入的一项特性,其目的是简化原始类型(Primitive Types)与它们对应的包装类(Wrapper Classes)之间的转换过程。...

    Java中自动装箱、拆箱引起的耗时详解

    自动拆箱,就是Java自动将封装器(对象)类型转换成基本类型的过程,如将Integer对象转换成int类型值,这个过程叫做拆箱。 自动装箱和拆箱的示例 自动装箱示例: int a = 3; Integer b = a; 自动拆箱示例: ...

    Java 精确计算-double-float-String

    标题中的"Java 精确计算 - double-float-String"指向的是Java中处理浮点数(double和float)以及字符串表示的数值时可能遇到的精度问题,以及如何通过特定方法实现精确计算。描述中提到的链接指向了一个具体的博客...

    面试---1. Java&设计模式.pdf

    - Java规范规定,char类型采用UTF-16编码,每个字符占用16位(2字节),String类型也是UTF-16编码的序列。`String.getBytes()`方法用于将String的内码转换为指定的外码,可以根据需求指定不同的编码格式。 #### 五...

    计算机后端-Java-图解java设计模式034 单例(DoubleC.avi

    计算机后端-Java-图解java设计模式034 单例(DoubleC.avi

    JAVA类型转换.pdf

    - 自动装箱是指基本类型自动转换成对应的包装类。 - 自动拆箱是指包装类自动转换成对应的基本类型。 9. ASCII值的使用: - Java中的char类型存储的是一个16位的Unicode字符。 - 任何字符都可以通过它的ASCII值...

    详解Java 自动装箱与拆箱的实现原理

    Java自动装箱和拆箱的实现原理是 Java语言的一个重要特性,它使得开发者可以更加方便地使用原始类型和封装类之间的转换,但是同时也容易引发一些疑惑和错误。通过了解自动装箱和拆箱的实现原理,我们可以更好地使用...

    Java Double 精度问题总结

    在Java编程语言中,`double` 类型是一种用于表示64位浮点数的原始数据类型。虽然 `double` 提供了相对较高的精度,但在涉及精确数学运算(特别是涉及到小数值)时,由于其内部采用二进制浮点数格式存储,仍会出现...

    面向对象程序设计(Java)- 实验二:Java类与对象实践教程

    - 定义成员变量:账户ID(静态的int类型)、储户姓名(String类型)、开户时间(String类型,格式为年-月-日)和存款余额(double类型)。 - 定义成员方法: - 构造方法:创建新账户时自动生成账户ID,接受设定的...

Global site tag (gtag.js) - Google Analytics