equals和hashcode 基本类型与包装类型转换

Object提供了equals方法,目的是比较两个对象的内容是否一样。

Object实现的equals内部就是“==”比较的,所以(自己写的类)若不重写该方法是没有实际意义的。

java API中大部分类都重写了equals方法,只有自己定义的类我们在需要使用的时候必须重写它。


java中的八大基本类型跟Object是没有关系的,不能参与面向对象的开发当中。

为了解决这种问题,java中提出了拆装箱的想法。


而基本类型与包装类之间的转换:

基本类型->包装类

int i= 124;

Integer i1 = Integer.valueOf(i); 

double d = 123.123;

Double d1 = Double.valueOf(d);

注:valueOf在int时只会缓存一个字节内的重用,超出-128~127时会返回新对象。(可以查看源码)

在double时不会缓存,直接返回新对象。


包装类->基本类型

int in = i1.intValue();

double dou = d1.doubleValue();


包装类提供了一个静态方法:parseXXX(String str)可以将字符串转换为对应的基本类型数据。前提是该字符串的内容必须能正确表示基本类型可以保存的值。

String str = "123.123";

int d = Integer.parseInt(str);

syso(d);   //此处整数转小数是无法转的,会报numberformatexception.

double dou = Double.parseDouble(str);

syso(dou);   //此处是OK的


在JDK1.5时推出了一个新特性,自动拆装箱

自动拆装箱是编译器认可的特性,而非JVM认可。

当编译器在编译源代码时发现了基本类型与其对应的包装类之间相互赋值使用时,会自动补充代码完成他们之间的转换工作。
















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值