直击面试:金九银十必备面试合集(2022)

121 篇文章 1 订阅
1 篇文章 0 订阅
本文分享了一份详尽的Java后端开发面试总结,涵盖Java OOP、集合、异常处理、并发编程、反射、序列化、JVM、Redis、Spring、MyBatis、MySQL、消息中间件MQ、Dubbo、Linux、ZooKeeper、分布式、数据结构与算法等25个关键领域,包含真实面试题和HR推荐职位信息,旨在帮助开发者在金九银十的招聘季顺利拿到大厂offer。
摘要由CSDN通过智能技术生成

金九银十来啦!做好准备了吗?

前言/背景

我分享的这份金九银十必备的 Java 后端开发面试总结包含了 JavaOOP、Java 集合容器、Java 异常、并发编程、Java 反射、Java 序列化、JVM、Redis、Spring MVC、MyBatis、MySQL 数据库、消息中间件 MQ、Dubbo、Linux、ZooKeeper、 分布式 &数据结构与算法等 25 个专题技术点,都是小编在各个大厂总结出来的面试真题,已经有很多粉丝靠这份 PDF 拿下众多大厂的 offer,今天在这里总结分享给到大家!

资料总结

由于篇幅有限,每个专题面试题只有部分的面试题,需要完整版的可以点--->>>Java面试思维导图<<<---,下面是整理的合集,以及一些我认识的 HR 发我的招聘信息,如果有需要,我可以给你们内推。

JavaOOP 面试题

1、short s1 = 1; s1 = s1 + 1;有错吗? short s1 = 1; s1 += 1; 有错吗?

2、重载和重写的区别

3、数组实例化有几种方式?

4、Java 中各种数据默认值

5、Object 类常用方法有那些?

6、java 中是值传递引用传递?

7、形参与实参区别

8、构造方法能不能重写?能不能重载?

9、内部类与静态内部类的区别?

10、Static 关键字有什么作用?

11、final 在 java 中的作用,有哪些用法?

12、String str=”aaa”,与 String str=new String(“aaa”)一样吗?

13、讲下 java 中的 math 类有那些常用方法?

14、Char 类型能不能转成 int 类型?能不能转化成 string 类型,能不能转成 double 类型

15、什么是拆装箱?

16、Java 中的包装类都是那些?

17、一个 java 类中包含那些内容?

18、那针对浮点型数据运算出现的误差的问题,你怎么解决?

19、面向对象的特征有哪些方面?

20、访问修饰符 public,private,protected,以及不写(默认) 时的区别?

21、接口有什么特点?

22、抽象类和接口的区别?

23、Hashcode 的作用

24、普通类与抽象类有什么区别?

25、什么是接口?为什么需要接口?

26、接口有什么特点?

27、拷贝和浅拷贝的区别是什么?

28、JDBC 操作的步骤

29、什么时候用 assert

30、数组有没有 length()这个方法? String 有没有 length()这个方法

31、用最有效率的方法算出 2 乘以 8 等于几?

32、String 和 StringBuilder、StringBuffer 的区别?

33、接口是否可继承(extends)接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concreteclass)?

34、一个”.java”源文件中是否可以包含多个类(不是内部类)?有什么限制?

35、Java 中的 final 关键字有哪些用法?

Java 序列化面试题

1、什么是 java 序列化?

2、保存(持久化)对象及其状态到内存或者磁盘

3、序列化对象以字节数组保持-静态成员不保存

4、Serializable 实现序列化

5、序列化 ID

6、序列化用户远程对象传输

7、writeObject 和 readObject 自定义序列化策略

8、序列化并不保存静态变量

9、序列化(深 clone 一中实现)

10、Transient 关键字阻止该变量被序列化到文件中

11、如何实现 java 序列化?

12、Transient 关键字阻止该变量被序列化到文件中

13、静态变量的序列化?

多线程 高并发

1、什么是线程?

2、继承 Thread 类

3、如何在 java 中实现线程

4、ExecutorService、 Callable、 Future 有返回值线程

5、实现多线程 Thread 和 Runnable 区别?

6、4 种线程池

7、解释 java 中的 volatile 变量

8、notify()和 notifyAll()有什么区别?

9、sleep()和 wait() 有什么区别?

10、volatile 是什么?可以保证有序性吗?

11、Thread 类中的 start() 和 run() 方法有什么区别?

12、为什么 wait, notify 和 notifyAll 这些方法不在 thread 类里面?

13、共享锁和独占锁

14、Java 中 interrupted 和 isInterruptedd 方法的区别?

15、Java 中 synchronized 和 ReentrantLock 有什么不同?

16、有三个线程 T1,T2,T3,如何保证顺序执行?

