《一天一道》

每日一道:常见的string疑问

判断下列代码运行的结果:

package com.atshangguigu.exer;
/*** @Author 高旭* @Description* @Date 2021 2021/3/27 19:42**/
public class StringTest {String str = new String("good");char[] a = new char[]{'t','e','s','t'};public void change(String str,char[] a){str = "test ok";a[0] = 'b';}public static void main(String[] args) {StringTest st = new StringTest();st.change(st.str, st.a);System.out.println(st.str);System.out.println(st.a);}
}

运行的结果:

运行结果分析:

String为引用类型的数据,具有不可变性,在作为参数进行传递时传递的是地址,但是因为其具有不可变性,而不是对原来的地质上的字符串常量进行更改,而是在方法区的常量池中重新的new出了一个常量的字符串,但是一str指向的地址没有变,还是指向good字符串。

虽然char数组也为引用型数据类型,但是char数组内的元素是可以改编的。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部