String对象及底层区别
String 对象
两种方式
方式一:直接使用双引号得到字符串对象
代码:
//方式一:直接使用双引号得到字符串对象
String name = "我爱你中国!";
方式二:
1.public String():创建一个空白字符串对象,不含有任何内容 (几乎不用)
代码:
// 1.public String():创建一个空白字符串对象,不含有任何内容 (几乎不用)
String s = new String();
2.public String(String):根据传入的字符串内容,来创建字符串对象(几乎不用)
代码:
// 2.public String(String):根据传入的字符串内容,来创建字符串对象(几乎不用)
String s2 = new String("我是中国人"); //灰色表示可有可无
3.public String(char[] c):根据字符数组的内容,来创建字符串对象
代码:
// 3.public String(char[] c):根据字符数组的内容,来创建字符串对象
char[] chars = {'a' , 'b' , '中' , '国'};
String s3 = new String(chars);
System.out.println(s3);
4.public String(byte[] b):根据字节数组的内容,来创建字符串对象
代码:
// 4.public String(byte[] b):根据字节数组的内容,来创建字符串对象
byte[] bytes = {97, 98, 99, 65, 66, 67};
String s4 = new String(bytes);
System.out.println(s4);
区别:
区别一:
- 以 “” 方式给出的字符串对象,在字符串常量池中存储,而且相同内容只会在其中存储一份。
区别二:
- 通过构造器new对象,每new一次都会产生一个新对象,放在堆内存中。
代码:
//区别一:
String ss1 = "abc";
String ss2 = "abc";
System.out.println(ss1 == ss2); //true
//区别二:
char[] chars1 = {'a', 'b', 'c'};
String ss3 = new String(chars1);
String ss4 = new String(chars1);
System.out.println(ss3 == ss4); //false
Original: https://www.cnblogs.com/zhangyouren/p/16408100.html
Author: Haziy
Title: String 对象
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/621738/
转载文章受原作者版权保护。转载请注明原作者出处!