注:这些是我个人觉得应该多加注意,或者编程中的技巧,或应该知道的零散知识点。只是对学习java的补充,和重点的点名,不适合初学者的主要学习资料。里面有些必须要记住的,都会给标记出来,无论是想学习java的还是打算找java工作的都可以看一下。
1、String StringBuffer
1. 都是有char[] 构成,(数组,一旦创建,长度固定,默认是16个)
2. String 的char[] 被final修饰,一旦被赋值不能更改,
StringBuffer的char[] 不会final修饰,,,,
StringBuffer(): 构造一个其中不带字符的字符串缓冲区,初始容量为 16 个字符。 |
数组长度是通过赋值原数组内容,来扩容原数组。如下图。
3、StringBuffer.insert(index,任意类型);;出入位置是 第index的前面
eg:
//StringBuffer的初始化
StringBuffer buffer=new StringBuffer("abcde");
// (另一种赋值:StringBuffer buffer=new StringBuffer();
// buffer.append("abcde"); )
buffer.insert(5,55);
System.out.println(buffer);
4、StringBuffer . subString() 返回值是String 类型
5、String和StringBuffer对象的相互转化
StringBuffer 转String buffer.toString();
用String的构造方法 String(buffer);
String s=new String(buffer);
6、遇到字符串的拼接就用 StringBuffer.append();这样会节省空间,不用 String 类型+“String 元素”
7、String的反转
String是不变量,不能进行反转, 不过可以借助StringBuffer 进行反转 StringBuffer。reverse();
2、StringBuilder StringBuffer
StringBuffer 线程安全
3、String的不变性
程序:
在method方法中写输出,S 的值为重新复制出来的s值
public class StringBufferDemo1 {
public static void main(String[] args) {
String s="abc";
method(s);
}
public static void method(String s) {
s=s+"de";
System.out.println(s);//此处的s为重新复制出来的s,但不会改变原s的值(即不会改变原s的地址)
}
}
输出结果:abcde
在主函数中 写输出 s为原 s的值
public class StringBufferDemo1 {
public static void main(String[] args) {
String s="abc";
method(s);
System.out.println(s);
}
public static void method(String s) {
s=s+"de";
}
}
输出结果:abc
StringBuffer