1:Integer和int的区别
int 是八大基本数据类型之一(byte,char,short,int,long,float,double,boolean),初始值为0;
Integer 是 类(int 包装类),初始值null。
Integer的初始化一般为Integer a=12;或者Integer b=new Integer(12)。这两个虽然值一样(a==b,为true),但是设置自动拆箱装箱的概念。
自动装箱就是Integer.valueOf(int i);自动拆箱就是 i.intValue()。
1.1 自动装箱
Integer a=12;反编译后为: Integer a = Integer.valueOf(
12
);
这是基本数据类型的自动装箱,12是基本数据类型,然后被解析成Integer类。
这里有个tips:
Integer a=12; Integer b=128; int i=12; int j=128;
a==i(true); b==j(false)
两个Integer类,他们比较应该是用equals(),这里用==比较的是地址,但是Integer >= -128 并且 Integer<= 127 的时候,第一次声明会将 Integer的值放入缓存中,第二次直接取缓存里面的数据,而不是重新创建一个Ingeter 对象。
1.2 自动拆箱
Integer a =
new
Integer(
128
);
int
m = a;
反编译后:
Integer a =
new
Integer(
128
);
int
m = a.intValue();
下面这篇大神博客的例子解析的很好。
参考博客:
https://blog.csdn.net/teacher_lee_zzsxt/article/details/79230501
2: Arrays、list、ArrayList的区别
2.1
List是接口,ArrayList是用一个数组实现的List类。
ArrayList是自动扩容的Arrays。有add().remove()这样的方法。
ArrayList容量可以动态增长,但牺牲效率;Array([])高效,但是容量固定无法改变。
Java中提供了Arrays类协助这几个操作:sort(),binarySearch(),equals(),fill(),asList().
Java中提供了ArrayList类协助这几个操作:如Index、IndexOf、Contains、Sort、Add、AddRange、Insert、InsertRange。
ArrayList相比于Arrays少了[ ]操作,而是利用get(i)配合索引值将它们取出。
ArrayList的size()增长方式:初始化长度为10,一段超过1.5倍自动扩容。arr.minCapacity=arr.minCapacity+arr.minCapacity/2;
ArrayList
2.2:怎么把数组转为arraylist:
//法一:
ArrayList arrayList = new ArrayList(Arrays.asList(array));
//法二:
List list = Arrays.asList(array);//list固定长度列表
//法三:
Element[] array = {new Element(1), new Element(2)};
List list = new ArrayList(array.length);
Collections.addAll(list, array);
参考博客:
https://blog.csdn.net/Kerrwy/article/details/82421010
https://www.cnblogs.com/liushaobo/p/4423102.html