java 学习3

来源:互联网 发布:网络歌手阿刚 编辑:程序博客网 时间:2024/05/16 15:04

在 java中对参数传递时,其本质是将参数所在内存地址中的数据进行复制传递,所以对基本的8个数据类型来说进行了传递仅仅是将自己内存中的数据复制传递到另一个内存地址,而对于数组,对象,字符串类型来说,它们自身内存中保存的只是自身数据所在内存地址的首地址,所以当它们进行传递的时候,将这个首地址传递到另一个变量中时,会使另一个变量和原来的变量所指向的内存地址是相同的,这就导致传递过后进行操作,对原来的变量也会发生改变。但是它们所指向的内存  地址并没有变,所以本质上也可以说“没有变”


String str1="abc";String str2="abc"; //这里str1和str2实际是一样的,因为并没有开辟新的内存空间,所以指向的内存地址相同;System.out.println(str1==str2);String str3=new String("abc");String str4=new String("abc");//在这里因为关键字new,每次都开辟了一个新的内存地址用来存放新的字符串变量,所以str3和str4是不同的System.out.prinlnt(str3==str4);

其中第一个输出为true;

第二个输出为false


原创粉丝点击