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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© eternallove 中级黑马   /  2014-4-26 09:28  /  1225 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 eternallove 于 2014-4-27 09:46 编辑

我以前学过C/C++,它们都有值传递和引用传递,那JAVA中的传递都是值传递吗?有没有引用传递呢?

6 个回复

倒序浏览
java值传递与引用传递
1、对象是按引用传递的---带"="号的赋值操作
2、Java 应用程序有且仅有的一种参数传递机制,即按值传递---由"函数调用"引起的
3、按值传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本
4、按引用传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的内存地址,而不是值的副本
5、注意:String虽是对象,但永远是传值

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
二小傻 发表于 2014-4-26 10:00
java值传递与引用传递
1、对象是按引用传递的---带"="号的赋值操作
2、Java 应用程序有且仅有的一种参数传 ...

非常的Thank  You了,我明白了。。。
回复 使用道具 举报
举例说明如下:
class Demo {
        private int num;
        Demo(int num) {
                this.num = num;
        }
        int getValue(int arg){
                return num + arg;
        }
        void setDemoValue(Demo x){
                x.num = 10;
        }
        public static void main(String[] args) {
                //创建Demo类的对象d,将num设置为4
                Demo d = new Demo(4);
               
                /*
                 * 值传递举例
                 * 向getValue方法中传入一个数值15,打印结果为20
                 */
                System.out.println(d.getValue(16));//打印结果20
                //对象d所对应的num仍然为4
                System.out.println(d.num);//打印结果4

                /*
                 * 引用传递
                 * 向setDemoValue方法中传入一个Demo类的对象引用d,
                 * 在该操作中将引用d所对应的num的数值修改为10
                 */
                d.setDemoValue(d);
                //对象d所对应的num被修改为10
                System.out.println(d.num);//打印结果10
        }
}

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 赞一个!

查看全部评分

回复 使用道具 举报
爱翚 发表于 2014-4-26 15:53
举例说明如下:
class Demo {
        private int num;

谢谢,:):):):)
回复 使用道具 举报
基础类型是值传递,所有的对象都是引用传递。
回复 使用道具 举报
小歪 发表于 2014-4-26 17:59
基础类型是值传递,所有的对象都是引用传递。

:):):):)谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马