String类(final类,不可以被继承)
final String[] value;//底层存储方式
因为final的存在,导致value不能变动,故无论是增加长度,减小长度还是改变字符,都是不能变的;(也导致了String运算的效率低下)
存储差异:
String str ="abc";//str在栈中,"abc"在方法区,str直接指向"abc",故str==str1;
String str1 ="abc"
String str = new String("abc");
String str 1= new String("abc");str在栈中,指向堆中的中间变量,再指向"abc"
其中new的对象均在堆中,故str!=str1;
String的常用方法:
String str
str.startWith(); str.endWith();
str.trim();//去除掉字符串首尾的空格;
str.isEmpty();//判断str是否是空;
str.contains();//判断str是否包含()内的字符序列;
str.toCharArray();//将str转化为char型的数组;
str.split();//将str按照()内的字符,分割成数组;
易错题:
String的延申类:StringBuilder StringBuffer(线程安全)
他们的value没用final修饰,故可以直接修改
同时源码中,构造char[]数组的方法也不尽相同;
常用方法:
str1.append("str2")方法;将str1与str2进行拼接