美文网首页
java方法的值传递小案例

java方法的值传递小案例

作者: 新手程序员 | 来源:发表于2018-05-15 08:12 被阅读11次

package colletion;

/**

* 注意点:

* 1.每一个方法都有自己的栈内存,但是共用堆内存

* 2.方法运行结束后,对应的栈内存即销毁

*/

import java.util.ArrayList;

import java.util.Collection;

public class TestDemo {

    public static void main(String[] args) {

//main方法的栈内存存放a,s,p,c变量,同时存放a的值。而另外三个变量的值存放在堆内存中。

        int a =1;

        String s = "hello";

        Point p = new Point(1,2);

        Collection c = new ArrayList();

        c.add(p);

        test(a,s,c,p);

        System.out.println("a:"+a);

        System.out.println("s:"+s);

        System.out.println("p:"+p);

        System.out.println("c:"+c);

    }

//在test()方法的堆内存中存放变量a,s,p,c,p2。

    public static void test(int a,String s,Collection c,Point p) {

//test()栈中a的值为2。

        a = a+1;

//test()栈中s指向堆中world。

        s = "world";

//test()中p2指向堆中new Point(1,2)。

        Point p2 =p;

//堆中new Point(1,2)变为new Point(1,8)。

        p.setY(8);

//test()栈中p指向堆中new Point(3,4)。

        p = new Point(3,4);

//堆中c集合增加元素new Point(3,4)。

        c.add(p);

//test()中c集合指向空集合new ArrayList()

        c = new ArrayList();

//堆中新集合增加元素new Point(3,4)。

        c.add(p);

//堆中new Point(3,4)的值变为new Point(8,4)。

        p.setX(8);

//test()栈中p2对应的值为new Point(1,8),修改为new Point(9,8)。

        p2.setX(9);

    }

}

相关文章

  • java方法的值传递小案例

    package colletion; /** * 注意点: * 1.每一个方法都有自己的栈内存,但是共用堆内存 *...

  • Java 参数的传递

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

  • 谈谈Java的方法参数传递机制

    值传递# Java的方法参数传递是值传递!是值传递!值传递!!!重要的事情说三遍。什么是值传递?一个很简单的例子:...

  • java中的参数传递(只有值传递没有引用传递)

    Java中只有传值调用(值传递),没有传址调用(址传递或者引用传递)。所以在java方法中改变参数的值是不会改变原...

  • 解决java中的参数传递问题

    Java中只有传值调用(值传递),没有传址调用(址传递或者引用传递)。所以在java方法中改变参数的值是不会改变原...

  • Java Lambda表达式引用局部变量的原理

    规则1 Java中变量分为:基本类型变量和引用类型变量 规则2 Java方法传参只有值传递,没有引用传递,传递的值...

  • 从0开始复习java(2)

    面向对象 1、方法的参数传递机制 java里方法的参数传递方式只有一种:值传递。 2、方法的所属性 方法不能独立定...

  • JAVA是按值传递还是按引用传递

    java中对象作为参数传递给一个方法,到底是值传递,还是引用传递? String和int参数传递是按值传递还是引用...

  • Java 值传递和引用传递

    Java方法中的参数传递都是值传递,唯一区分的是基本数据类型值传递和引用类型的传递。 Java把内存分成两种,一种...

  • Java按值还是引用传参

    Java的方法参数是按值传递的 基本类型传递的是字面值,引用类型传递的是地址值。也可以理解成,基本类型按值传递,引...

网友评论

      本文标题:java方法的值传递小案例

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