24H免费课程咨询  TEL:13401595960   QQ:1870218756  微信:13401595960(李老师)

东方博宜

网站首页 > 软件开发资讯 > Java开发

什么是Java的值传递?

2017-08-20 11:43:13 东方博宜 阅读

Java的值传递

例子:

 

/**

 * 游戏人物类

 */

public class Player {

 

         public int m;

        

         public static void changeX(int x){

                   x++;

         }

        

         public static void changeM(Player p){

                   p.m++;

         }

        

         public static void main(String[] args) {

                   int x = 1;

                   changeX(x);

                   System.out.println(x);

                  

                   Player p = new Player();

                   p.m = 1;

                   changeM(p);

                   System.out.println(p.m);

         }

}

 图片.png

注意:

AJava中简单数据类型(整数、小数、字符、布尔)存放在栈内存中,对象存放在堆内存中,在栈中存放的是对象在堆里面的地址!

BJava中每个方法的运行会生成一个独立的方法栈来存放该方法运行过程中需要定义的变量!

 

总结:Java的值传递本质上是值拷贝的过程,如果栈中是简单类型,则将简单类型的值拷贝过去,如果栈中存储的是地址,则将地址拷贝过去!

 


Powered by 东方博宜教育咨询江苏有限公司  ©2008-2017 www.czos.cn