for循环对一维数组的动态赋值

new一个数组m[],for循环去赋值时
1:for(int i=0;i<m.length;i++){
m[i]=new Integer(101+i);
System.out.println(m[i]);}
2:for(int i=0;i<m.length;i++){
m[i]=101+i;
System.out.println(m[i]);}
我想知道是两种方法都可以么,有大神可以解答一下么

主要就是m[i]=new Integer(101 i);和m[i]=101 i;的区别
new 只能产生对象,Integer是int的对象类型,他是一个简单数据类型int的封装类,而int不是类对象所以不能new;顺便说一句,简单数据类型的封装类new一个对象,其值与简单数据值相等