IT评测·应用市场-qidao123.com

标题: Java中关于String类以及字符串拼接的问题 [打印本页]

作者: tsx81428    时间: 2023-4-26 16:41
标题: Java中关于String类以及字符串拼接的问题
String类部分源码
  1. //被final修饰不可被继承
  2. public final class String
  3.     implements java.io.Serializable, Comparable<String>, CharSequence {
  4.     //String维护char[] 所以不可修改
  5.     private final char value[];
复制代码
创建String对象的方式


两者区别

代码分析
  1. public static void main(String[] args) {
  2.         String str1 = "hello";//指向常量池中的引用
  3.         String str2 = new String("hello");//指向堆中的引用
  4.         String str3 = str2;//str3==str2 true
  5.         String str4 = "hello";//str1==str4 true
  6.     }
复制代码
字符串拼接
  1. String a="A";
  2. String b="B";
  3. String c=new String("C");
  4. a="A"+b;//变量拼接 指向变为堆中地址
  5. a="A"+c;//变量拼接 指向变为堆中地址!
  6. a="A"+"A";//常量拼接依旧指向常量池中的地址 a=="AA" true
  7. final String d="D";//这是常量
  8. a="A"+d//a=="AD" true
复制代码
+号变量拼接底层原理 StringBuidlerd构造初始化容量为16的char[] 然后调用append()进行拼接 最后将结果new String()的形式赋给左边变量

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4