关于java:2021年面试大盘点金三银四Java春招面试高频考点总结附答案

2次阅读

共计 3327 个字符,预计需要花费 9 分钟才能阅读完成。

写在后面:

  • 算是对本人最近经验的一些面试的小小总结吧,小张要持续加油呀 🤣 🤣
  • 我的项目:
  • 介绍我的项目的背景、架构、性能、目前实现的状况、部署计划?
  • 我的项目实现过程中的难点以及如何解决的?
  • 哪个我的项目播种更大?
  • 为什么用 xx 框架 / 技术来实现?
  • 在我的项目中次要承当了哪些工作?
  • 如果你的我的项目中服务端同时有大量申请,如何解决?

    上面为大家整顿了金三银四 java 春招高频考点总结以及我总结的答案,心愿对大家有帮忙!

Java 根底:

  • String、StringBuffer、StringBuilder 的区别?
  • JDK1.7 和 JDK1.8 有哪些区别?
  • Java 中有哪些罕用的容器类?
  • HashMap 底层是如何实现的?JDK1.8 和 JDK1.7 的 HashMap 的实现有哪些区别?
  • HashMap 扩容为什么都要扩大为原来的 2 倍?
  • 高并发状况下应用 HashMap 会呈现哪些问题?如何解决?
  • JDK1.7 中 ConcurrentHashMap 的底层构造?
  • JDK1.8 对 ConcurrentHashMap 做了哪些改良?
  • JDK1.8 中 ConcurrentHashMap 保障并发平安的原理?
  • ArrayList 和 LinkedList 的区别?
  • LinkedList 的底层数据结构?插入删除元素的时空复杂度剖析?
  • ArrayList 的扩容机制?
  • 什么是 Fast-fail?
  • 什么是序列化?如何实现序列化?
  • transient 关键字的作用?
  • Java 中有哪些 IO 流?字节流和字符流如何进行转换?
  • Java 的反射机制?为什么须要反射?反射次要用于哪些场景?
  • 应用反射创立实例和 new 一个对象的区别?
  • 讲一下线程池的作用?为什么须要线程池?创立线程为什么比拟耗时?线程池的外围参数有哪些?线程池中创立一个线程的机会?

Java 并发:

  • Java 中如何创立一个线程?实现 Collable 接口和实现 Runnable 的区别?
  • 创立一个线程时,会在哪些区域调配空间?
  • Java 中线程间通信的形式有哪些?
  • 保障线程同步的机制有哪些?
  • 什么是 ThreadLocal?实现原理?
  • 什么是 AQS?AQS 有什么作用?常见的基于 AQS 的组件有哪些?
  • java 的内存模型?
  • 指令重排序是什么?
  • happens-before 规定是什么?作用?有哪些规定?
  • volatile 关键字的作用?实现原理?
  • 什么是 synchronized?实现原理?
  • synchronized 能够润饰哪些内容,别离锁定的是什么?
  • JDK1.6 后 synchronized 关键字底层做了哪些优化?
  • 如何基于双重查看锁实现单例模式?volatile 关键字的作用?为什么要两次加锁?

JVM:

  • 运行时数据分区:
  • JVM 将数据区域划分为哪些局部,别离存储哪些内容?
  • 哪些区域是线程公有的,哪些是线程私有的?
  • 什么是 TLAB?作用?
  • 垃圾回收机制:
  • JVM 运行时数据分区有哪些?别离存储哪些内容?有什么特点?
  • 垃圾回收次要回收哪些区域?
  • 如何判断一个对象是否可回收?
  • 可达性剖析后发现一个对象不在援用链上,那它肯定会被回收吗?
  • 垃圾回收算法有哪些?
  • 罕用的垃圾回收器有哪些?
  • G1 回收器采纳了什么样的回收算法?
  • 什么时候会触发 Full GC?
  • 服务器运行过程中频繁产生 Full GC,可能存在哪些问题?如何排查?
  • 类加载机制:
  • 自定义一个 String 类,能够被加载到吗?为什么?
  • 什么是双亲委派机制?
  • 如果想要加载到自定义的 String 类,应该怎么做?(如何突破双亲委派机制?)
  • 哪些状况会触发类的初始化?
  • 类加载的过程?
  • 什么状况下两个类是相等的?

