java面试题解惑系列(五)——传了值还是传了引用

java面试题解惑系列(五)——传了值还是传了引用

ID:39507549

大小:73.50 KB

页数:6页

时间:2019-07-04

java面试题解惑系列(五)——传了值还是传了引用_第1页
java面试题解惑系列(五)——传了值还是传了引用_第2页
java面试题解惑系列(五)——传了值还是传了引用_第3页
java面试题解惑系列(五)——传了值还是传了引用_第4页
java面试题解惑系列(五)——传了值还是传了引用_第5页
资源描述:

《java面试题解惑系列(五)——传了值还是传了引用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、JAVA面试题解惑系列(五)——传了值还是传了引用?JAVA中的传递都是值传递吗?有没有引用传递呢?在回答这两个问题前,让我们首先来看一段代码:Java代码public class ParamTest {      // 初始值为0      protected int num = 0;        // 为方法参数重新赋值      public void change(int i) {          i = 5;      }        // 为方法参数重新赋值      public void cha

2、nge(ParamTest t) {          ParamTest tmp = new ParamTest();          tmp.num = 9;          t = tmp;      }        // 改变方法参数的值      public void add(int i) {          i += 10;      }        // 改变方法参数属性的值      public void add(ParamTest pt) {          pt.num += 20

3、;      }        public static void main(String[] args) {          ParamTest t = new ParamTest();            System.out.println("参数--基本类型");          System.out.println("原有的值:" + t.num);          // 为基本类型参数重新赋值          t.change(t.num);          System.out.print

4、ln("赋值之后:" + t.num);          // 为引用型参数重新赋值          t.change(t);          System.out.println("运算之后:" + t.num);            System.out.println();            t = new ParamTest();          System.out.println("参数--引用类型");          System.out.println("原有的值:" + t.num

5、);          // 改变基本类型参数的值          t.add(t.num);          System.out.println("赋引用后:" + t.num);          // 改变引用类型参数所指向对象的属性值          t.add(t);          System.out.println("改属性后:" + t.num);      }  }  publicclassParamTest{//初始值为0protectedintnum=0;//为方法参数重新赋值pub

6、licvoidchange(inti){i=5;}//为方法参数重新赋值publicvoidchange(ParamTestt){ParamTesttmp=newParamTest();tmp.num=9;t=tmp;}//改变方法参数的值publicvoidadd(inti){i+=10;}//改变方法参数属性的值publicvoidadd(ParamTestpt){pt.num+=20;}publicstaticvoidmain(String[]args){ParamTestt=newParamTest();Sy

7、stem.out.println("参数--基本类型");System.out.println("原有的值:"+t.num);//为基本类型参数重新赋值t.change(t.num);System.out.println("赋值之后:"+t.num);//为引用型参数重新赋值t.change(t);System.out.println("运算之后:"+t.num);System.out.println();t=newParamTest();System.out.println("参数--引用类型");System.o

8、ut.println("原有的值:"+t.num);//改变基本类型参数的值t.add(t.num);System.out.println("赋引用后:"+t.num);//改变引用类型参数所指向对象的属性值t.add(t);System.out.println("改属性后:"+t.num);}}这段代码的运行结果如下:1.参数--基本类型2.

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。