Java工作笔记-Java函数参传值传引用问题

369 篇文章 20 订阅

目录

 

 

基本概念

代码与实例

源码打包下载


 

基本概念

最近的系统中,Java程序和C++程序混着,很多程序都是用Java搞的,不得不稍微研究下Java的细节,其中很关键的一点,就是如何在Java中传引用,因为要接收一些值,在代码中试了,用&这个玩意是没有效果的。

下面给出Java程序中函数传参数,哪个是传值,

这里发现,如果是基本数据类型:int这种,都是传值。

而自己写的Class为传地址过去,

Integer和String在封装后,里面有个final,这样实际是传地址,但赋值的时候,却创建了个新的。

 

 

代码与实例

程序运行截图如下:

源码如下:

public class Main {

    public static void main(String args[]) {

        int intFunctionValue = 100;
        intFunction(100);
        System.out.println("Main functionValue : " + intFunctionValue);
        System.out.println("---------- 华丽的分割线 ----------");

        Integer IntegerFunctionValue = new Integer(100);
        IntegerFunction(IntegerFunctionValue);
        System.out.println("Main IntegerFunction : " + IntegerFunctionValue);
        System.out.println("---------- 华丽的分割线 ----------");

        Struct struct = new Struct();
        struct.setAge(17);
        struct.setName("heheda");
        ClassFunction(struct);
        System.out.println("Main ClassFunction : " + struct);
        System.out.println("---------- 华丽的分割线 ----------");
    }

    static void intFunction(int value){

        value = 200;
        System.out.println("intFunction value : " + value);
    }

    static void IntegerFunction(Integer value){

        value = 200;
        System.out.println("IntegerFunction value : " + value);
    }

    static void ClassFunction(Struct value){

        value.setAge(18);
        value.setName("Hello World");
        System.out.println("ClassFunction value : " + value);
    }

    static class Struct{

        private Integer age;
        private String name;

        public Integer getAge() {
            return age;
        }

        public void setAge(Integer age) {
            this.age = age;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        @Override
        public String toString() {
            return "Struct{" +
                    "age=" + age +
                    ", name='" + name + '\'' +
                    '}';
        }
    }
}

 

 

源码打包下载

地址如下:https://github.com/fengfanchen/Java/tree/master/FunctionParament

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT1995

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值