java值传递

来源:互联网 发布:天津塘沽爆炸知乎 编辑:程序博客网 时间:2024/05/29 07:47

首先看代码说明吧:


import java.util.HashMap;class AVO{String firstName;String lastName;public String getFirstName() {return firstName;}public void setFirstName(String firstName) {this.firstName = firstName;}public String getLastName() {return lastName;}public void setLastName(String lastName) {this.lastName = lastName;}}public class TestRef {public static void main(String[] args) {HashMap<String, String> map = new HashMap<String, String>();add(map);map.put("1", "1");System.out.println(map);//output:{3=3, 2=2, 1=1, 5=5, 4=4}int sum = 5;sum(sum);System.out.println(sum);//output:5AVO vo = new AVO();//AVO@1630ab9setVO(vo);System.out.println(vo.toString());//output:AVO@1630ab9}private static void setVO(AVO vo) {// TODO 自动生成的方法存根vo = new AVO();//AVO@1fc2fbvo.setFirstName("1");//到这里操作的vo已经不是传进来的那个对象了vo.setLastName("2");//vo指向了另一个对象,原来的对象没变}private static void sum(int sum) {// TODO 自动生成的方法存根sum = 6;}private static void add(HashMap<String, String> map) {map.put("2", "2");map.put("3", "3");map.put("4", "4");map.put("5", "5");}}


也就是说,如果传递的是基本类型的值,那么后面输出的也是该值,不会变;

如果传递的是对象,那么后面输出的也是该对象,不会变。

至于传递的值到了方法里面做了什么处理,基本类型的值都是不会变的,对象的属性可以改变。


如有错漏请指正,谢谢!

0 0
原创粉丝点击