传值or传址,这是一个问题,也是一个比较简单的问题。
一般人们学习时,总喜欢把问题细节化,对于两个事物,非要追根究底,找出其不同之处。其实准确说来,传址也是一种传值,不过传的是地址的值而已,非人脑所能轻易识别,因此区别开来也是有理可循的。
关于这个话题,首先必须说明的一点就是:String只传值不传址!
值传递的一个简单例子:
public class swap { public void swap(int i,int j){ int temp=i; i=j; j=temp; } }
public class Manager { /** * 入口点函数 * @param args */ public static void main(String[] args){ swap st=new swap();//创建对象 int i=100; int j=20; System.out.println("First:i ~ j = "+i+" ~ "+j);//第一次输出 //调用方法,在changeInt中改变i的值 st.swap(i,j); System.out.println("Second:i ~ j = "+i+" ~ "+j);//第二次输出 } }
输出结果:
First:i ~ j = 100 ~ 20 Second:i ~ j = 100 ~ 20
在这个例子中,swap的作用就是将 i 和 j 的值互换,而从结果来看并未做到这点。 因为基本数据类型int传的是值。其实想要理解这个例子的话,可以将swap函数添加int返回值,返回 i ,并在此函数中输出 i ,就会发现在First和Second中间会输出一个:i = 20;这便可充分说明调用了swap(i,j);只是改变了其在class swap中的值,对Manager中的参数并无影响。
而若要证明String只传值不传址,只需定义一个String str=new String("abc");然后再定义一个类将str值赋给属性str,代码如下;
String str=new String("abc"); test2 te=new test2(str); te.print(); str="def"; System.out.println("str2 = "+str);
test2类中
String str; public test2(String str){ this.str=str; } public void print(){ System.out.println("str = "+str); }
由String传值可知结果:
str = abc str2 = def
在此不多做赘述。
址传递又称引用传递,所有用class,interface,abstract class定义的类和接口以及数组都属于引用类型。想看址传递的具体表现形式,只需自定义一个函数,然后用其创建对象,结果显而易见。举例如下:
public static void main(String[] args){ Student st1=new Student(); st1.setName("A"); Student st2=new Student(); st2.setName("B"); Student st3=new Student(); st3.setName("C"); //进行交换 st1=st2; st2=st3; st3=st1; String name=st3.getName(); System.out.println("The name of st3 now is: "+name);
结果为“The name of str3 now is: B”, 从结果可看出,st3最终指向了st2对象,此处为传址。
相关推荐
滞销楼盘问题小析.doc
小析绩效审计发展态势.doc
光伏并网微逆变器核心技术小析.pdf光伏并网微逆变器核心技术小析.pdf
光伏并网微逆变器核心技术小析.docx光伏并网微逆变器核心技术小析.docx
小析火力发电企业物流成本管理.doc
大学健美操教育的问题与路径小析.doc
美术中的信息化应用小析(全文).docx
属性约简是粗糙集理论的核心问题之一,针对求取决策表所有决策约简集的NP问题,化繁为简将问题转化为对象动态增加下的决策约简求取问题。在深入分析了可辨识矩阵中可辨识集的特点及相互关系的基础上,优化改进决策辨识...
渗透测试和安全测试入门相关,扫盲安全测试;安全事,无大小;也许你的一个提醒,可以挽回公司的巨大损失
石油IC卡在使用中的安全性及其附加价值小析,堵晶晶,,1920年,美国吉尔巴克(GILBARCO)公司生产了世界第一台机械燃油加油机;1974年,推出了世界第一台电脑加油机,有了电脑系统,加油机�
滞销楼盘问题小析DOC简洁、实用的特性,相信能够为大家利用人力、物力、财力、资源等带来许多帮助,欢迎...该文档为滞销楼盘问题小析DOC,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
唐人送别诗小析 (2003年)
对小波分析分讲解以及实例教学,可以实现,内附word说明
网站的专场设计,应该算是网页视觉设计师的必修课,应该也算是最基本功。她所需要的设计理论都是最基本,但同时也是最重要的。设计理论版本多如牛毛,我这里仅仅整理5个方面来分析网页专场设计的一些方法,本人并非...
智能家居被看作是下一个风口,但是近两年智能家居市场一直不温不火。一方面,很多智能产品并不能够抓住用户痛点,真正满足用户的需求,很多用户对此的接受度不高。另一方面,这个市场的格局还未形成, 无论是技术...
论文研究-计算约简的差别矩阵简化算法...实际应用中给出一种简化算法:一边从信息表中提取差别元素构成合取范式,一边用分配律、吸收律作逻辑公式的等价变换,直接得到最小析取范式.本章给出反例,说明该简化算法不总成立.
[原创]uc-OS-II内核小析 - uCOS-II - 电子开开发
属性约简是粗糙集理论中重要...在此基础上,构造了一种基于可区分对象集的属性约简算法,算法利用可区分对象集的集对,计算极小析取范式求解出所有的分布约简和最大分布约简。最后,利用实例分析验证了算法的有效性。