class StrInt
{
/*
Java中这样写:
public static int[] ByNew()
{
int[] nums= new int[] {
1,2,3
};
return nums;
}
当然没问题,new出来的数组不用担心函数结束后内存被释放
但是如果这样写呢:
public static int[] ByStaticInit()
{
int nums[] = { 4,5,6};
return nums;
}
我担心数组存放在栈内存,函数结束后内存被释放,不知道是不是这样?
两者应该是没区别,编译器自动处理掉,有兴趣,可以自己用javap反编译去查看伪代码
这个跟 String str = "abcde"; 和 String str = new String("abcde");有区别
类似的 Integer num = 15 和 Integer num = new Integer(15); 也有区别
这两个是引用类型,而int是基本类型
*/
public static Integer ByNew()
{
Integer num = new Integer(15);
return num;
}
public static Integer NotByNew()
{
Integer num = 15;
return num;
}
public static void main(String[] s)
{
Integer numi1 = 15;
Integer numi2 = 15;
Integer numi3 = new Integer(15);
if(numi1==numi2)
System.out.println("numi1==numi2");
else
System.out.println("numi1!=numi2");
if(numi1==numi3)
System.out.println("numi1==numi3");
else
System.out.println("numi1!=numi3");
Integer numi4 =ByNew();
Integer numi5 =NotByNew();
System.out.println(numi4.intValue());
System.out.println(numi5.intValue());
}
}
/*
>java StrInt
numi1==numi2
numi1!=numi3
15
15
*/