MySQL:

  • SQL 执行过程、性能剖析:
  • MySQL 包含哪些组件?(连接器、查问缓存、分析器、优化器、执行器)(Server 层 + 存储引擎)
  • 为什么不举荐应用查问缓存性能?为什么 MySQL 8.0 版本删除了查问缓存?
  • 查问 sql 语句的执行过程?
  • 更新 sql 语句的执行过程?
  • 什么是 crash-safe?
  • MySQL 实现 crash-safe 的原理?(binlog、redolog、undolog、WAL 机制、两阶段提交)
  • 更新 SQL 语句执行流程中,总共须要写 3 个日志,这 3 个是不是都须要,能不能进行简化?
  • 两阶段提交的形式会存在什么问题?解决办法?
  • 什么是组提交?用于解决什么问题?
  • 假如事务提交过程中,MySQL 过程忽然奔溃,重启后是怎么保证数据不失落的?
  • 如何查看 SQL 的执行状况?(执行打算、explain 指令)
  • 如何在 MySQL 中查找效率慢的 SQL 语句呢?(慢查问日志)

    死锁:

  • MySQL 的 InnoDB 存储引擎反对哪些类型的锁?
  • 什么是死锁?MySQL 中哪些状况下会产生死锁?
  • 如何解决死锁?(超时期待、wait-for graph)
  • 如何防止死锁的产生?
  • 如何查看是否产生了死锁?(死锁日志)

    索引机制:

  • InnoDB 存储引擎的索引机制底层采纳了什么构造?
  • B+ 树的特点有哪些?
  • Hash 索引和 B + 索引比照剖析?
  • 增加索引时须要留神什么?什么状况下不适宜增加索引?
  • 应用索引肯定可能进步查问的性能吗?为什么?
  • 什么是最左前缀准则?

    事务机制:

    什么是事务?事务的个性?
    事务的隔离级别有哪几种?
    并发事务会带来哪些问题?不同的隔离级别别离能够防止哪些问题的产生?
    幻读产生时的情景?
    MySQL 默认的事务级别是什么?能够防止哪些问题?
    事务回滚在 MySQL 中是如何实现的?
    MyISAM 和 InnoDB 存储引擎有哪些区别?

计网:

  • TCP/UDP:
  • TCP 和 UDP 的特点?
  • TCP 三次握手的过程?
  • 四次挥手的过程?
  • 为什么须要三次握手?
  • 三次握手如果每次对方都没有收到会怎么样?分状况介绍。
  • 为什么连贯的时候是三次握手,敞开的时候却是四次握手?
  • 挥手时客户端为什么最初还要期待 2MSL?
  • 如果曾经建设了连贯,然而客户端忽然呈现故障了怎么办?(保活计时器)
  • TCP 依附哪些机制来保障牢靠传输?
  • 数据分块传输
  • 数据包校验
  • 失序数据包重排序
  • 应答机制
  • 流量管制:滑动窗口机制(接管窗口)
  • 拥塞管制:慢开始、拥塞防止、快重传、快复原(拥塞窗口)
  • 超时重传
  • 应用 UDP 时如果想要保障可靠性,能够如何实现?
  • TCP 和 UDP 别离对应的应用层协定有哪些?
  • HTTP/HTTPS:
  • 如何了解 HTTP 协定是无状态的?HTTP 如何保留用户状态?
  • Cookie 的作用是什么? 和 Session 有什么区别?
  • HTTP 和 HTTPS 的区别?(安全性、资源耗费、端口等)
  • HTTPS 的工作原理?
  • HTTP 的常见状态码有哪些?别离示意什么?
  • OSI 七层体系结构每一层的作用?以及每层常见的协定。
  • 浏览器输出 URL 回车后产生了什么?

操作系统:

  • 过程间通信的形式有哪些?基本原理?
  • 管道 / 匿名管道:
  • 有名管道:
  • 信号
  • 音讯队列
  • 信号量
  • 共享内存
  • 套接字
  • 过程调度算法有哪些?
  • 死锁:
  • 什么是死锁?死锁产生的起因?死锁产生的必要条件?(互斥、不可剥夺、申请与放弃、循环期待)
  • 死锁的解决根本策略和罕用办法?
  • 页面置换算法有哪些?

Spring 全家桶:

  • Spring 和 SpringBoot 有什么区别吗?为什么须要 SpringBoot?
  • 什么是 MVC?SpringMVC 解决申请的流程?
  • Spring 中 AOP 的实现的形式有哪些?
  • Cglib 和 JDK 动静代理的区别?
  • Spring 运行过程中如何旋转应用的代理?
  • Spring 中 IoC 的实现原理?
  • 单例 Bean 是并发平安的吗?为什么?
  • Spring 中事务是如何实现的?
  • Spring 中 Controller 是单例还是多例?如何保障并发的平安?

其余:

  • 排序算法:时空复杂度、实现原理?
  • 什么是分布式一致性算法?Raft 算法的原理?
  • 一致性哈希算法?
  • HDFS 的架构,读写流程?如果一个 DataNode 挂掉了怎么办?NameNode 挂掉怎么办?如何容灾?
  • 什么是 RPC?实现一个 RPC 框架次要须要思考哪些方面?
  • and so on……
  • (至多要非常相熟两三个框架 / 组件,能够是我的项目中用到的,也能够是目前比拟支流的,比方 Redis、Netty、Hadoop、RPC 框架等)

最初

只有技术过硬,在哪儿都不愁待业,“万般带不去,唯有业随身”学习原本就不是在课堂那几年说了算,而是在人生的旅途中不间断的事件。
人生短暂,别稀里糊涂的活一辈子,不要将就。
文章内容中波及到的 Java 面试题、源码文档,技术笔记等学习材料,均能够收费分享给大家学习,只需你动动手多多反对即可!
有须要的敌人欢送关注公众号:前程有光,回复材料支付!

正文完
 0