17、SynchronizedMap 和 ConcurrentHashMap 有什么区别?

18、什么是线程安全

19、重量级锁(Mutex Lock)

20、Java 线程池中 submit() 和 execute()方法有什么区别?

21、偏向锁

22、说说自己是怎么使用 synchronized 关键字,在项目中用到了吗 synchronized 关键字最主要的三种使用方式

23、什么是线程安全?Vector 是一个线程安全类吗?

24、Java 中实现多线程有几种方法

25、实现 Runnable 接口。

26、基于线程池的方式

27、如何停止一个正在运行的线程

28、线程基本方法

29、线程让步(yield)

30、线程唤醒(notify)

JVM 面试题

1、JVM 运行时内存

2、64 位 JVM 中,int 的长度是多数?

3、新生代、老年代、永久代

4、32 位和 64 位的 JVM,int 类型变量的长度是多数?

5、JAVA8 与元数据

6、分代收集算法

7、怎样通过 Java 程序来判断 JVM 是 32 位 还是 64 位?

8、分代收集算法

9、JRE、JDK、JVM 及 JIT 之间有什么不同?

10、解释 Java 堆空间及 GC?

11、JVM 内存区域

12、JAVA 强引用、软引用、弱引用、虚引用

13、虚拟机栈(线程私有)

14、分代收集算法

15、你能保证 GC 执行吗?

16、怎么获取 Java 程序使用的内存?堆使用的百分比?

17、在老年代-标记整理算法

18、描述一下 JVM 加载 class 文件的原理机制

