2023-11-06
j2EE
1.ArrayList与LinkedList的区别?
1、数据结构不同
ArrayList是数组的数据结构,LinkedList是链表(双向链表)。
2、效率不同
当随机访问时,ArrayList的效率要比LinkedList效率要高。
当对数据进行增加或者删除时,LinkedList效率较高。因为数组增加或者删除,需要遍历所有索引。
3、自由性不同
ArrayList自由性较低,因为它需要手动的设置固定大小的容量,但是它的使用比较方便,只需要创 建,然后添加数据,通过调用下标进行使用。
而LinkedList自由性较高,能够动态的随数据量的变化而变化,但是它不便于使用。
4、主要控件的开销不同
ArrayList主要控件开销在于需要在lList列表预留一定空间
LinkList主要控件开销在于需要存储节点信息以及节点指针。
2.String、Stringbuffer、Stringbuilder的区别?
String类是Java中最基本、最常用的字符串类。String对象是不可变的,一旦创建了一个String对象,就无法再修改它的值。当对String对象进行修改时,实际上是创建了一个新的String对象,而原来的String对象则保持不变。这种特性被称为“不可变性”。
StringBuffer类和String类一样,也用于处理字符串。与String类不同的是,StringBuffer对象是可变的,可以对其进行修改,而不会创建新的对象。
StringBuffer类中提供了一些方法,用于对字符串进行修改。比如,append()方法用于在字符串末尾添加新的内容;insert()方法用于在指定位置插入新的内容;delete()方法用于删除指定位置的内容等。
StringBuffer中的buffer可以理解为缓冲区,缓冲区中的数据肯定是线程安全的,StringBuilder可以理解为字符串的构造器,构造过程不