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

[转]Does Java pass by reference or pass by value?

http://www.javaworld.com/javaworld/javaqa/2000-05/03-qa-0526-pass.html
Does Java pass by reference or pass by value?
Why can't you swap in Java?
By Tony
Sintes, JavaWorld.com, 05/26/00

Print
Email
Feedback
Resources
Discuss
(76)
Digg
Reddit
SlashDot
Stumble
del.icio.us
Technorati
dzone
If Java uses the pass-by reference, why
won't a swap function work?
Your question demonstrates a common error made by
Java language newcomers. Indeed, even seasoned veterans find it
difficult
to keep the terms straight.

Java does manipulate objects by reference, and
all object variables are references. However, Java doesn't pass method
arguments
by reference; it passes them by value.

Take the badSwap()
method for
example:

public void badSwap(int var1, int var2)
{
int temp = var1;
var1 = var2;
var2 = temp;
}
When badSwap()
returns, the
variables passed as arguments will still hold their original values. The
method will also fail if we change
the arguments type from int
to Object
,
since Java passes object references by value as well. Now, here is
where it gets tricky:

public void tricky(Point arg1, Point arg2)
{
arg1.x = 100;
arg1.y = 100;
Point temp = arg1;
arg1 = arg2;
arg2 = temp;
}
public static void main(String [] args)
{
Point pnt1 = new Point(0,0);
Point pnt2 = new Point(0,0);
System.out.println("X: " + pnt1.x + " Y: " +pnt1.y);
System.out.println("X: " + pnt2.x + " Y: " +pnt2.y);
System.out.println(" ");
tricky(pnt1,pnt2);
System.out.println("X: " + pnt1.x + " Y:" + pnt1.y);
System.out.println("X: " + pnt2.x + " Y: " +pnt2.y);
}
If we execute this main()
method,
we see the following ou


相关文档:

web开发的一些问题(java方向)

 1.      分页的解决方案,通用性,分页时参数丢失问题,如何解决?
      2.      Hibernate优化问题。如何优化数据库访问,使程序访问数据库更优化。
       初用HIBERNATE的人也许都遇到过性能问题,实现 ......

JAVA 动态构建树

1.       对自己的总结和理解的升华是我喜欢做的一件事,在实际项目过程中,很多地方都用到动态生成树形菜单的地方,现在就给大家讲讲如何动态生成一棵树。
2.       首先我们必须要建立树的节点模型,其实树的节点模型中往往就是我们需要存放的数据对象,很 ......

JAVA调用c++生成的DLL

    最近经常和公司做JAVA的兄弟们打交道,由于需要统加密算法,所以要求做一个加密的DLL文件供兄弟们调用,根据网上各位大虾们的经验,在加上个人在摸索过程中的体会,现在将流程以及个人心得贴上,以供以后漫漫程序生涯参考,如有不对的还请各位大力指正。
    第一步是编写java类, ......

java homework

使用java.lang.Math类,生成500个0~99的随机数,进行排序输出,并求最大值、最小值、平均值、标准差、方差、均方差;
import java.lang.Math;
import java.util.Arrays;
public class Main {
public static void main(String args[]) {
//create random
int [] data =new int[500];
double sum = 0, avg =0; ......

java错题集


正多边形中最长的对角线就是主对角线,其余的对角线就是副对角线
lang 是 language(语言) 的简写
是java中常用方法最多的包
包含常用类
 
 
 
Runnable接口,只有一个方法run()
exit(int status)
          终止当前正在运行的 Jav ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号