博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java值传递
阅读量:7253 次
发布时间:2019-06-29

本文共 1201 字,大约阅读时间需要 4 分钟。

hot3.png

public class TestMain {	public void test(Dog dog) {			dog.name = "wc007";		}	public static void main(String[] args ) {		Dog dog = new Dog();		int a = 10;		dog.login(a);		System.out.println(a);		dog.name = "wc";		new TestMain().test(dog);		System.out.println(dog.name);	}}
public class Dog {	String name;	public void login(int a) {		a = a  + 1;	}}10wc007

public void test(Dog dog) {

            dog.name = "wc007";
        }

    public static void main(String[] args ) {

        Dog dog = new Dog();
        int a = 10;
        dog.login(a);
        System.out.println(a);

        dog.name = "wc";

        new TestMain().test(dog);
        System.out.println(dog.name);

Dog dog = new Dog();堆内存中开辟new Dog(地址为ox001),name值为null,栈内有了Dog dog,地址指向ox001,

int a = 10,栈内存有了局部变量(局部变量随着方法的消失而消失,所以main方法结束才会消失)

dog.login(a);对象(带有对象地址的变量)调用login方法(把a = 10传进去了,栈内存有了int a =10)执行a = a + 1;得到a =11;(a = 11是局部变量随着login方法的结束而结束)

System.out.println(a);这个时候栈内存中只有int a = 10;就近原则

dog.name = "wc";变量给对象的名字重新赋值为wc;栈内存中Dog dog地址还是ox001,

 new TestMain().test(dog);new testMain对象调用test方法,并传入Dog dog变量,test方法传入的dog变量地址也是ox001,

dog.name = "wc007";重新把wc007赋值给dog对象的name,这个时候地址为ox001的对象dog里面的全局属性name值为ox007

System.out.println(dog.name);输出dog.name(dog变量指向的对象的属性)

 

转载于:https://my.oschina.net/u/3536141/blog/1068978

你可能感兴趣的文章
React Native导航器之react-navigation使用
查看>>
百度2016笔试题第一题:页面请求失败值
查看>>
实现网站图片瀑布流重点记录
查看>>
软件测试全职以及兼职平台以及薪酬报价
查看>>
Javascript:日期排班功能实现
查看>>
git push之后回滚(撤销)代码
查看>>
数组,字符串互相转化
查看>>
linux centos下配置静态ip地址
查看>>
Maven学习总结(三)——使用Maven构建项目
查看>>
Computer Vision & MultiMedia 相关国际会议汇总
查看>>
vs2008在win7系统中安装不问题
查看>>
HDU-1520 Anniversary party
查看>>
springmvc web.xml配置之 -- ContextLoaderListener
查看>>
java_数组作缓存池的不可变类实例
查看>>
webservice主流框架Axis、Axis2、XFire、CXF的比较
查看>>
mybatis输出SQL格式化
查看>>
lambda
查看>>
Master Nginx(3) - Using the Mail Module
查看>>
4、jeecg 笔记之 自定义显示按钮 (exp 属性)
查看>>
Js 手风琴效果
查看>>