java中的数据类型分为基本数据类型和引用数据类型
基本数据类型
整型:byte,short,int,long
浮点型:float,double
字符型:char
布尔型:boolean
引用数据类型
类
接口
数组
方法的参数分为实际参数,形式参数
形式参数:定义方法时写的参数
实际参数:调用方法时写的具体数值
一般情况下,在数据作为参数传递的时候,基本数据类型时值传递,引用数据类型是引用传递(地址传递)
* 值传递不会影响其本身,只是将本身的值复制一份
* 地址传递会影响本身
String类型传递
String是一个类,类是引用数据类型,作为参数传递的时候,应该是引用传递。但结果看起来是值传递。
是因为String类是被final修饰的,String的值在创建之后不能被更改。【String对象str的任何修改等同于创建一个对象,并将新的地址值赋值给str】
String str = "abc";
等效于
char data[] = {'a', 'b', 'c'};
String str = new String(data);
String对象作为参数传递时,走的依然是引用传递。
String对象一旦创建,内容不可更改。每一次内容的更改都是重新创建出来的新对象
总结
* 值传递的时候,将实参的值,copy一份给形参
* 引用传递的时候,将实参的地址值,copy一份给形参