【Java】值传递与引用传递 & 不可变类

直接上代码:
【Java】值传递与引用传递 & 不可变类
八大基本数据类型为值传递,除此之外,任何类都是引用传递,包括数组。 值传递方式传递的是副本,因此变量c本身不会改变;引用传递方式传递的是对象的引用,对形参的修改会使对象本身发生改变,因此数组ch会改变。

八大基本类型的包装类,以及String类,都是不可变类。一旦被创建,就不能被修改。 所以及时是引用传递,也不会改变。

程序运行结果如下:
【Java】值传递与引用传递 & 不可变类
StringBuilder是可变类,可以被修改。我们熟知的 String string = new String(“abc”); string += “def”; 实际上会创建一个新的内存并存放 “abcdef” ,string会指向新的字符串内存,而之前 字符串 “abc” 不会消失直至被垃圾回收器回收,因此会影响程序的运行效率。