19、Serial Old 收集器(单线程标记整理算法

20、堆(Heap-线程共享) -运行时数据区

21、G1 收集器

22、JVM 类加载机制

23、堆和栈的区别

24、什么是 Java 虚拟机?为什么 Java 被称作是“平台无关的编程语言”?

25、Parallel Old 收集器(多线程标记整理算法)

26、垃圾收集算法

27、Minor GC 与 Full GC 分别在什么时候发生?

28、你知道哪些 JVM 性能调优

29、说一下 JVM 的主要组成部分及其作用?

30、队列和栈是什么?有什么区别?

Mysql 面试题

1、MySQL 中有哪些不同的表格?

2、TokuDB( Fractal Tree-节点带数据)

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

4、Memory

5、myisamchk 是用来做什么的?

6、MyISAM 表格将在哪里存储,并且还提供其存储格式?

7、索引

8、常见索引原则有

9、如何显示前 50 行?

10、第一范式(1st NF - 列都是不可再分)

11、第二范式(2nd NF- 每个表只描述一件事情)

12、第三范式(3rd NF- 不存在对非主键列的传递依赖)

13、锁的优化策略

14、SQL 优化

15、为表中得字段选择合适得数据类型

16、什么是视图

17、什么情况下设置了索引但无法使用

18、并发事务带来哪些问题?

19、SQL 语言包括哪几部分?每部分都有哪些操作关键

20、什么是锁?

21、说说对 SQL 语句优化有哪些方法?

22、什么是乐观锁、悲观锁、时间戳、行级锁、表级锁、页级锁

Spring Cloud 面试题

1、什么是 Spring Cloud?

2、负载平衡的意义什么?

3、什么是 Spring Cloud Bus?我们需要它吗?

4、什么是 Hystrix 断路器?我们需要它吗?

5、什么是 Hystrix?它如何实现容错?

6、什么是 Netflix Feign?它的优点是什么?

7、什么是服务熔断?什么是服务降级

8、Eureka 和 zookeeper 都可以提供服务注册与发现的功能,请说说两个的区别?

9、什么是微服务

10、什么是 Hystrix 断路器?我们需要它吗

11、spring cloud 和 dubbo 区别?

12、SpringBoot 和 SpringCloud 的区别?

13、spring cloud 和 dubbo 区别?

14、说说 RPC 的实现原理

15、微服务之间是如何独立通讯的?

16、使用 Spring Cloud 有什么优势?

17、REST 和 RPC 对比

18、你所知道的微服务技术栈?

算法面试题

1、数据里有{1,2,3,4,5,6,7,8,9},请随机打乱顺序,生成一个新的数组(请以代码实现)

2、给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

3、如何解决样本类别的不均衡问题?

4、在神经网络训练过程中,为什么会出现梯度消失的问题?如何防止?

5、二分查找

6、冒泡排序算法、插入排序算法、快速排序算法、希尔排序算法、归并排序算法

7、K-Means 或 KNN 中,通常使用欧式距离来表示最近的数据点之间的距离,有时候也使用曼哈度距离,对比两者的区别。

8、参数模型与非参数模型

9、生成模型与判别模型

10、神经网络中参数量 parameters 和 FLOPs 计算

11、桶排序算法、基数排序算法、剪枝算法、回溯算法

12、AES

13、RSA

14、CRC

15、最短路径算法

16、最小生成树算法

18、有两个篮子,分别为 A 和 B,篮子 A 里装有鸡蛋,篮子 B 里装有苹果,请用面向对象的思想实现两个篮子里的物品交换(请用代码实现)

19、假设今日是 2015 年 3 月 1 日,星期日,请算出 13 个月零 6 天后是星期几,距离现在多少天(请用代码实现,谢绝调用 API 方法)

20、MD5

21、写出代码判断一个整数是不是 2 的阶次方(请代码实现,谢绝调用 API 方法)

微服务 面试题

1、微服务架构有哪些优势?

2、设计微服务的最佳实践是什么?

3、单片,SOA 和微服务架构有什么区别?

4、微服务有哪些特点?

5、微服务架构如何运作?

6、在使用微服务架构时,您面临哪些挑战?

7、微服务架构的优缺点是什么?

8、微服务有什么特点?

9、什么是领域驱动设计?

10、SOA 和微服务架构之间的主要区别是什么?

11、为什么需要域驱动设计(DDD)?

12、什么是耦合?

13、什么是无所不在的语言?

14、什么是凝聚力?

15、你对 Spring Boot 有什么了解?

16、什么是 REST / RESTful 以及它的用途是什么?

17、什么是 Spring 引导的执行器?

18、什么是 Spring Cloud?

19、Spring Cloud 解决了哪些问题?

20、在 Spring MVC 应用程序中使用 WebMvcTest 注释有什么用处?

21、你能否给出关于休息和微服务的要点?

22、您对 Distributed Transaction 有何了解?

23、什么是不同类型的微服务测试?

24、什么是有界上下文?

25、什么是 Idempotence 以及它在哪里使用?

26、什么是双因素身份验证?

27、双因素身份验证的凭据类型有哪些?

28、PACT 在微服务架构中的用途是什么?

29、什么是客户证书?

Linux 面试题

1、绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?

2、使用什么命令查看 ip 地址及接口信息?

3、怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当

4、通过什么命令指定命令提示符?

5、查看文件有哪些命令

6、列举几个常用的 Linux 命令

7、怎么对命令进行取别名?

8、建立软链接(快捷方式),以及硬链接的命令

9、当你需要给命令绑定一个宏或者按键的时候,应该怎么做呢?

10、查看文件内容有哪些命令可以使用?

11、随意写文件命令?怎么向屏幕输出带空格的字符串,比如”hello world”?

12、你的系统目前有许多正在运行的任务,在不重启机器的条件下,有什么方法可以把所有正在运行的进程移除呢?

13、移动文件用哪个命令?改名用哪个命令?

14、复制文件用哪个命令?如果需要连同文件夹一块复制呢?如果需要有提示功能呢?

15、怎样一页一页地查看一个大文件的内容呢?

16、Linux 下命令有哪几种可使用的通配符?分别代表什么含义?

17、用什么命令对一个文件的内容进行统计?(行号、单词数、字节

18、Grep 命令有什么用? 如何忽略大小写? 如何查找不含该串的行?

19、Linux 中进程有哪几种状态?在 ps 显示出来的信息中分别用什么符号表示的?

20、怎样查看一个 linux 命令的概要与用法?假设你在/bin 目录中偶然看到一个你从没见过的的命令,怎样才能知道它的作用和用法呢?

21、怎么查看当前进程?怎么执行退出?怎么查看当前路径?

22、Ls 命令执行什么功能? 可以带哪些参数,有什么区别?

23、你平时是怎么查看日志的?

24、终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令?

25、删除文件用哪个命令?如果需要连目录及目录下文件一块删除呢?删除空文件夹用什么命令?

26、怎么使一个命令在后台运行?

27、目录创建用什么命令?创建文件用什么命令?复制文件用什么命令?

28、使用哪一个命令可以查看自己文件系统的磁盘空间配额呢?

以上是 2022 秋招 Java 后端开发面试总结【25 个技术专题】,由于篇幅有限,每个专题面试题只有部分的面试题。

个人经验总结

大家想必也知道现在面试就是看项目经验+基本技术+个人潜力(也就是值不值得培养)。总之就是每一次面试都是对我们能力的检验(无论是软实力还是硬实力)。软实力其实就是简历包装,自我介绍,与面试官交谈技巧等等;所谓硬实力就是我们所掌握的技术情况了。所以每次面试之前需要做好充分的准备,切不可临时抱佛脚。技术基础打好后,面试前算题巩固也是必不可少的!

寄语

希望大家都能在金九银十收到心仪的offer!

加油!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值