字符串小知识点笔记

String str1 = "hello";

str1是变量,在栈中。
"hello"是字符串常量,存放在常量池中。str1指向"hello"。


==比较的是地址,指向常量池中同一个地址时才为true。


字符串拼接结果:
String s1 = "hello";
String s2 = "world";
String s3 = "helloworld";
String s4 = (s1 + "world").intern(); //把拼接的结果放到常量池中
String s5 = (s1 + s2).intern();
String s6 = "hello" + "world"; //常量+ 常量结果在常量池中,因为编译期间就可以确定结果
String s7 = s1 + s2; //变量+变量,结果在堆中
String s8 = s1 + "world"; //s1是变量,"world"是常量,变量+常量结果在堆中

System.out.println(s3 == s4);//true
System.out.println(s3 == s5);//true
System.out.println(s3 == s6);//true
System.out.println(s7 == s8);//false
System.out.println(s3 == s7);//false

上一篇:.NET Core AWS S3云存储


下一篇:202006-1线性分类器