java --> Long和long/Integer和int

java中非一切是对象,因为还有基本数据类型。

基本数据类型有对应的基本数据类型打包器,它们的基本数据类型打包器是对象。

j2se 5.0引入装箱和拆箱,它们是基本数据类型和基本数据类型打包器的关系

Long和long

Long的继承关系:

几个信息:

1、Long由final修饰,不可变

2、父类是抽象类Number

3、实现了Comparable接口,可作比较

public static Long valueOf(long l)

文档翻译:

返回表示指定的long值的Long实例。 如果不需要新的Long实例,则通常应该优先使用此方法,而不是Long(long)构造函数,

因为此方法可能通过缓存频繁请求的值来产生显着更好的空间和时间性能。 请注意,与Integer类中的相应方法不同,此方法不需要缓存特定范围内的值。

源码:

 

public static Integer valueOf(int i)

文档翻译:

 返回表示指定int值的Integer实例。 如果不需要新的Integer实例,则通常应优先使用此方法,而不是构造函数Integer(int),

因为此方法通过缓存经常请求的值可能会产生显着更好的空间和时间性能。 此方法将始终缓存-128至127(含)范围内的值,并可缓存此范围之外的其他值。

Ingeger和int:

Integer的继承关系:

与Long类似

Integer.valueOf(int i) 可缓存范围之外,可以通过命令行的形式改变上限,但是下限无法改变,源码有体现:

 note:

理解源码时,debug是最好的辅助工具之一。

猜你喜欢

转载自www.cnblogs.com/mrray1105/p/9133547.html