java包装类
2018-08-21 05:31:42来源:博客园 阅读 ()
1.ValueOf和强转的区别?
Case1: 需要强调的是String.valueOf()方法,当参数为类型是object,且值时null的时候他的处理方式
public static String valueOf(Object obj) { return (obj == null) ? "null" : obj.toString(); // 如果object为null会得到字符串’null’,程序不报错但逻辑出错,所以这时要使用强转 }
Case2: 基本包装类型(Long,Integer等)的valueOf(Object)的处理和String不一样,Object是null就返回null而不是’null’
总结:遇到Object转String 尽量强转
遇到Object转基本包装类型时,最好强转.如果需要可以使用instanceOf判断是否属于改类型.
2.包装类型的拆装箱
装箱:基本类型转换成包装类型.拆箱:包装类型转换成基本类型
在装箱的时候自动调用的是Integer的valueOf(int)方法。而在拆箱的时候自动调用的是Integer的intValue方法,其他的包装类类似
3.包装类型的==判断
1.首先创建将包装类型时会调用valueOf()方法.
例如 Integer i = 100; 等价于Integer.valueOf(i);
★要知到Integer包装类中有一个IntegerCache静态类,虚拟机加载这个Integer对象就会将[-128,127]的值存储在Integer cache[]中
2,valueOf方法先判断int值是否在IntegerCache缓存中,如果在则返回缓存池的数据,如果不在则返回Integer对象
所以 Integer x = 200; Integer y = 200; y == x 为false;
特殊情况
1.Int x = 100; Integer y = 100 ; x == y 为true
原因 == 只能用在数值类型判断或者对象类型判断
数值判断,判断值是否相等.对象判断,判断地址是否一致.
如果是一个数值,一个数值包装类型,则会对包装类进行拆箱,在进行值判断.
2.如果包装类型进行equals进行比较时,他会先进行类型判断,如果类型不一致直接返回false,不会继续内容判断
Integer x = 100; Short s = 100; x.equlas(s); 值为false
资料来源于网络,如有侵权联系删除(^^ゞ!
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash