写点什么

阿里大佬耗时一年整理的 Java 面试常考题,GitHub 点赞 33K+

  • 2022 年 8 月 20 日
    湖南
  • 本文字数:2793 字

    阅读完需:约 9 分钟

阿里大佬耗时一年整理的Java面试常考题,GitHub点赞33K+

就目前大环境来看,跳槽成功的难度比往年高很多。一个明显的感受:今年的面试,无论一面还是二面,都很考验 Java 程序员的技术功底。这不马上又到了面试跳槽的黄金段,成功升职加薪,不成功饱受打击。当然也要注意,跳槽时时刻刻都在发生,但是我建议大家跳槽之前,先想清楚为什么要跳槽。切不可跟风,看到同事一个个都走了,自己也盲目的开始面试起来(期间也没有准备充分),到底是因为技术原因(影响自己的发展,偏移自己规划的轨迹),还是钱给少了,不受重视。只有考虑好了跳出去后才不会后悔。

对于面试我花费了一年时间进行收集整理,终于整理完成一份四万字的 Java 面试核心知识点 PDF 文档,还有诸多面试专题的详细剖析。包含面试必问知识点:Java 集合,JVM,多线程,微服务,源码框架,分布式,设计模式,消息中间件,数据结构,算法等等。原预计花六个月零碎时间整理,没想到最后花了将近一年的时间才完成。由于文章篇幅限制,下面分享出来的将是以面试题或图片形式展现出来,希望对各位同仁接下来的面试已经自身知识体系理解有一定的帮助。

  • 近期想跳槽,要面试的 Java 程序员,查漏补缺,以便尽快弥补短板;

  • 想了解“一线互联网公司”最新技术要求,对比找出自身的长处和弱点所在,评估自己在现有市场上的竞争力如何;

  • 做了几年 Java 开发,但还没形成系统的 Java 知识体系,缺乏清晰的提升方向和学习路径的程序员。

相信它会给大家带来很多收获。



Java 面试题分享

MySQL 面试专题

  1. 数据库三范式是什么?

  2. 有哪些数据库优化方面的经验?

  3. 请简述常用的索引有哪些种类?

  4. 以及在 mysql 数据库中索引的工作机制是什么?

  5. MySQL 的基础操作命令:

  6. mysql 的复制原理以及流程。

  7. mysql 支持的复制类型?

  8. mysql 中 myisam 与 innodb 的区别?

  9. mysql 中 varchar 与 char 的区别以及 varchar(50)中的 50 代表的涵义?

  10. MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?

  11. 表中有大字段 X(例如:text 类型),且字段 X 不会经常更新,以读为主,将该字段拆成子表好处是什么?

  12. MySQL 中 InnoDB 引擎的行锁是通过加在什么上完成(或称实现)的?

  13. MySQL 中控制内存分配的全局参数,有哪些?

  14. 若一张表中只有一个字段 VARCHAR(N)类型,utf8 编码,则 N 最大值为多少(精确到数量级即可)?

  15. [SELECT*]和[SELECT 全部字段]的 2 种写法有何优缺点?

  16. HAVNG 子句和 WHERE 的异同点?

  17. MySQL 当记录不存在时 insert,当记录存在时 update,语句怎么写?

  18. MySQL 的 insert 和 update 的 select 语句语法

Spring 面试专题

  1. 什么是 spring?

  2. 使用 Spring 框架的好处是什么?

  3. Spring 由哪些模块组成?

  4. 核心容器(应用上下文)模块。

  5. BeanFactory–BeanFactory 实现举例。

  6. 解释 AOP 模块

  7. 解释 JDBC 抽象和 DAO 模块。

  8. 解释 WEB 模块。

  9. Spring 配置文件

  10. 什么是 SpringIOC 容器?

  11. IOC 的优点是什么?

  12. ApplicationContext 通常的实现是什么?

  13. Bean 工厂和 Applicationcontexts 有什么区别?

  14. 有哪些不同类型的 IOC(依赖注入)方式?

  15. 哪种依赖注入方式你建议使用,构造器注入,还是 Setter 方法注入?

  16. 什么是 Springbeans?

  17. 一个 SpringBean 定义包含什么?

  18. 如何给 Spring 容器提供配置元数据?

  19. 你怎样定义类的作用域?

  20. 解释 Spring 支持的几种 bean 的作用域。

  21. Spring 框架中的单例 bean 是线程安全的吗?

