Java 基础值传递(待补充或者修改)1126

一、引用改变现象

当栈内存中的地址发生了改变的现象,即引用改变现象。

  1. 对象的创建需要在堆内存中开辟空间保存对象本身信息,还需要在栈中开辟空间保存对象的地址信息。
  2. 当一块空间失去了栈内存的指向就变成垃圾,之后就等着GC线程来回收。
package com.CoderLB;

public class Main {

    public static void main(String[] args) {
        Person per1=new Person();
        System.out.print(per1.name);
        per1.age=10;
        per1.name="张三";
        per1.weight=70;
        per1.height=170;
        System.out.print(per1.name);//张三
        //创建另一个
        Person per2=new Person();
        per2.age=18;
        per2.name="李四";
        per2.weight=70;
        per2.height=170;
        //操作
        per1=per2;
        System.out.print(per1.name);//李四

        

    }
}

二、值传递

1.如果方法的参数类型是基本数据类型,则在传递实际参数的时候,本质上将原来的数据复制一个副本传递给方法。那么在方法中修改的值就是一个副本。

常见的基本数据类型
整数型:byte类型 short类型 int类型 long类型
浮点型:float类型 double类型
字符型:char类型
布尔型:boolean类型

public class Hello {
    public static void main(String[] args) {
        //计算三角形面积
 
        int num1=10;
        change(num1);//100

        System.out.println("num1: "+num1);//还是10不是100

    }
    //改变变量的值
    public static void change(int temp){
        temp*=10;
        System.out.println(temp);
    }
2.如果方法的参数类型不是基本数据类型,则在传递实际参数的时候,对原来的数据产生影响。
public class Hello {
    public static void main(String[] args) {

        //change(num1);//100
        Person per=new Person();
        per.name="张三";
        change(per);



        System.out.println("per: "+per.name);//李四


    }
    //改变变量的值
    public static void change(Person temp){
        temp.name="李四";
        System.out.println("temp: "+temp.name);//李四
    }

常见的引用数据类型
Java有 5种引用类型(对象类型):类 接口 数组 枚举 标注
string作为实际参数传递后进行修改。原始数据并未发生改变。因为String类型的特殊性。(存在常量池(待补充))

public class Hello {
    public static void main(String[] args) {

        String str="hello";
        change(str);//"world"

        System.out.println("str: "+str);//"hello"
    }
    //改变变量的值
    public static void change(String temp){
        temp="world";
        System.out.println("temp: "+temp);//world
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值