为何说java是值传递,因为形参实际是对象引用的复制。
比如User user1 = new User();将这个user1传进方法。假设实际的对象new User()地址是0x0005,那假如这个对象的引用user1也有地址,那就是0x0001。在传参过程中,实际传的是user1的复制,也就是user2,该地址是0x0002。。。这样虽然user1和user2指向同一个对象(或者说user1和user2的内容相同),但user1和user2确实是在内存中都有各自的地址。。。。而引用传递就是直接传递user1,内存中只有对象的0x0005,和对象引用user1的地址0x0001
java是值传递
于 2023-03-03 16:33:42 首次发布
Java被视为总是进行值传递,因为参数是对象引用的副本。例如,当传递一个User对象时,实际上是user1引用的复制(如user2),它们都指向同一内存地址(0x0005)。尽管两个引用内容相同,但它们在内存中有不同的地址。而引用传递则会直接传递原始引用,不创建副本。

被折叠的 条评论
为什么被折叠?



