java double 和Double的区别 及hashCode的应用
来源:互联网 发布:js获取自定义属性 编辑:程序博客网 时间:2024/06/10 09:19
double是基本数据类型,Double是原始数据类型
double没有方法,Double有自己的属性和方法
double只创建引用,Double创建对象
集合类不能存放double,只能存放Double
double存放在栈中,Double存放在堆中
栈的存取速度要高于堆,另外栈中的数据可以共享
如:
double a = 0;
double b = 0;
不会创建对象,只会建立两个引用,同时指向变量“0”(栈数据共享)
而
Double a = new Double(0);
Double b = new Double(0);
会创建两个对象,即使对象所代表的值一样(堆数据不共享)
所以从效率来讲用double合适,而Double提供的属性和方法会使操作各种操作更加方便和灵活
例如:
package inheritance;import java.time.*;/** * * @author cmx */public class hashCode { public static void main(String[] args) { /** * hashCode对象的test */ String n="hello"; double salary=12.0; Double salary1=new Double(salary); //有这个就可以运行 LocalDate hireDay= LocalDate.now(); //而不是 LocalDate hireDay=new LocalDate(); System.out.println(n.hashCode()); System.out.println(salary1.hashCode()); System.out.println(hireDay.hashCode()); }}
对比与以下就不可以运行
package inheritance;import java.time.*;/** * * @author cmx */public class hashCode { public static void main(String[] args) { /** * hashCode对象的test */ String n="hello"; double salary=12.0; // Double salary1=new Double(salary); 注意 LocalDate hireDay= LocalDate.now(); //而不是 LocalDate hireDay=new LocalDate(); System.out.println(n.hashCode()); System.out.println(salary.hashCode()); //注意salary而不是salary1 System.out.println(hireDay.hashCode()); }}
区别在于:double salary; 中salary不是对象
而Double salary1=new Double(salary);构造了一个对象
hashCode只能做用于对象
将double类型的数值的hashCode方法,除了将double转为Double,还可以采用以下方法:
Double.hashCode(double value)
例如:
package inheritance;import java.time.*;/** * * @author cmx */public class hashCode { public static void main(String[] args) { /** * Double.hashCode */ double salary=12.0; System.out.println(Double.hashCode(salary)); /** * run:1076363264成功构建 (总时间: 0 秒) */ }}
阅读全文
0 0
- java double 和Double的区别 及hashCode的应用
- Double和double的区别
- double和Double的区别
- C# 中 Double 和 Java 中 Double 的区别
- java的float和double的区别
- Java中double和float的区别
- java中float和double的区别
- java中float 和double的区别
- double和float的区别
- double和float的区别
- double和float的区别
- float 和 double 的区别
- float和double的区别
- Java的float和double
- JAVA中Double与double(Integer&int)之间的区别
- JAVA中Double与double(Integer&int)之间的区别
- 关于Java double取值范围及Double的MAX_VALUE和MIN_VALUE的总结
- Java中的long与double的区别
- 剑指offer-对称的二叉树
- 第八章 Testing Concurrent Applications(测试并发应用)【上】
- zookeeper搭建
- java学习笔记之面向接口编程
- Python strip函数和split函数
- java double 和Double的区别 及hashCode的应用
- python实现-提取不重复的整数
- 传统神经网络
- 已阅书籍,知识积累。
- 在O(1)时间删除链表结点
- C#基础-009 逻辑运算
- java设计模式六大原则之场景应用分析
- 点击新闻条目跳转viewpager+photoview显示图片
- 【python图像处理】gif动态图的解析与合成