摘要:特点:(推荐教程:java入门教程)1、String类是被final修饰的,是不能被继承的。2、String类底层使用数组结构。jdk9以前使用的是char[],jdk9以后使用的是byte[]。3、String的对象一旦
特点:
(推荐教程:java入门教程)
1、String类是被final修饰的,是不能被继承的。
2、String类底层使用数组结构。jdk9以前使用的是char[],jdk9以后使用的是byte[]。
3、String的对象一旦创建就不能修改,底层维护了一个字符串常量池,实现共享。
注意:String类的对象每次修改都会产生一个新的对象。
(视频教程推荐:java视频教程)
String对象的拼接
常量池中的字符串常量 + 常量池中的字符串常量 :结果是存储在常量池中
String c = "a"+"b"; String ab = "ab"; System.err.println(ab==c); //输出true123
变量 + 常量池中的字符串常量 : 结果是存储在堆中的
String a = "a"; String c = "a"+"b"; System.err.println(c==a+"b"); //输出false123
如果拼接结果调用intern()方法,返回值就在常量池中
String a = "a"; String b = "b"; String c = "a"+"b"; System.err.println(c==a+b); //输出false,证明String类的拼接中只要有一个是变量,结果就存在堆中 String a = "a"; String b = "b"; String c = "a"+"b"; System.err.println(c==(a+b).intern()); //输出true,说明如果拼接结果调用intern()方法,返回值就在常量池中
相关文章推荐
网站谷歌评分90+意味着什么?2022-09-06
怎样将不安全网站变成安全网站访问?2022-09-26
网站排名下降,可能跟算法更新没关系2022-09-20
网站如何设置高质量的网页标题?2022-09-14
做外贸网站选哪些语言?法语、德语最吃香2022-09-13