您的位置:首页 > 编程语言 > Java开发

牛客网Java刷题知识点之自动拆装箱

2017-08-22 21:55 246 查看
  不多说,直接上干货!

https://www.nowcoder.com/ta/review-java/review?query=&asc=true&order=&page=5




Java语言支持的8种基本数据类型是:
byte
short
int
long
float
double
boolean
char

  自动装箱是Java编译器在基本数据类型和对应的对象包装类型之间做的一个转化。比如:把int转化成Integer,double转化成Double,等等。反之就是自动拆箱。
  Java支持的数据类型包括两种:一种是基本数据类型,包含byte,char,short, boolean ,int , long, float,double;另一种是引用类型:如String等,其实是对象的引用,JVM中虚拟栈中存的是对象的地址,创建的对象实质在堆中,通过地址来找到堆中的对象的过程,即为引用类型。
  自动装箱就是Java编译器在基本数据类型和对应的对象包装类型间的转化,即int转化为Integer。
  [b]自动拆箱[/b]是Integer调用其方法将其转化为int的过程。

  题目链接

https://www.nowcoder.com/profile/4002626/myFollowings/detail/3200810




1、Integer有三种创建方式:
  Integer i1 = 59;
  Integer i2 = Integer.valueOf(59);
  Integer i3 = new Integer(59);

2、如果一个Integer类型的数和int类型的数相比(==),那么,由于会自动拆箱,Integer会拆箱为int型,所以,只要数值相等,则这个Integer就和int型的数字相等,不管这个Integer是以何种方式创建的。

package Test;

public class IntegerTest {

public static void main(String[] args) {
Integer i1 = 59;
Integer i2 = Integer.valueOf(59);
Integer i3 = new Integer(59);
int i4 = 59;

//只要是和int类型的比较,不管Integer如何创建,只要满足数值相等,就为true,因为会自动拆箱
System.out.println(i1==i4);//true
System.out.println(i2==i4);//true
System.out.println(i3==i4);//true

//只要是new Integer,并且比较的不是int型,那么,一定不相等
System.out.println(i2==i3);//false
System.out.println(i1==i3); //false

//如果涉及到Integer.valueOf这个方法,那么,只要记住,
// 如果 Integer i1 = 59,这个值在-128到127范围内,则true
// 否则,false
System.out.println(i1==i2); //true
Integer i7 = 129;
Integer i8 = Integer.valueOf(129);
System.out.println(i7==i8);//false

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