JavaSE8基础 String是特殊的引用类型,在函数的参数传递中只能把它当做 值类型来看待

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaSE8基础 String是特殊的引用类型,在函数的参数传递中只能把它当做 值类型来看待相关的知识,希望对你有一定的参考价值。



    os :windows7 x64
    jdk:jdk-8u131-windows-x64
    ide:Eclipse Oxygen Release (4.7.0)
    
    
code:

package jizuiku2;

public class Demo001 {
	public static void main(String[] args) {
		String str1 = "cnblog";
		String str2 = "jizuiku";
		System.out.println(str1);
		System.out.println(str2);
		
		test(str1,str2);
		System.out.println(str1);
		System.out.println(str2);

	}

	public static void test(String str1, String str2) {
		//在这里的改变,并不会引起主函数中的str1/2改变
		str1 = "jizuiku";
		str2 = "cnblog";
	}
}

 


result:
技术分享

 

使用Debug对其进行分析:

技术分享

   上图进入到了函数中,执行了str1="jizuiku";语句。发现str1变量确实发生了变化。但是.....

 

技术分享

  切换到main函数中来后,发现main函数中的str1和str2没有任何变化.....

  再次切换到test函数中,执行完该函数。

 

技术分享

  test函数执行完毕,回到main函数中11行位置.... 可以看到str1/2没有任何变化。

 

 

感想:

  研究源代码,查看前辈们的博文,学习英语读一读国外的相关方面的文章。争取早日Java入门!


   


Java优秀,值得学习。
学习资源:czbk的视频库。如果您有公开的资源,可以分享给我的话,用您的资源学习也可以。
博文是观看视频后,融入思考写成的。博文好,是老师讲得好。博文坏,是 给最苦 没认真。













以上是关于JavaSE8基础 String是特殊的引用类型,在函数的参数传递中只能把它当做 值类型来看待的主要内容,如果未能解决你的问题,请参考以下文章

JavaSE8基础 StringBuffer与String变量在追加字符串后,引用变量的地址发生改变

JavaSE8基础 ==和equals 比较两个引用类型的变量的地址值是否相同

JavaSE8基础 String String.valueOf 将int类型变量转换成同面值大小的String类型

JavaSE8基础 Integer.toString 将int类型转为同面值的String类型

JavaSE8基础 Integer构造方法 将符合标准的String类型转成int类型

Java基础篇(02):特殊的String类,和相关扩展API