数值转换问题

1.普通类型值传递
2.引用类型地址传递
3.String指向常量池中的

package com.chaohu.interviewquestions;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

public class TransferValue {

    public void changeValue1(int age){
        age = 30;
    }

    public void changeValue2(Person person){
        person.setName("xxx");
    }

    public void changeValue3(String str){
        str = "xxx";
    }

    public static void main(String[] args) {
        TransferValue transferValue = new TransferValue();

        /*
         *  1.基本类型是值传递(传的是值的复印件)。
         *  2.栈管运行,堆管存储。
         *  3.在方法栈中,changeValue1方法的age是30,但是main方法先进栈。
         *    所以changeValue1执行完就带着30跳出方法栈了,main的age没变。
         */
        int age = 20;
        transferValue.changeValue1(20);
        System.out.println(age);

        /*
         *  1.引用类型是地址传递。
         *  2.main和changeValue2方法中的person都指向一个对象。
         */
        Person person = new Person(1,"abc");
        transferValue.changeValue2(person);
        System.out.println(person.getName());

        /*
         *  1.String在常量池中,你指你的我指我的。
         *  2.常量池中有我就指向它,没有我就指向新地址,创建一个,以后别人也可以指。
         */
        String str = "abc";
        transferValue.changeValue3(str);
        System.out.println(str);
    }
}

@Data
@NoArgsConstructor
@AllArgsConstructor
class Person {

    Integer id;
    String name;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值