黑马程序员技术交流社区
标题:
请问一下,这两种写法有什么不一样?
[打印本页]
作者:
逸俊逍全
时间:
2013-12-20 23:58
标题:
请问一下,这两种写法有什么不一样?
public List 方法名(){
List list=new List();
list=xx.xx();
return list;
}
public List 方法名(){
List list=null;
list=xx.xx();
return list;
}
这两种写法有什么不一样?!
作者:
黄伟财
时间:
2013-12-21 00:11
总的来说,上面的实例化了类,就是给类分配了内存空间,下面的没什么都没干,只是初始化了list,并没有分配内存
作者:
冷锋也温柔
时间:
2013-12-22 20:05
List list=new List(); 只是创建了一个list的对象,并没有对其进行赋值
List list=null;创建了一个list对象,并对其进行一个空赋值
list=xx.xx(); 这个代表的是把某某对象的某某方法的返回值赋值给list
作者:
恩恩
时间:
2013-12-22 23:46
第一个代码块,你给list开辟了一个对象空间,也就是说他已经占了一定的内存空间,但是第二个代码里面,你并没有给他开辟一个内从空间。
后面他们都被赋值了,list=xx.xx() ;内容可能一样,但是他们在内存空间的地址肯定不一样。
作者:
smileven
时间:
2013-12-23 02:46
第一个操作为list集合开辟了一个崭新的内存空间,而且list的值是null。
而且list=xx.xx.()将某对象的某操作的返回值赋值给list。如果返回值是5,那么内存总就会存在两个5。
而这两个5的内存地址不相同。
第二个操作只是声明了一个list对象,并没有为其开辟新的内存空间。
而且list=xx.xx.()将某对象的某操作的返回值的引用串给list。如果返回值是5,内存中还是只有一个5。
而且list的操作会对原来指向5的引用产生影响。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2