易截截图软件、单文件、免安装、纯绿色、仅160KB

头疼的java面试题之传值,传址

据本人之拙见,java传值都是传数据的副本,修改其值不会影响原来的值,传地址会影响原来的值,头疼之代码如下:

public class Test {

  public void change(int a) {
  a = a + 1;
  }
  public void change2(int[] a, int[] b) {
  a = b;
  }

  public void iter(int[] a) {
  for(int i : a) {
  System.out.print(i + " ");
  }
  }
  public static void main(String[] aaaaaa) {
  int num = 1;
  int a[] = {1,1,1};
  int b[] = {2,2,2};
  Test t = new Test();
  t.change(num);
  t.change2(a,b);
  System.out.print(num); /// num = 1
  t.iter(a); // 为什么还是 “1 1 1”??? 难道数组不是引用类型的吗?不是传地址的?????

  }
}

最后弱弱的问下各位高手,定义一个final类型的数组,为什么在程序中,其中的每个元素的值都能被改变?常量也能被改变吗?
http://topic.csdn.net/u/20080610/11/54f77de8-3fbf-44ae-87d6-a5a9de2715dd.html

定义一个final类型的数组, 为什么在程序中,其中的每个元素的值都能被改变
例如final int[] array = new int[10]; // array只是一个4字节的内存地址值, 并没有占用10个int的内存空间.
注意, 把array传给一个函数的时候, 传递的是array存储的内存地址值的副本, 并不是他所指向的10个int的那一段内存的副本.


相关问答:

java怎么连接Oracle,急啊 - Java / Java相关

private static final String URL = "jdbc:oracle:thin:@localhost:1521:orcl";
private static final String USERNAME = "sys";
private static final String PASSWORD = "s ......

execl怎么调用java程序 - C/C++ / C语言

如题,C/C++中的execl怎么调用写好的java程序,
execl("/opt/java1.5/bin/java","MyClass",NULL);
这样的不行哦。

不会.

运行java程序
找工具查看一下那个程序的命令行

搜索下:jni ......

asp 调用java写的webservice - Web 开发 / ASP

在asp里怎么调用java写的webservice方法,有很多方法
- <message name="RtPnrIn">
  <part name="bstrPnrNO" type="s:string" /> 
  <part name ......

JSP读入数据库 - Java / Java EE

我是个新手,做一个JSP网页,我要读出数据库正常,但是我要修改的时候,也就是读入的时候出现乱码,请高手告诉我怎么解决,先谢谢了。
request.setCharacterEncoding("UTF-8");

把编码统一

/**
......

高手帮帮忙 一个JAVA输出问题 - Java / Java SE

要求是输入一个数字,然后按照下面的方式输出(顺时针旋转)
比如 输入 2
则输出为
1 2 3
8 9 4
7 6 5
输入 6
则输出为
1 2 3 4 5 6
20 21 22 23 24 7
19 32 33 34 25 8
18 31 36 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号