JAVA LIST MAP 是引用地址而不是复制

StringBuffer aa=new StringBuffer("32");
		HashMap map=new HashMap();
		map.put("aa", aa);
		List list=new ArrayList();
		list.add(aa);
		System.out.println(map.get("aa")+"----->"+list.get(0));
		aa.append("as");
		System.out.println(map.get("aa")+"----->"+list.get(0));
		conn.close();

 原先1直没注意 现在要求写点性能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 中的基本数据类型(如 `int`、`double`、`boolean` 等)都是按值传递的,也就是说,在将一个基本数据类型的值传递给一个方法时,实际上是将该值的一个副本传递给了方法,而不是该值本身。因此,对方法内部的参数进行修改不会影响到原始值。 而对于对象类型(如 `String`、`List`、`Map` 等)来说,变量储的是对象的引用,而不是对象本身。因此,将一个对象作为参数传递给方法时,实际上传递的是对象的引用,也就是指向该对象的一个指针。在方法内部对对象的修改会影响到原始对象。 需要注意的是,对于不可变对象(如 `String`、`Integer`、`Double` 等),修改操作实际上是创建了一个新的对象,而原始对象并没有发生变化。因此,在方法内部对不可变对象的修改并不会影响到原始对象。例如: ```java public static void main(String[] args) { String s = "Hello"; changeString(s); System.out.println(s); // 输出 Hello } public static void changeString(String str) { str += " World"; } ``` 在 `changeString` 方法中,对字符串进行了拼接操作,但是并没有修改原始字符串 `s`,因此在 `main` 方法中输出的依然是原始字符串 `Hello`。 总之,Java 中的数据类型分为基本数据类型和对象类型,对于基本数据类型,按值传递;对于对象类型,按引用传递。但是需要注意的是,在对不可变对象进行修改时,实际上是创建了一个新的对象,原始对象并没有被修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值