Java的 String 类为什么不可变?
String类在Java中是一个不可变的类,即一旦创建,就不能再进行修改。这是因为String类的底层实现采用了字符数组的方式,即用final修饰的char[]数组存储字符串中的字符,而这个char[]数组的引用是不可改变的。如果修改字符串,实际上是重新生成了一个新的String对象。
Java的 String 类在jdk1.9前后有哪些区别?
jdk1.9之前,String类的底层实现采用的是char[]数组,而在jdk1.9中,String类的底层实现改为了byte[]数组和coder字段,可以根据字符集来存储字符串,从而支持了更多的字符集,提高了String的灵活性和性能。
在jdk1.9之后,String类新增了几个方法,比如strip()、repeat()、isBlank()等,同时也优化了一些方法的实现,比如substring()方法的实现从复制字符数组变为了复用字符数组等,提高了String类的性能和使用体验。