最高记录:速度:176.66
记录保持者:【玄极境七重】sadhdfiwd
文本名:Java基础部分面试题二(附白话答案)
文本总字数:585
文本内容:
4.String、StringBuilder、StringBuffer的区别及使用场景String一旦定义就不可改变,可空赋值。操作少量数据时使用。StringBuilder可改变,线程不安全。操作单线程大量数据时使用。StringBuffer可改变,线程安全。操作多线程大量数据时使用。5.ArrayList、Vector和LinkedList的区别及使用场景ArrayList和Vector都是使用数组方式存储数据,允许按序号索引元素,但是插入数据会涉及到元素移动等内存操作,所以索引快插入慢。ArrayList懒加载默认大小10每次扩容1.5倍线程不安全性能较高Vector实例化时初始化默认大小10每次扩容2倍线程安全性能较低已弃用额外回答加分项:多读少写建议使用CopyOnWriteArrayListCopyOnWriteArrayList原理是发生修改的时候复制一份多写少读或读写比较均匀建议使用Connections.synchronizedListLinkedList使用双向链表方式存储数据,插入只需要记录本项的前后项,索引需要向前或向后进行遍历,所以插入速度较快,线程不安全,频繁在任意位置插入和删除的情况可以使用,如果需要多线程访问,可以使用Connections.synchronizedList()或ConcurrentLinkedQueue