1 .boxing and unboxing
2 . An example for boxing and unboxing
3 .When autoboxing happen?
当原始数据类型被当做参数传到了一个参数要求是包装类的方法里
当原始数据被赋值给包装类对象
4 .When unboxing happen?
当包装类被当做参数传到了一个参数要求是原始类型的方法里
当包装类被赋值给原始数据类型
上面程序打印结果:
absolute value of -8 = 8
pi = 3.1416
5 .Some things we need care about
Integer是对象类型,可以为null,如果这个时候拆箱,会报NullPointerException异常
Integer a,b,a==b比较的是a,b的引用,而不是值。但是由于Integer默认在-128到127之间有缓存(详见Integer源码),所以在这个区间使用==和equals的结果一样。
自动装箱与拆箱有性能损耗,只有在包装类和基本类型之间出现“阻抗不匹配(impedance mismatch)”时才使用,如,当需要将一个数值放到集合里面时。对性能要求很严格的地方谨慎使用。
原始数据类型和包装类之间的界限很模糊(blur),但谁都不能消灭(eliminate)对方。
链接://www.greatytc.com/p/eaf5eef18007
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。