String字符串的坑

2019-07-21  本文已影响0人  ae601c79c4fc

String的部分源码

public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence {
    /** The value is used for character storage. */
    private final char value[];
}

面试题1:

以下代码的输出结果是多少?

public class TestString { public static void main(String[] args){

    // 不可变字符串

    String s =" a b ";

    s.trim();

    System.out.println("!"+s+"!");

    }

}

答案:! a b !

怎么改变String字符串的值?

public class TestFinal {

    public static void main(String[] args) throws Exception {

        // 不可变字符串
        String s = "a b"; //“a b”

        Class<String> stringClass = String.class;

        Field value = stringClass.getDeclaredField("value");

        value.setAccessible(true);

        char[] cs = (char[])value.get(s);

        cs[1] = 'd';

        System.out.println(s);

    }


}

输出结果:adb

上一篇下一篇

猜你喜欢

热点阅读