Java中的int和Integer的区别
2017-01-08 01:46
267 查看
Java中数据类型可以分基本数据类型和引用数据类型。
而int是基本数据类型,Integer是引用数据类型,也称Integer是int的分装类。八种基本数据类型都有其对应的封装类: byte(Byte), short(Short) , int(Integer),long(Long),boolean(Boolean) ,char(Character),float(Float),
double(Double)
下面我们看下代码:
从上面的代码可以得出的结论,int类型默认的值是0,而Interger默认的值是null。
他们默认的值我们从一个例子中去理解,可以理解为两个学生考试成绩的表达情况,一个学生没有考试他的成绩可以理解为Integer的默认值。另外一个学生考试得0分他的成绩表达的方式就可以理解为int类型的默认值。所以这两种情况是完全不一样的。
区别:
1. 初始化:int i=1; Integer i=new Integer(1); 也就是基本数据类型而引用类型初始化的差异。
2. Integer类型用在数组中容易导致Java.lang.NullPointerException的情况。空指针异常发生的原因是对象是空的,我们却调用他的属性和方法,就会导致空指针异常。
第二个区别是大家需要多注意的地方。
而int是基本数据类型,Integer是引用数据类型,也称Integer是int的分装类。八种基本数据类型都有其对应的封装类: byte(Byte), short(Short) , int(Integer),long(Long),boolean(Boolean) ,char(Character),float(Float),
double(Double)
下面我们看下代码:
int[] a=new int[5]; Integer[] b=new Integer[5]; System.out.println(a[0]); System.out.println(b[0]); 得到的结果是: 0 null
从上面的代码可以得出的结论,int类型默认的值是0,而Interger默认的值是null。
他们默认的值我们从一个例子中去理解,可以理解为两个学生考试成绩的表达情况,一个学生没有考试他的成绩可以理解为Integer的默认值。另外一个学生考试得0分他的成绩表达的方式就可以理解为int类型的默认值。所以这两种情况是完全不一样的。
区别:
1. 初始化:int i=1; Integer i=new Integer(1); 也就是基本数据类型而引用类型初始化的差异。
2. Integer类型用在数组中容易导致Java.lang.NullPointerException的情况。空指针异常发生的原因是对象是空的,我们却调用他的属性和方法,就会导致空指针异常。
我们看代码来理解下第二种情况: Student.java public class Student { String name; int age; } StudentBiz.java public class StudentBiz { public void biz(){ Student[] student=new Student[1]; //student[0]=new String(); //创建对象,将对象赋值给数组元素 System.out.println(students[0].name); } public static void main(String[] args) { new StudentBiz().biz(); } } 运行得到的就会是: Exception in thread "main" java.lang.NullPointerException... 上面的代码是将Student类的对象来做数组的元素,但是我们的代码没有创建对象。 可能读者会误认为出现异常是因为我的数组元素没有赋值,其实不是。原因就是因为 创建对象。 出现的这样的异常情况(只要是引用类型作为数组的元素,都必须要创建对象, 将对象作为数组的元素,比如:Integer,String,以及上面代码中的自定义类 这些都是引用数据类型,所以特别要避免这样的错误发生)。
第二个区别是大家需要多注意的地方。
相关文章推荐
- java中int和integer的区别
- Java各种数据类型详细介绍及其int与Integer的区别
- Java中int 和 Integer 的区别
- Java中int和Integer的区别
- Java中int和Integer的区别详解
- JAVA中Double与double(Integer&int)之间的区别
- Java中int和Integer的区别
- Java中int和Integer的区别详解
- Java int和integer的区别
- Java中integer和int的区别
- Java中int和Integer的区别
- Java中int与Integer的区别 详解
- java int与integer的区别
- Java中int和Integer的区别
- 第2章 Java编程基础——FAQ2.11 int和Integer都可以作为整数类型, 那么它们有什么区别?
- Java中int和Integer的区别
- Java中int和Integer的区别详解
- Java中int和Integer的区别
- java 中int和Integer的区别
- Java中int和Integer的区别