笔记_java_review_7_参数传递

博客围绕Java的参数传递展开,虽内容仅提及‘参数传递’,但可知重点在于此信息技术领域的关键知识,能为开发者了解Java参数传递机制提供基础信息。

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

参数传递


package com.mgg.review;

/**
 *参数传递分为两种
 * 1、基本类型参数传递
 * 2、对象类型参数传递
 */
public class Demo7_PassParameter {
    public static void main(String[] args) {
        Demo7_PassParameter d = new Demo7_PassParameter();
        //基本类型
        //大致过程可以这样理解:当创建了变量a时,在内存中开辟了一个空间来存储变量a的值“1”
        //当把a传到change_1中时,参数x在内存中又开辟了一个空间来存储传过来值“1”,这样的话参数x和变量a相当于两个没啥关系的东西
        //他们唯一的一个关系就是a把值“1”给了x,over
        //用一种比较容易理解的方式吧:int a = 1;(现在定义了变量a) int x; x=a;(然后把a的值给了x),end
        int a = 1;
        d.change_1(a);
        System.out.println("此时a的值为"+a);
        //对象类型
        //对象类型其实跟基本类型原理差不多,但是区别在于,基本类型开辟的空间里面存储的是一个值,一个实际的值
        //虽然对象类型开辟的空间中存储的也是“值”,但是这个“值”不是实际的值,而是另外一个空间的地址,类似c中的指针吧
        //真正的值存储在“值”所指向的空间,而s和x改变的都是“值”所指向的空间的值,而s和x的“值”是都没变的
        //所以对“值”指向的空间的值做出最后改变的x决定了输出的值
        //如果令change_2中的x=new xxx();那么这时候x所指向的“值”就发生了变化,再做x=“嘿嘿”的时候是不会改变s的值的
        //文中所说的第一个空间指:栈,空间中的地址指向的空间指的是:堆
        //相信学习过数据结构的朋友应该对此是有所理解的
        String[] s = new String[]{"Hello World!"};
        d.change_2(s);
        System.out.println("此时s的值为"+s[0]);
    }
    public void change_1 (int x) {
        x=990;
    }
    public void change_2 (String[] x) {
        x[0]="再见!";
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值