Java部分复习(一)

1.面向对象的特征:

封装

多态

继承

抽象

2.LinkedList和ArrayList哪个增添数据更快,效率更高?

答:整体来说LInkedList更快,效率更高。但是在扩容之前,数据量较大的时候,并且插入是靠后的情况下是ArrayList效率高。在数据增添次数和查询次数差不多的情况下选择LinkedList。

3.如何使main线程最后关闭?

答:使用Thread.join方法,将指定线程加入当前线程中,使其交替执行合并为顺序执行。比如在线程B中调用了线程A的join()方法,直到线程A执行完毕后,才会继续执行线程B。

4.Exception(异常)的基类是什么?

答:Throwable

5.Hashset和Treeset的区别是什么?

答:Hashset存储数据是无序的,Treeset是有序的。

Hashset:LinkedHashset会记录Hashset存储顺序,可以按顺序遍历出来,其实依靠hashcode,equal方法来确定是否是重复元素。

Treeset:Treeset是ShortedSet的实现类,数据是升序排序的,必须实现comparable接口,没有此接口将无法判定其大小,并且他是依靠comparato()方法来判断是否是重复元素。

拓展:Set是不能存放重复元素的。

6.如何限制一个类的继承?

答:使用final类修饰,使其变为最终类。

7.了解的排序算法有哪几种,说一下快速排序原理?

排序算法图解答:冒泡排序,选择排序,插入排序,快速排序,希尔排序,归并排序,堆排序,基数排序,桶排序,计数排序等。

​快速排序的原理:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。

8.Vector与ArrayList和linkedList的区别

​答:三者都是List的子类,方法基本相同,都可以对数据的增删查改,但是在安全,性能,行为上有着不同的表现。

​Vector是线程安全的集合类,但是如果不必要线程安全,就不用使用,因为它大大降低了性能。

ArrayList是现在应用广泛的动态数组实现的集合类,它是线程不安全的,但是性能要好的多,可以根据需要增加数组容量,但是与Vector调整逻辑不同,ArrayList增加50%,Vector增加一倍。

​LinkedList 是不需要增加长度的,也是线程不安全的。

​Vector和ArrayList应该保证修改和插入操作的减少,因为每次执行这样的操作,都会对集合的元素进行移动除了尾部数据的操作。

​ LinkedList在修改或者出入元素时要高效很多,但是访问数据对于该集合就要满很多了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值