Article View: cn.bbs.comp.lang.java
Article #12531Re: java�еĴ�ֵ�ʹ�����
From: 98CS~��è~�����Կ�����
Date: Tue, 27 Jul 2004 05:31
Date: Tue, 27 Jul 2004 05:31
73 lines
4271 bytes
4271 bytes
����˵�ġ�������ָ�������ʱ�IJ���
java���õ�ʱ��ѹ��ջ�ϵ���object�����õĸ�����
������Ҫ�õ�ַ�����͵Ļ�����������ģ�
Object a = new Object(...);
a�б������new�����Ķ���ĵ�ַ��
��ô�ڵ���func(a)��ʱ��
���ݸ�func�IJ�����a,����a��һ��copy.
���copy�б����Ҳ��new��������ĵ�ַ��
�����by reference����ô���ݸ�func()��Ӧ����a,
����a��copy. ���۴�aҲ�ã���a��copyҲ�ã�java
���ݵĸ�Ͳ���һ����ַ������һ�������ǵ�ַ�Ķ���
��д���Ǹ�C��Դ�������û��дint* p,����д��int p,
����Ϊ��˵�������
java�Զ���IJ�����ȷ�����ò��������Ǻ����
ȴ�ǰ���by value���ġ�
Java In a Nutshell:
Java manipulates objects 'by reference,' but it passes object references
to methods 'by value.'" As a result, you cannot write a standard swap
method to swap objects.
Java Q&A:
Q: If Java uses the pass-by reference, why won't a swap function work?
A: 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 hol
d their original values. The method will also fail if we change the argu
ments type from int to Object, since Java passes object references by va
lue as well.
�� �� nue.bbs@bbs.sjtu.edu.cn (NUE) �Ĵ������ᵽ: ��
: �ҵ�Ȼ֪��ʲô�Dz���ѹջ��
: �����������ڽ���ν�IJ���ѹջ��ȫ���Ѿ���Ϊjava�IJ����Ǵ�ֵ������£�����Ϊѹ
: ��ջ�ϵ���object�ĸ��������ǵ�ַ��
: btw,��Ҫ��������˵����ʲô����������ô�������ܲ��ʲô�������������͡�
: �� �� xeon.bbs@bbs.nankai.edu.cn (98CS~��è~�����Կ�����) �Ĵ�����
: �ᵽ: ��: ��������������ʱ��δ��ݲ���û�㶮��
: : ������ѹջ��ʲô��˼�㶼��������Ҳû��
: : ���������������ı�Ҫ�ˡ�
--
[1;33;45m �q^�r�q^�r [37;40m
[1;33;45m @ * [37;40m
[1;33;45m �� �� �� [37m ÿ�������ҵ�С����ȥɢ�� [40m
[1;5;33;45m �� [0m[1;37;45m ����һ��һ��Ĺ�ȥ�� [40m
[1;37;45m �����piggy��� ̫�äƤ��� [40m
[m[1;31m�� ��Դ:���Ұ��Ͽ�վ nkbbs.org��[FROM: 202.108.245.163][m
Technical Details
Message-ID:
<4DOBCk$9yV@bbs.nankai.edu.cn>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!news.glorb.com!news.moat.net!ctu-peer!news.nctu.edu.tw!netnews.csie.nctu.edu.tw!maily.cic.tsinghua.edu.cn!news2.happynet.org!NanKaiShow Full Headers
Complete Article Headers
X-Google-Thread: f6cb0,a1251c832f18f12d X-Google-Attributes: gidf6cb0,public X-Google-Language: Chinese,GB Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!news.glorb.com!news.moat.net!ctu-peer!news.nctu.edu.tw!netnews.csie.nctu.edu.tw!maily.cic.tsinghua.edu.cn!news2.happynet.org!NanKai From: xeon.bbs@bbs.nankai.edu.cn (98CS~��è~�����Կ�����) Newsgroups: cn.bbs.comp.lang.java Subject: Re: java�еĴ�ֵ�ʹ����� Date: 27 Jul 2004 05:31:14 GMT Organization: �Ұ��Ͽ�վ Message-ID: <4DOBCk$9yV@bbs.nankai.edu.cn> X-Filename: Java/M.1090905454.A