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<Integer>不能写成ArrayList<int>

 

2.2:怎么把数组转为arraylist:

//法一:
ArrayList<Element> arrayList = new ArrayList<Element>(Arrays.asList(array));
//法二:
List<Element> list = Arrays.asList(array);//list固定长度列表
//法三:
Element[] array = {new Element(1), new Element(2)};
List<element> list = new ArrayList<element>(array.length);
Collections.addAll(list, array);

参考博客:

https://blog.csdn.net/Kerrwy/article/details/82421010

https://www.cnblogs.com/liushaobo/p/4423102.html