A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 经济 中级黑马   /  2015-6-8 10:54  /  664 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package com.dyn.itheima;
import java.util.ArrayList;
public class Test {
public static void main(String args[]) {
  ArrayList<Integer> list = new ArrayList<Integer>();
  list.add(12);
  list.add(44);
  list.add(10);
  
  change(list);
  
  System.out.println(list);
}
private static void change(ArrayList<Integer> list) {
  // TODO Auto-generated method stub
  list = null;
}
}

最终list,为什么不为null,求大神帮助,

10 个回复

倒序浏览
java中只有值传递
private static void change(ArrayList<Integer> list) {
  // TODO Auto-generated method stub
  list = null;
}
你这个方法并没有改变list 本身
回复 使用道具 举报
如果你要非要把list 设置为null 的话 可以这样写
ArrayList<Integer> list = new ArrayList<Integer>();
                  list.add(12);
                  list.add(44);
                  list.add(10);
                  
                  list=null;
                  
                  System.out.println(list);
回复 使用道具 举报
qq10763582 发表于 2015-6-8 11:59
java中只有值传递
private static void change(ArrayList list) {
  // TODO Auto-generated method stub

我没听错吧,java中只有值传递?
回复 使用道具 举报
qq10763582 发表于 2015-6-8 12:01
如果你要非要把list 设置为null 的话 可以这样写
ArrayList list = new ArrayList();
                  list.add(12);

java中存在引用传递
回复 使用道具 举报
呵呵,我多说也没有用,你百度一下关于java的一个参数传递的问题!你自己就明白了。如果你真的证明我错了,麻烦给我个回复,我也是是新手,我学习学习
回复 使用道具 举报
qq10763582 发表于 2015-6-9 15:47
呵呵,我多说也没有用,你百度一下关于java的一个参数传递的问题!你自己就明白了。如果你真的证明我错了, ...

应该是你记错了,值传递和引用传递的区别,我记得当初老师是当重点讲的,
回复 使用道具 举报
是值传递.
只是基本类型传递的是值,对象传递的是他们的地址

change(ArrayList<Integer> list) 这个方法中的list和主函数中的list不是同一个
一个是形参一个是实参
你对list = null 只是把方法中的list为空,但是主函数中的list还是指向这个地址的
回复 使用道具 举报
半月 发表于 2015-6-9 16:14
是值传递.
只是基本类型传递的是值,对象传递的是他们的地址

list传递的不是地址吗?
回复 使用道具 举报
是啊,对象作为一个参数被传递到方法中时,参数的值就是该对象的引用。

但是方法中的list和main中的list是不一样的
或者你把private static void change(ArrayList<Integer> list) 中的list改成其他名字看起来会直观点
回复 使用道具 举报
半月 发表于 2015-6-9 16:33
是啊,对象作为一个参数被传递到方法中时,参数的值就是该对象的引用。

但是方法中的list和main中的list是 ...

晓得了,Thanks,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马