String数据类型和数值变化的思考

来源:互联网 发布:淘宝试用协议在pc端哪 编辑:程序博客网 时间:2024/04/28 12:47

String 是 基本数据类型 还是引用数据类型?

查找文档

public final class String    implements java.io.Serializable, Comparable<String>, CharSequence

可见 是 引用数据类型

String 的数值不可变 是什么意思?


当 string 的数值 发生变化, 会 自动生成 一个新的 string对象(数值变化 同基本数据类型表现一致)


例如:

 private void text1() {        int a = 1;        int b = 2;        a = b;        LogUtil.i("text1--a==" + a);        LogUtil.i("text1--b==" + b);        a = 3;        LogUtil.i("text1--a==" + a);        LogUtil.i("text1--b==" + b);    }    private void text2() {        String stra = "1";        String strb = "2";        stra = strb;        LogUtil.i("text2--stra==" + stra);        LogUtil.i("text2--strb==" + strb);    }    private void text3() {        String stra = new String("1");        String strb = new String("2");        stra = strb;        LogUtil.i("text3--stra==" + stra);        LogUtil.i("text3--strb==" + strb);    }

打印日志

:DocActivity.text1(L:64): text1--a==2:DocActivity.text1(L:65): text1--b==2:DocActivity.text1(L:67): text1--a==3:DocActivity.text1(L:68): text1--b==2:DocActivity.text2(L:75): text2--stra==2:DocActivity.text2(L:76): text2--strb==2:DocActivity.text3(L:83): text3--stra==2:DocActivity.text3(L:84): text3--strb==2


0 0
原创粉丝点击