首页 > 试题广场 >

下面java代码的输出为?

[单选题]
下面java代码的输出为?
import java.util.HashMap;
import java.util.Iterator;
public class Main {
  public static void main(String[] args) {
    HashMap map = new HashMap<Integer, Integer>();
    map.put(1, "wangyi");
    changeHashMap(map);
    for (Iterator it = map.keySet().iterator(); it.hasNext();) {
      Object key = it.next();
      System.out.println(key + "=" + map.get(key));
    }
  }
  static void changeHashMap(HashMap map) {
    map = new HashMap<Integer, String>();
    map.put(1, "163");
  }
}

  • 1=wangyi
  • 1=163
  • 1=
  • 编译出错
java只有值传递,这里形参的map,实际只是main方法map内存地址的一份拷贝,但是在changeHashMap()方法里,给形参map用的是new HashMap(),所以是在堆内存里面新创建了一个map对象,和main方法里面创建的对象毫无关系。如果这里没有14行代码,则应该选B.
发表于 2024-11-22 23:05:18 回复(0)