java值传递和引用传递
1. 在java中,每一个new语句返回的都是一个指针的引用,只不过在大多数情况下Java不关心如何操作这个指针,需要注意的是在给函数传递对象的时候对于基本数据类型和对象变量,存在不一样的操作:
- 基本类型变量:传递值的副本(副本变,本身不变)
-
对象变量:传递引用的副本(副本变,本身也变)【即复制指向对象地址的指针】
不论Java参数的类型是什么,一律传递的都是参数的副本,即java中只有值传递。
2. String,以及Integer、Double等几个基本类型包装类,它们都是不可变类型,因为没有提供自身修改的函数,每次操作都是新生成一个对象,所以要特殊对待,可以认为是和基本数据类型相似,传值操作,也就是值传递和引用传递没有区别。
人怂胆子小,手拿大刀跑。