旗下导航:搜·么
当前位置:网站首页 > JAVA教程 > 正文

2020全新Java面试题——容器(二)_JAVA教程,java,容器

作者:搜教程发布时间:2020-04-12分类:JAVA教程浏览:81评论:0


导读:javascript和java的区别是什么_JAVA教程javascript和java的区别:1、java是面向对象的程序设计语言,而javaScript是可嵌入Wed页面中的基于...

javascript和java的区别是什么_JAVA教程

javascript和java的区别:1、java是面向对象的程序设计语言,而javaScript是可嵌入Wed页面中的基于对象和事件驱动的解释性语言;2、java主要在服务端运行,而javascript主要运行在客户端浏览器中。

1、说一下 HashMap 的实现原理?

HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。

HashMap的数据结构: 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。

(推荐教程:java快速入门)

当我们往Hashmap中put元素时,首先根据key的hashcode重新计算hash值,根绝hash值得到这个元素在数组中的位置(下标),如果该数组在该位置上已经存放了其他元素,那么在这个位置上的元素将以链表的形式存放,新加入的放在链头,最先加入的放入链尾.如果数组中该位置没有元素,就直接将该元素放到数组的该位置上。

需要注意Jdk 1.8中对HashMap的实现做了优化,当链表中的节点数据超过八个之后,该链表会转为红黑树来提高查询效率,从原来的O(n)到O(logn)

2、说一下 HashSet 的实现原理?

HashSet底层由HashMap实现

HashSet的值存放于HashMap的key上

HashMap的value统一为PRESENT

java 找不到jar怎么办_JAVA教程

java找不到jar的解决办法:首先在“project build path”中移除“JRE System Library”;然后添加库“JRE System Library”;最后重新编译即可。

(相关学习:java常见面试题)

3、ArrayList 和 LinkedList 的区别是什么?

最明显的区别是 ArrrayList底层的数据结构是数组,支持随机访问,而 LinkedList 的底层数据结构是双向循环链表,不支持随机访问。使用下标访问一个元素,ArrayList 的时间复杂度是 O(1),而 LinkedList 是 O(n)。

4、如何实现数组和 List 之间的转换?

List转换成为数组:调用ArrayList的toArray方法。

数组转换成为List:调用Arrays的asList方法。

5、ArrayList 和 Vector 的区别是什么?

Vector是同步的,而ArrayList不是。然而,如果你寻求在迭代的时候对列表进行改变,你应该使用CopyOnWriteArrayList。

ArrayList比Vector快,它因为有同步,不会过载。

ArrayList更加通用,因为我们可以使用Collections工具类轻易地获取同步列表和只读列表。

相关视频教程推荐:java视频教程

以上就是2020全新Java面试题——容器(二)的详细内容,更多请关注ki4网其它相关文章!

java程序怎么写_JAVA教程

编写java程序的方法:首先打开记事本并输入代码“public class helloworld{...}”;然后把文件名保存为“HelloWorld.java”;接着打开cmd命令窗口,并输入指令“javac HelloWorld”即可。

标签:java容器


欢迎 发表评论: