当前位置: 代码迷 >> 综合 >> Java基础知识点(二)
  详细解决方案

Java基础知识点(二)

热度:31   发布时间:2024-03-08 16:00:49.0

1.说出ArrayList,LinkedList的储存性能和特性?

区别如下:

  1. ArrayList 采用的是数组形式来保存对象的,这种方式将对象放在连续的位置中,优点是索引读取快,从最后插入和删除元素速度快,但是头部插入和删除慢。
  2. LinkedList使用双向循环链表方式存储数据,所以头尾插入或读取插入的速度快,而中部插入和读取慢.

2.HashMap Hashtable 的区别

1. 历史原因:Hashtable 是陈旧APIHashMap Java 1.2 引进的Map 接口的一个实现

2. 同步性:Hashtable 是线程安全的,也就是说是同步的,而HashMap 是线程序不安全的,不是同步的。由于同步检查所以Hashtable性能稍慢。

3. 值:HashMap 可以插入一个nullkey-value

 3.ListMapSet三个接口,存取元素时,各有什么特点?

1. List特点:元素有顺序,元素可重复

2. Set特点:元素无顺序,元素不可重复(注意:元素虽然无顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的)

3. Map特点:元素按键值对存储,无顺序

 

 4.队列和栈是什么,列出它们的区别?

1. 队列(Queue)是限定只能在表的一端进行插入和在另一端进行删除操作的线性表。

2. 栈(Stack)是限定只能在表的一端进行插入和删除操作的线性表。

3. 队列先进先出(FIFO),栈先进后出(FILO)。

 

5.StringStringBuffer的区别,StringBufferStringBuilder的区别是什么?

1. String是不可变的,StringBuffer是可变的;StringBuffer是线程安全的,StringBuilder是非线程安全的。

2. 由于字符串链接会自动创建StringBuilder对象,为了避免复杂字符串拼接时候大量创建StringBuilder对象,可以利用StringBuilder优化字符串链接操作。

4. StringBuilderjdk5之后新增的,其用法与StringBuffer完全一致,但它是线程不安全的,在单线程中最佳,因为其不需要维护线程的安全,因此是最快的。

标签: String StringBuffer StringBuilder

6.String类能不能被继承,为什么?

不能被继承,因为String类是final类,final修饰的类是不能被继承

7.“==”“equals”的区别

1. `==`是值比较,对于引用类型变量`==`是判断引用的值是否是同一个对象地址值,如果是相同对象其内容也一定是相同的

2. equals方法判断的是对象的内容是否相同,由于其默认方法采用的`==`进行引用比较,所以需要重写为按照对象内容比较是否相同。

8.HashSet HashMap 区别?

1. HashMap :实现Map接口;使用hash算法,里面的数据是无序的;并且存储的是键值对;

2. HashSet :实现了Set接口;内部封装了HashMap,故也是无序的;HashSet本质就是HashMap,数据存储到HashSetKey部分,Value部分被屏蔽不使用了。

9.描述栈,队列中元素的出入顺序。

1. 栈的数据结构是,先进后出(FILO),也可以说是后进先出

2. 队列的数据结构是,先进先出(FIFO

10.ComparableComparator接口是干什么的?列出它们的区别。

1. Comparable接口

     1. 实现Comparable接口类表示这个类型的对象可以进行比较大小的。 这种可以比较大小的对象可以进行自然排序。

2. Comparator接口

     1. 比较器用于实现对象任意属性进行比较大小。

     2. 在排序时候可以通过指定属性比较器实现任意属性排序。

3. 在排序时候Comparable接口用于进行自然排序,而Comparator接口进行自定义排序,自定义排序更加灵活方便而常用。

4. 设计上Comparable不推荐使用,因为对程序本身具有侵入性。