23 String字符串

23.1 构造方法

23.1.1 无参构造方法

        创建一个空的字符串:

public class Demo1 {
    public static void main(String[] args) {
        String s = new String();
        System.out.println("s:"+s);
    }
}

 23.1.2 有参构造方法(2个)

        23.1.2.1 根据字符数组创建字符串

public class Demo1 {
    public static void main(String[] args) {
        char[] arr = {'a','b','c'};
        String s = new String(arr);
        System.out.println("s:"+s);

    }
}

23.1.2.2 根据字节数组创建字符串

        注意字节数组的97代表a,查ASCII即可。

public class Demo1 {
    public static void main(String[] args) {
        byte[] arr = {97,98,99};
        String s = new String(arr);
        System.out.println("s:"+s);

    }
}

23.2 String字符串——内存空间的理解

         如上图所示,new都是在堆内存开辟空间的,而直接等于一个字符串也是,比如String s3 = "abc","abc"只会在堆内存的常量池中创建一次,并且有自己的地址,赋值的时候,直接把"abc"的地址赋值过去。注意!两个字符串比较的是地址值!

        为什么单个字符串打印出的不是地址?

        因为所有的类继承Object类,所以单独输出一个对象的时候,他会调用Object.toString,打印出来的就是一串表达地址的字符串,最后调用的toString。

猜你喜欢

转载自blog.csdn.net/no996yes885/article/details/131897545
今日推荐