A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© winkyqin 中级黑马   /  2014-10-19 14:25  /  1219 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

虽然百度上有很多的引用调用和值调用的详细解释。但是个人的理解总是感觉懵懵懂懂。之前面试的时候遇到过考值调用和引用调用。看着函数里的嵌套,我就是觉得方法本身执行完,变量本身也就是变了的啊。
但是实际编写代码之后,答案却又不是自己想象当中的。求赐教!
        private void addTest(int a){
                a += a;
                System.out.println("addTest方法中的a="+a);
        }
        public static void main(String[] args) {
                TestDemo01 t = new TestDemo01();
                int a = 1;
                t.addTest(a)
                System.out.println("main方法执行中的a="+a);
        }
        输出结果是:addTest方法中的a=2

                             main方法执行中的a=1(为什么这里的main方法执行后输出结果不是2呢?我就觉着这也应该是2的!)




评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 淡定

查看全部评分

5 个回复

倒序浏览
基本类型是以值传递的,相当于是吧值复制一份到方法里运算,对原来的变量没有影响。引用类型的变量传递的是地址,在方法中改变了变量的值,其实改变的是那个地址所指向的堆内存中的值。

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 赞一个!

查看全部评分

回复 使用道具 举报
nyk 中级黑马 2014-10-19 14:36:12
藤椅
Java的方法中不管是基本类型值,还是引用类型值,都是值传递
回复 使用道具 举报
(づ ̄_3 ̄)づ 发表于 2014-10-19 14:32
基本类型是以值传递的,相当于是吧值复制一份到方法里运算,对原来的变量没有影响。引用类型的变量传递的是 ...

我能理解说就是没有改变这个值,但是看到方法时 ,我就觉得函数进行了操作,变量增加了。
回复 使用道具 举报
winkyqin 发表于 2014-10-19 15:10
我能理解说就是没有改变这个值,但是看到方法时 ,我就觉得函数进行了操作,变量增加了。 ...

http://bbs.itheima.com/thread-145139-1-1.html初学时我也糊涂
回复 使用道具 举报
杨佳名 发表于 2014-10-19 15:15
http://bbs.itheima.com/thread-145139-1-1.html初学时我也糊涂

好像有那么点开窍了,;P
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马