首页 > 基础资料 博客日记

java面试题及解析—java基础

2023-07-24 17:33:11基础资料围观205

这篇文章介绍了java面试题及解析—java基础,分享给大家做个参考,收藏Java资料网收获更多编程知识

一、HashMap和HashSet的原理

二、HashMap是线程不安全的,请问哪个Map是线程安全的?ConcurrentHashMap是如何实现线程安全的?

参考ConcurrentHashMap是如何实现线程安全的

三、ArrayList和LinkedList的原理

四、异常类Exception和Error有什么区别

  • Exception和Error都继承自Throwable,在Java中只有Throwable类型的实例才可以被抛出或捕获。Error指正常情况下不太可能出现的情况,绝大部分的Error或导致程序崩溃,处于非正常的不可恢复的状态,如OutOfMemoryError、StackOverflowError。是程序中不应该试图捕获的严重问题。Exception是程序正常运行中可以预料的意外情况,可以捕获并处理

五、创建线程池的方式

  • 创建线程池四种方式:
  • newCachedThreadPool:创建一个可缓存的线程池,如果长度超过处理需要,则回收闲置的线程
  • newFixedThreadPool:创建一个定长的线程池,可控制线程最大并发量,超出线程在队列中等待
  • newScheduleThreaPool:创建一个定长的线程池,可周期或定时执行里面的线程
  • newSigleThreadPool:创建一个单例线程池,同时只能运行一个线程,保证线程的先进先出

六、创建线程池的核心参数

七、闲置的线程是如何回收的

八、线程的状态有哪些

  • 1、新建状态:用户创建线程,此时线程处于新建状态
  • 2、就绪状态:其他线程调用了该对象的start方法,进入就绪状态。该状态的线程位于“可运行的线程池”中,线程变得可运行只需获取CPU的使用权,即在就绪状态的线程除CPU外,其他资源均已获得
  • 3、运行状态:线程获取到CPU之后,进入运行状态
  • 4、阻塞状态:由于某些原因,使得线程放弃了CPU的使用权,由运行状态转换到阻塞状态,阻塞状态的线程要先变成就绪状态才能进入运行状态
  • 5、死亡状态:线程正常执行结束或因异常退出了run方法,进入死亡状态
  • 参考JVM中线程的状态转换图

九、讲一讲公平锁和非公平锁

十、讲一讲乐观锁和悲观锁

悲观锁和乐观锁


文章来源:https://www.cnblogs.com/jorry-yun/p/14765018.html
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐

标签云