int和Integer的区别、包装类、基本类型和字符串之间的转换
1、int和Integer的区别
1、Integer是int的包装类,int则是java的一种基本数据类型;
2、Integer变量必须实例化后才能使用,而int变量不需要;
3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象,而int则是直接存储数据值;
4.int是java提供的8种基本数据类型之一,默认值为0,Integer默认值为null,Integer是int的封装类,可以区分出未赋值和赋值为0的区别,而int区分不了。
5、在JSP中,${name}
,如果name为int类型,未赋值,在文本框中显示0;如果name为Integer类型,未赋值,在文本框中为空白字符串。所以,int不适合作为web层的表单数据的类型。
6、另外,Integer提供了多个与整数相关的操作方法,例如,将一个字符串转换成整数Integer.parseInt(string s)
,Integer中还定义了表示整数的最大值和最小值的常量Integer.MAX_VALUE
和Integer.MIN_VALUE
。
7、泛型定义时也不支持int: 如:List list = new ArrayList();可以 而List list = new ArrayList();则不行。如果我们定义一个int类型的数,只是用来进行一些加减乘除的运算or作为参数进行传递,那么就可以直接声明为int基本数据类型,但如果要像对象一样来进行处理,那么就要用Integer来声明一个对象。
2.基本类型和包装类之间的转换
装箱:把基本类型转换成包装类,使其具有对象的性质,又可分为手动装箱和自动装箱
拆箱:将包装类转化成基本类,又可分为手动拆箱和自动拆箱