JAVA中的字符串

44 阅读1分钟

一、String对象是不可变的,在JDK文档中,String类中每一个看起来会修改String值的方法,实际上都是创建一个全新的String对象,以包含修改后的字符串内容,而最初的String对象则丝毫未动。 例如:

public class StringTest {
    public static String upcase(String s){

        return s.toUpperCase();
    }

    public static void main(String[] args) {
        String q="howdy";
        System.out.println("得到的q:::"+q);
        String qq =upcase(q);
        System.out.println("得到的qq:::"+qq);
        System.out.println("再次输出q:::"+q);
    }
}

得到的结果为:

得到的q:::howdy 得到的qq:::HOWDY 再次输出q:::howdy

当把P传给upcase()方法时,实际传递的是引用的一个拷贝,其实,每当把String对象作为方法的参数时,都会复制一份引用,而该引用所指的对象其实一直待在单一的物理位置上,从未动过。