Java到底是按址传送还是按值传送

本文探讨了Java中数据传递的机制,明确指出Java并非全按址传送,而是基本类型按值传递,对象、数组等复杂类型按引用传递。通过具体示例解释了这一概念,并强调了引用与指针的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天看了会关于java的书,遇到了一个问题,那就是java到底是怎么来传递数据呢?

注意:这只是个人观点,欢迎指正。

首先我认为,java全都是"按址传送"这种说法是完全错误的,java是没有指针的,那么有人就会问,java不是有引用吗? 请不要混淆,所谓引用,更像是一种遥控器,而你的对象就好比电视,例如:

String s;

String s =new String("奥利给!");

当你输出s你会报错,因为他只是一个引用,并非对象,你通过s这个引用指向String的对象,而指针(我并不是特别了解指针,具体的就看看别的大佬的播客吧)更加危险,也更加强大,直接操控的底层地址。

回归正文,例子:

 public void tes2(){
        int t1=0;
        int [] t2={12,22,32};

       test(t1,t2);

        System.out.println(t1);
        System.out.println(t2[0]);
    }


    public static void test(int n,int[] t)

    {

        n = 0;

        t[0] = 123;

    }

输出结果为:

0
123

t1结果没有变化,数组确有变化,我查阅相关资料发现,八个基本类型是按值传递,对象,数组,抽象类,接口等复杂型类型按址传送.就不一一举例子了,这东西知道就比不知道强,就当小知识点,记住了就好了。

以上仅代表个人观点,如有差错,多多赐教

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值