Java常见面试题及答案(19道常见必考题) – mikechen 您所在的位置:网站首页 java多线程常见面试题及答案 Java常见面试题及答案(19道常见必考题) – mikechen

Java常见面试题及答案(19道常见必考题) – mikechen

2023-09-23 15:51| 来源: 网络整理| 查看: 265

Java常见面试题及答案(19道常见必考题)-mikechen

金九银十Java面试的高峰期到了,今天给大家总结了一份Java常见面试题及答案,希望对大家有所帮助@mikechen

目录

Java线程的生命周期

Java常见面试题及答案(19道常见必考题)-mikechen

在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)5种状态。

 

Java实现线程有哪几种方式?

1、继承Thread类实现多线程 2、实现Runnable接口方式实现多线程 3、使用ExecutorService、Callable、Future实现有返回结果的多线程。

 

什么是并发与并行?

并行

Java常见面试题及答案(19道常见必考题)-mikechen 多个cpu实例或者多台机器同时执行一段处理逻辑,是真正的同时。

并发

Java常见面试题及答案(19道常见必考题)-mikechen

通过cpu调度算法,让用户看上去同时执行,实际上从cpu操作层面不是真正的同时。

 

HashMap1.7与1.8底层如何实现?

Java常见面试题及答案(19道常见必考题)-mikechen 1.7底层实现基于数组+链表实现(Key和value封装成Entry对象)1.根据key的hash值,计算该key存放在数组的index位置

2.如果发生index冲突,则会使用单向链表存放

同一个链表中存放的都是hashCode值相同,但是内容值却不同

如果index发生冲突,采用链表存放查询的时间复杂度是为O(n),效率非常低,

所以在JDK1.8开始优化改为红黑树

3. 使用头插入法(并发下扩容可能会发生死循环问题)

1.8底层实现

基于数组+链表+红黑树实现(Key和value封装成Entry对象)

1.根据key的hash值,计算该key存放在数组的index位置

2.如果发生index冲突,则会使用单向链表存放

当数组的容量大于=64且链表长度大于8则会将链表转化成红黑树。

红黑树查询的时间复杂度是为O(logN)

当红黑树的节点个数



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有