码迷,mamicode.com
首页 > 编程语言 > 详细

java String 之参数传递

时间:2014-06-07 15:29:35      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:c   style   class   blog   code   java   

今天忽然想到java中特殊的对象String作为参数传递的问题,于是google一下“java 中 string 引用“发现排在第一位的竟然是一个长篇大论,解释的还不清楚的文章。于是我便自己动手写下这篇博客。
Java的String作为参数传递,其实与普通对象没有本质区别。下面代码描述普通对象作为参数传递,在方法中改变对象的引用,并改变对象持有变量的值
    public static void main(String[] args) {
        
        TestObject data = new TestObject();
        System.out.print("-----"+data.getA());
        change(data);
        System.out.print("-----"+data.getA());
        
    }
    public static void change(TestObject iObject){
        iObject = new TestObject();
        iObject.setA(10);
        System.out.print("-----"+iObject.getA());
    }
    static class TestObject{
        private int a = 100;
        
        public int getA() {
            return a;
        }
        
        private void setA(int ia) {
            a = ia;
        }
    }

运行结果为:
-----100-----10-----100

结果显示传递到方法中改变iObject引用,并不会改变原始对象data的值。为什么会这样的呢?data对象作为引用赋值给了方法中的参数列表中的iObject引用,该引用指向原data对象。在方法中改变iObject引用的对象,并不会改变data引用的对象,可以把iObject理解成临时的data引用,如果改变其引用则与原data没有任何关系。
String也是一样,原String对象作为引用传递到方法中,在方法中给临时引用重新赋值,只是改变了方法中临时string引用的指向,并不会改变原对象的引用,因此原string的值不会改变。

java String 之参数传递,布布扣,bubuko.com

java String 之参数传递

标签:c   style   class   blog   code   java   

原文地址:http://blog.csdn.net/actsai/article/details/28392427

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!