本文作为一个小笔记,记录几个容易弄混的java类或方法
* 1. Integer.parseInt(s)与Integer.valueOf(s)的区别
* parseInt返回的是int基本数据类型
* valueOf 返回的是Integer包装类,能够调用各种方法。
*
* 2. String、StringBuffer和 StringBuilder 的区别
* |-- 都是 final 类,都不允许被继承;
* |-- String类长度是不可变的,String + 的拼接是创建新的对象,将指针指向新对象
* |-- StringBuffer和 StringBuilder类长度是可以改变的;在自身基础上改变
* |-- StringBuffer 类是线程安全的,StringBuilder不是线程安全的;
*
* 如果要操作少量的数据,用String
* 单线程操作大量数据,用StringBuilder
* 多线程操作大量数据,用StringBuffer
*
* 3. ArrayDeque 和 Stack ,LinkedList 的区别
* ArrayDeque实现Deque接口,
* Stack继承于Vector,
* LinkedList实现 Deque与 List接口。
*
* |--底层存储方式
* Stack 长度为10的数组
* ArrayDeque 长度为16的数组
* LinkedList 链表
*
* |-- 方法参照表
* Stack ArrayDeque LinkedList
* push() add() 队列/offer() 栈 add() 队列/offer() 栈
* pop() remove()/poll() remove()/poll()
* peek() get()/peek() get()/peek()
*
* |-- 线程安全
* Stack 线程安全,不建议使用
* ArrayDeque 线程不安全,频繁的随机访问操作使用,可以作为队列、栈使用
* LinkedList 线程不安全,频繁的插入、删除操作使用,可以作为队列、栈使用
*