java String 值传递 还是引用传递

来源:互联网 发布:流程仿真软件 编辑:程序博客网 时间:2024/05/30 23:43

值传递与引用传递

最近学基础的时候,老师讲了值传递和引用传递,这个问题一直不太明白,上网查了很多资料,按照自己的理解整理了一遍,发现之前不太明白的地方基本上想明白了,如有不正确的地方,欢迎指正,谢谢。

首先要说明的是java中是没有指针的,java中只存在值传递,只存在值传递!!!  然而我们经常看到对于对象(数组,类,接口)的传递似乎有点像引用传递,可以改变对象中某个属性的值。但是不要被这个假象所蒙蔽,实际上这个传入函数的值是对象引用的拷贝,即传递的是引用的地址值,所以还是按值传递

 

 值传递

    示例:

复制代码
public class Test {    public static void changeStri(int a){        a=50;    }    public static void main(String[] args) {        int a=10;        System.out.println(a);        change(a);        System.out.println(a);    }}
复制代码

 很显然输出的 是10,10。传递的是值得一份拷贝,这份拷贝与原来的值没什么关系。

内存分析:

              

  引用传递

      示例:

复制代码
public class Test {    public static void changeString(int []a){        a[0]=5;    }    public static void main(String[] args) {        int []a={10,20};        System.out.println(a[0]);
        changeString(a);
System.out.println(a[0]); }}
复制代码

显然输出结果为10   5。实际传递的是引用的地址值。

内存分析:

            

 

 示例:

复制代码
class Emp {    public int age;}public class Test {    public static void change(Emp emp)    {        emp.age = 50;        emp = new Emp();//再创建一个对象        emp.age=100;    }        public static void main(String[] args) {        Emp emp = new Emp();        emp.age = 100;        System.out.println(emp.age);        change(emp);        System.out.println(emp.age);        System.out.println(emp.age);    }}
复制代码

输出为:100  50  50.

内存分析:

                

好的来总结下:

 对于String String的变量是通过指向内存中的一个String对象,调用方法时请注意这里是新建了一个String变量的拷贝 并不是String变量本身

 

注:如有不正确的地方欢迎指正,谢谢

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 7个月宝宝缺钙怎么办 宝宝脖子被汗淹到红了脱皮怎么办? 小儿出汗多咳嗽怎么办吃什么 牛高烧不退怎么办最好 猪体温低不吃食怎么办 小孩发烧咳嗽怎么办吃什么药 大晚上发烧39度怎么办 胃受凉了老打嗝怎么办 大人发低烧怎么办如何退烧 吃了退热药不退热怎么办 猪持续高烧不退怎么办 猪感冒了不吃食怎么办 6岁儿童发烧38度怎么办 5岁儿童发烧38度怎么办 7岁儿童发烧38度怎么办 儿童发烧到38度怎么办 4岁儿童发烧38度怎么办 9岁儿童发烧38度怎么办 5儿童发烧38度怎么办 咳嗽了20多天怎么办 嘴角烂了怎么办涂什么药 感冒发烧到39度怎么办 6岁宝宝发烧头痛怎么办 生完孩子耻骨疼怎么办 顺产底下外阴红肿伤口流脓怎么办 产后便秘怎么办什么方法最有效 一周岁宝宝拉肚怎么办 三岁宝宝拉水怎么办 喝了过期的青汁怎么办 吃了黑心的苹果怎么办 新生儿两天没拉大便怎么办 贝亲奶瓶不漏怎么办 满月婴儿吃多了怎么办 婴儿吃撑了哭闹怎么办 新生儿吃撑了怎么办啊 新生儿吃了奶粉不吃奶怎么办 新生儿不吃奶也不吃奶粉怎么办 奶瓶吸奶费力不顺畅怎么办 宝宝吃奶粉太勤怎么办 香蕉和地瓜一起吃了怎么办 贝亲奶瓶泡沫多怎么办