StringBuffer 和 StringBuilder 类
由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。然而在应用程序要求线程安全的情况下,则必须使用 StringBuffer 类。
public class one {
public static void main(String[] args) {
StringBuffer sBuffer = new StringBuffer("这里面可添加值:");
sBuffer.append("one");
sBuffer.append("two");
sBuffer.append("three");
System.out.println(sBuffer);
}
}
总结:1.StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况 StringBuffer
2 适用多线程下在字符缓冲区进行大量操作的情况
HashMap 与HashTable的区别: HashMap 是基于“拉链法”实现的散列表。一般用于单线程程序中。
Hashtable 也是基于“拉链法”实现的散列表。它一般用于多线程程序中。
WeakHashMap 也是基于“拉链法”实现的散列表,它一般也用于单线程程序中。相比HashMap,WeakHashMap中的键是“弱键”,当“弱键”被GC回收时,它对应的键值对也会被从WeakHashMap中删除;而HashMap中的键是强键。
TreeMap 是有序的散列表,它是通过红黑树实现的。它一般用于单线程中存储有序的映射。
(Java 集合系列14之 Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)https://www.cnblogs.com/skywang12345/p/3311126.html)
3.Set(HashSet TreeSet:TreeSet:会将里面的元素默认排序)集合的特点:不能存储相同的元素。同时因为其是一个抽象的接口:所以不能直接实例化一个set对象。(Set s = new Set() )错误该接口主要继承于Collections接口,所以具有Collection的一些常见的方法。(Java Set集合的详解:https://blog.csdn.net/qq_33642117/article/details/52040345)
(java之collection总结:http://www.cnblogs.com/taiwan/p/6954135.html)
List:元素是有序的(怎么存的就怎么取出来,顺序不会乱),元素可以重复(角标1上有个3,角标2上也可以有个3)因为该集合体系有索引,
ArrayList:底层的数据结构使用的是数组结构(数组长度是可变的百分之五十延长)(特点是查询很快,但增删较慢)线程不同步
LinkedList:底层的数据结构是链表结构(特点是查询较慢,增删较快)
Vector:底层是数组数据结构 线程同步(数组长度是可变的百分之百延长)(无论查询还是增删都很慢,被ArrayList替代了)(java list的一些基本操作:https://blog.csdn.net/qq_33505051/article/details/78967362)
stati(静态修饰符):https://www.cnblogs.com/dolphin0520/p/3799052.html
@Override 的作用是:如果想重写父类的方法,比如toString()方法的话,在方法前面加上@Override 系统可以帮你检查方法的正确性。