20201225-刘甲波
知识点
1、字符串在内存中内存中存储情况
2、String类的intern()方法,toUpperCase(),concat(), contentEquals( CharSequence ) 和 contentEquals( StringBuffer )
3、学习StringBuffer类中的append()方法,insert(),delete(start, end)方法,insert( start , "sleep" )方法,lastIndexOf( )方法,replace( start , end, "sleep" )方法,reverse()方法,deleteCharAt( )方法,setCharAt( index , ',' )方法,
总结
1,当类中有字符串时就会在字符串常量池中查找是否有与之相应的字符串,如果有则返回地址,如果没有则创建字符串常量池并返回地址。如果有字符实例就会有private final byte[] value ,private final byte coder,private int hash.
2、(易错点)intern()方法返回的是String实例的规范表达式,String的规范表达式就是用变量直接指向字符串的常量池。
(1)String x = s.intern();
String t = "青海长云暗雪山"
---------------------------------------
(2)String t = "青海长云暗雪山"
String x = s.intern();
String x = s.intern();和String t = "青海长云暗雪山"的先后顺序是有区别的。
3、StringBuffer 和 StringBuilder 都没有重写 Object的 equals 方法。如果用equals比较时则比较的是父类的地址。如果要比较内容时则需要把StringBuffer 和 StringBuilder 其中一个转换为字符串序列后,使用String类提供的contentEquals()方法进行比较。
4、从jdk1.5开始,StringBuffer类就直接继承了AbstractStringBuilder。StringBuffer是一个最终类(final class)是不可以被继承的。在StringBuffer类中实例变量是可以变的。
5、在指定的字符串的下标处插入新的内容。
insert( 6 , ',' )
6、删除指定下标之间的内容。
delete(start, end);
7、在指定区间内替换内容
replace( start , end, "sleep" )
8、反转字符缓冲区
reverse()
评论留言