今天看了会关于java的书,遇到了一个问题,那就是java到底是怎么来传递数据呢?
注意:这只是个人观点,欢迎指正。
首先我认为,java全都是"按址传送"这种说法是完全错误的,java是没有指针的,那么有人就会问,java不是有引用吗? 请不要混淆,所谓引用,更像是一种遥控器,而你的对象就好比电视,例如:
String s;
String s =new String("奥利给!");
当你输出s你会报错,因为他只是一个引用,并非对象,你通过s这个引用指向String的对象,而指针(我并不是特别了解指针,具体的就看看别的大佬的播客吧)更加危险,也更加强大,直接操控的底层地址。
回归正文,例子:
public void tes2(){
int t1=0;
int [] t2={12,22,32};
test(t1,t2);
System.out.println(t1);
System.out.println(t2[0]);
}
public static void test(int n,int[] t)
{
n = 0;
t[0] = 123;
}
输出结果为:
0
123
t1结果没有变化,数组确有变化,我查阅相关资料发现,八个基本类型是按值传递,对象,数组,抽象类,接口等复杂型类型按址传送.就不一一举例子了,这东西知道就比不知道强,就当小知识点,记住了就好了。
以上仅代表个人观点,如有差错,多多赐教