JVM 面试专题

  1. 堆里面的分区:Eden,survival(from+to),老年代,各自的特点。

  2. GC 的两种判定方法:

  3. GC 的三种收集方法:标记清除、标记整理、复制算法的原理与特点,分别用在什么地方,如果让你优化收集方法,有什么思路?

  4. GC 收集器有哪些?CMS 收集器与 G1 收集器的特点。

  5. MinorGC 与 FullGC 分别在什么时候发生?

  6. JVM 内存分哪几个区,每个区的作用是什么?

  7. 如何判断一个对象是否存活?(或者 GC 对象的判定方法)

  8. 简述 java 垃圾回收机制?

  9. java 中垃圾收集的方法有哪些?

  10. java 内存模型

  11. java 类加载过程?

  12. 简述 java 类加载机制?

  13. 类加载器双亲委派模型机制?

  14. 什么是类加载器,类加载器有哪些?

  15. 简述 java 内存分配与回收策率以及 MinorGC 和 MajorGC

由于文章篇幅限制更多的就不在这展示了,下面列举部分例题答案

面试题含答案

1、数据库三范式是什么?

  1. 第一范式(1NF):字段具有原子性,不可再分。(所有关系型数据库系统都满足第一范式数据库表中的字段都是单一属性的,不可再分)

  2. 第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。要求数据库表中的每个实例或行必须可以被惟一地区分。通常需要为表加上一个列,以存储各个实例的惟一标识。这个惟一属性列被称为主关键字或主键。

  3. 满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。 >所以第三范式具有如下特征:>>1. 每一列只有一个值 >>2. 每一行都能区分。 >>3. 每一个表都不包含其他表已经包含的非主关键字信息。

2、mysql 的复制原理以及流程。

Mysql 内建的复制功能是构建大型,高性能应用程序的基础。将 Mysql 的数据分布到多个系统上去,这种分布的机制,是通过将 Mysql 的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。*复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。

当一个从服务器连接主服务器时,它通知主服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。过程如下:

  1. 主服务器把更新记录到二进制日志文件中。

  2. 从服务器把主服务器的二进制日志拷贝到自己的中继日志(replaylog)中。

  3. 从服务器重做中继日志中的时间,把更新应用到自己的数据库上。

3、什么是 SpringIOC 容器?

Spring IOC 负 责 创 建 对 象 , 管 理 对 象 ( 通 过 依 赖 注 入(DI) , 装 配 对 象 , 配 置 对 象 , 并 且 管 理 这 些 对 象 的 整 个 生 命 周 期 。

4、简述 java 内存分配与回收策率以及 MinorGC 和 MajorGC

  1. 对象优先在堆的 Eden 区分配。

  2. 大对象直接进入老年代.

  3. 长期存活的对象将直接进入老年代.当 Eden 区没有足够的空间进行分配时,虚拟机会执行一次 Minor GC.Minor Gc 通常发生在新生代的 Eden 区,在这个区的对象生存期短,往往发生 Gc 的频率较高,回收速度比较快;Full Gc/Major GC 发生在老年代,一般情况下,触发老年代 GC 的时候不会触发 Minor GC,但是通过配置,可以在 Full GC 之前进行一次 Minor GC 这样可以加快老年代的回收速度。

更多的就不贴出来了,不然这篇文章篇幅就太大了下面以图片形式展现还请谅解。资料整理花费了一年的零碎时间,希望能对大家今后有所帮助

Spring 面试专题:



JVM 面试专题:



MySQL 面试专题:



还有更多面试知识点专题:





结束

感谢阅读,感谢赞赏,提前祝大家都拿到心仪 offer。

资料获取方式:

本次的内容大致的就介绍到这里拉,由于内容太多,只能简单介绍到这里,如有需要以上内容的完整版,大家可以私信我获取哦~~后台关注我后:添加小助理【mxt220214】即可获取,希望能对大家今后有所帮助

用户头像

需要资料添加小助理vx:mxt220214 2022.08.16 加入

专注Java领域干货分享,不限于面试技巧、JVM、多线程、Mysql、Spring、数据库 、微服务、算法 、JDK、分布式等相关知识,期待与您一同进步。

评论

发布
暂无评论
阿里大佬耗时一年整理的Java面试常考题,GitHub点赞33K+_Java_Java面试那些事儿_InfoQ写作社区