美文网首页
JAVA值传递与引用传递

JAVA值传递与引用传递

作者: 谈谈理想_ttlx | 来源:发表于2019-08-06 15:26 被阅读0次

回顾一下数据类型

JAVA的数据类型分为基本类型和引用类型两种。

基本类型包含 byte short int long char double boolean

引用类型包括类,接口,数组等。包装类型属于引用类型肯定都知道了,需要注意的是,String属于引用类型

基本类型是分配在栈里的,而引用类型是分配在堆里的,内存中存的是引用类型对象的引用地址。

值传递与引用传递

引用类型传递时会改变对象指向,将对象指向新的内存地址。而基本类型改变时则是直接修改该内存地址的值。

这个需要结合着JAVA内存模型来理解,后续再补充一篇内存模型的,这里贴一段代码帮助理解。

public class RefTest {

    public static void main(String[] args) {
        int a = 5;
        Integer b = 6;
        test(a, b);
    }

    static void test(int a, Integer b) {
        //创建对象 ta
        int ta = a;
        //修改栈中a的值为7,内存地址不变
        a = a + 2;
        //将ta的值也修改为7
        ta = a;
        //将栈中ta的值修改为8
        ta = ta + 1;
        //创建tb对象,tb和b拿到的引用是同一个
        Integer tb = b;
        //b指向新的引用,b此时的值为14
        b = b + ta;
        //再次将tb指向b的引用,tb的值此时修改为14
        tb = b;
        System.out.println(a);
        System.out.println(b);
        System.out.println(ta);
        System.out.println(tb);

    }
}

相关文章

  • 聊聊Java内部类

    一.磨叽磨叽Java值传递与引用传递 “在Java里面参数传递都是按值传递”即:按值传递是传递的值的拷贝,按引用传...

  • Java 与值传递

    问: 什么是值传递?什么是引用传递?为什么说 Java 中只有值传递? 一、值传递与引用传递 实参与形参: 实际参...

  • [译] Java 值传递 VS 引用传递

    Java是值传递还是引用传递一直都有争论,我们最终下个结论,Java是值传递而不是引用传递。如果Java是引用传递...

  • 自整理3 值传递和引用传递

    java的值传递和引用传递 首先,由于java没有指针机制,所有java归根究底只有值传递,没有引用传递。java...

  • Java值传递、数据加密

    值传递 Java 基本类型值传递,引用类型值传递 内存图解:

  • Java面试题疑难点

    1. java值传递和引用传递 String为什么是值传递而不是引用传递 答:String是final的

  • Java值传递

    “在Java里面参数传递都是按值传递”这句话的意思是:按值传递是传递的值的拷贝,按引用传递其实传递的是引用的地址值...

  • JAVA值传递与引用传递

    回顾一下数据类型 JAVA的数据类型分为基本类型和引用类型两种。 基本类型包含 byte short int lo...

  • Java 参数的传递

    Java 的参数是值传递,不是引用传递 Java 中只有值传递,方法按值调用(call by value)。也就是...

  • 快速区别值传递和引用传递

    复习Java知识的时候又看到值传递和引用传递的区别,然后就查询一下,结果都是Java到底是值传递还是引用传递之争,...

网友评论

      本文标题:JAVA值传递与引用传递

      本文链接:https://www.haomeiwen.com/subject/gafwdctx.html