String

2023.10.17

1.

public class Demo {
    public static void main(String args[]) {
        String str1 = new String("hello");
        String str2 = new String("hello");
        String str3 = "hello";
        String str4 = "hello";
        String str5 = "he"+"llo";
        String str6 = "he";
        String str7 = "llo";
        System.out.println(str1==str2);
        System.out.println(str1==str3);
        System.out.println(str3==str4);
        System.out.println(str3=="hello");
        System.out.println(str4==(str6+str7));
     System.out.println(str5 == str3); } } 上面代码的输出结果是:
false false true true false

   true String str1
= new String("hello"); 这种方式创建的字符串,和正常创建对象一样,保存在堆区。 String str3 = "hello"; 这种方式创建的字符串,保存在字符串常量区。
最后一个str6拼接上str7相当于在方法区内又重新创建了一个hello常量与之前str4地址不相等所以会是false,此题中==比较的是放在栈中局部变量存储的地址

 

2.String split 这个方法默认返回一个数组,  * 如果没有找到分隔符,  * 会把整个字符串当成一个长度为1的字符串数组  * 返回到结果

 

2023.11.13

1.String解码编码

//先GBK解码,再UTF-8编码
String dst = new String(src,"GBK").getBytes("UTF-8")

 

2024.7.11

1.四种字符串对象放在常量池里的情况:

String a = "qwe";   
String b = "qwe" + "asd";
final String c = new String("zxc");
final String d = new String("zxc");
String e = c + d;   // 两个final常量拼接
String f = new String("rty").intern();  // 字符串对象intern得到的结果
    

 

posted @ 2023-10-17 23:00  sellingpear  阅读(19)  评论(0)    收藏  举报