写点什么

Github 上 365 道 Java 高频面试复习题,助你吊打面试官

用户头像
周老师
关注
发布于: 2021 年 05 月 27 日

我这里收集了一套大厂的面试题包含了答案,技术点概括了:基础、JVM、多线程并发、spring、mybatis、springboot、mysql、Redis、springcloud、Nginx、ZK、kafka、MQ、数据结构与算法、Linux、Elasticsearchi 以及还有简历方面的文案,对你应该会有所帮助!

话不多说,上正题

数据结构与算法面试

  1. 1.常用的数据结构

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

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

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

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

JVM 面试

  1. 1.知识点汇总

  2. 2.知识点详解:

  3. 3.类加载与卸载

  4. 4.简述一下 JM 的内存模型

  5. 5.堆和栈的区别

  6. 6.什么时候会触发 FullC

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

  8. 8.Java 内存结构

  9. 9.对象分配规则

  10. 10.描述一下 J 加载 class 文件的原理机制?

  11. 11.Java 对象创建过程

  12. 12.类的生命周期

  13. 13.简述 Javs 的对象结构

  14. 14.如何判断对象可以被回收?

  15. 15.JVM 的永久代中会发生垃圾回收么?

  16. 16.垃圾收集算法

  17. 17.调优命令有哪些?

  18. 18.调优工具

  19. 19.Minor GC 与 Full GC 分别在什么时候发生?

  20. 20.你知道哪些 JM 性能调优

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

  22. 22.简述 J ava 垃圾回收机制?

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

  24. 24.你有没有遇到过 OutOfMemory 问题?你是怎么来处理这个问题的?处理过程中有哪些收获?

  25. 26.跟 JTM 内存相关的几个核心参数图解

  26. 27.如何启动系统的时候设置 JVM 的启动参数

多线程、并发面试

  1. 1.Java 中实现多线程有几种方法

  2. 2.如何停止-个正在运行的线程

  3. 3.noti fy 0 和 noti fyAll 0 有什么区别?

  4. 4.sleep 0 和 waitO 有什么区别

  5. 5.volatile 是什么?可以保证有序性吗?

  6. 6.Thread 类中的 start0 和 run0 方法有什么区别?

  7. 7.为什么 wait, notify 和 notifyA11 这些方法不在 thread 类里面?

  8. 8.为什么 wai t 和 noti fy 方法要在同步块中调用?

  9. 9.Java 中 interrupted 和 isInterruptedd 方法的区别?

  10. 10.Java 中 synchronized 和 Reentr antLock 有什么不同?

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

  12. 12.Symchr oni Ie dMap 和 C oncurrentHashMap 有什么区别?

  13. 13.什么是线程安全

  14. 14.Thread 类中的 yi el a 方法有什么作用?

  15. 15.Java 线程池中 submitO 和 execute 0 方法有什么区别?

  16. 16.说-说自己对于 synchronized 关键字的了解

  17. 17.说说自己是怎么使用 symchronized 关键字,在项目中用到了吗 synchr oni zed 关键字最主要的三种使用方式:

  18. 18.什么是线程安全? Vector 是一个线程安全类吗?

  19. 19.volatile 关键字的作用?

  20. 20.常用的线程池有哪些?

  21. 21.简述一下你对线程 池的理解

  22. 22.Java 程序是如何执行的

  23. 23.说一说自己对于 synchronized 关键字的了解

  24. 24.说说自己是怎么使用 synchronized 关键字,在项目中用到了吗

  25. 25.讲一下 synchronired 关键字的底层原理

  26. 26.为什么要用线程池?

  27. 27.实现 Runnabl e 接口和 Callable 接口的区别

  28. 28.执行 execute 0 方法和 submi t0 方法的区别是什么呢?

  29. 29.如何创建线程池

基础面试

  1. 1.Java 语言有哪些特点

  2. 2.面向对象和面向过程的区别

  3. 3.八种基本数据类型的大小,以及他们的封装类

  4. 4.标识符的命名规则。

  5. 5.instanceof 关键字的作用

  6. 6.Java 自动装箱与拆箱

  7. 7.重载和重写的区别

  8. 8.equa1s 与==的区别

  9. 9.Hasheode 的作用

  10. 10.String\ String StringBuffer 和 StringBuilder 的区别是什么?

  11. 11.ArrayList 和 1inke aList 的区

  12. 12.HashMap 和 HashT able 的区别

  13. 13.Collecti on 包结构,与 Collecti ons 的区别

  14. 14.Javs 的四种引用,强弱软虚

  15. 15.泛型常用特点

  16. 16.Jav 创建对象有几种方式?

  17. 17.有没有可能两个不相等的对象有相同的 hasheode

  18. 18.深拷贝和浅拷贝的区别是什么?

  19. 19.final 有哪些用法?

  20. 20.stati 都有哪些用法?

  21. 21.3*0. 1==0. 3 返回值是什么

  22. 22.a=a+b 与 a+=b 有什么区别吗?

  23. 23.try catch finally; try 里有 return, finally 还执行么?

  24. 24.Exepti on 与 Error 包结构

  25. 25.00M 你遇到过哪些情况,SOF 你遇到过哪些情况

  26. 26.简述线程、程序、进程的基本概念。以及他们之间关系是什么

  27. 27.线程有哪些基本状态?

  28. 28.Java 序列化中如果有些字段不想进行序列化,怎么办?

  29. 29.Java 中 I0 流

  30. 30.Java I0 与 HI0 的区别

  31. 31.java 反射的作用于原理

  32. 32.说说 List, Set, Map 三者的区别?

Spring 面试

  1. 1.Sprine 的 I0C 和 AOP 机制?

  2. 2.Spring 中 Autowired 和 Resouree 关键字的区别?

  3. 3.依赖注入的方式有几种,各是什么?

  4. 4.讲一下什么是 Spring

  5. 5.Spr ing MVC 流程.

  6. 6.Spri ngMVYC 怎么样设定重定向和转发的?

  7. 7. Sprin/MVC 常用的注解有哪些?

  8. 8.Sprina 的 AOP 理解:

  9. 9.Sprine 的 I0C 理解

  10. 10.解释- -下 spring be an 的生命周期

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

  12. 12. Spring 基于 xm1 注入 bean 的几种方式:

  13. 13.Spring 框架中都用到了哪些设计模式?

SpringBoot 面试

  1. 1.什么是 SpringBoot?为什么要用 SpringBoot

  2. 2.Spring Boot. 的核心注解是哪个?它主要由哪几个注解组成的?

  3. 3.运行 Spring Boot 有哪几种方式

  4. 4.如何理解 Spring Boot 中的 Starters?

  5. 5.如何在 Spring Boo.启动的时候运行一些特定的代码?

  6. 6.Spring Boot 需要独立的容器运行吗?

  7. 7.Spring Boot 中的监视器是什么?

  8. 8.如何使用 Spring Boot 实现异常处理?

  9. 9.你如何理解 Spring Boot 中的 Starters?

  10. 10.springboot 常用的 starter 有哪些

  11. 11.SpringBoot 实现热部署有哪几种方式?

  12. 12.如何理解 Spring Boot 配置加载顺序?

  13. 13.Spring Boot 的核心配置文件有哪几个?它们的区别是什么?

  14. 14.如何集成 Spring Boot 和 ActiveMQ?

  15. 15.如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?

  16. 16.Spring Boot、Spring MVC 和 Spring 有什么区别?

  17. 17. 能否举一个例子来解释更多 Staters 的内容?

  18. 18.Spring Boot 还提供了其它的哪些 Starter Project Opti ons

MySQL 面试

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

  2. 2.数据库引擎有哪些

  3. 3.InoDB 与 MyISAM 的区别

  4. 4.数据库的事务

  5. 5.索引问题

  6. 6.SQL 优化

  7. 7.简单说一说 drop、 delete 与 truncate 的区别

  8. 8.什么是视图

  9. 9.什么是内联接、左外联接、右外联接?

  10. 10.并发事务带来哪些问题?

  11. 11.事务隔离级别有哪些?MySQI 的默认隔离级别是?

  12. 12.大表如何优化?

  13. 13.分库分表之后,id 主键如何处理?

  14. 14.mysq1 有关权限的表都有哪几个

  15. 15.mysq1 有哪些数据类型

  16. 16.创建索引的三种方式,删除索引

Mybatis 面试

  1. 1.什么是 MyBatis

  2. 2.MyBati s 的优点和缺点

  3. 3.#}和 $ {}的区别是什么?

  4. 4.当实体类中的属性名和表中的字段名不一样,怎么办?

  5. 5.Mybatis 是如何进行分页的?分页插件的原理是什么?

  6. 6.Mybatis 是如何将 sql 执行结果封装为目标对象并返回的?都有哪些映射形式?

  7. 7.如何执行批量插入?

  8. 8.Xm1 映射文件中,除了常见的 select |insert lupdae |delete 标签之外,还有哪些标签?

  9. 9.MyBatis 实现一对一有几种方式?具体怎么操作的?

  10. 10.Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?

  11. 11.Mybatis 的一级、二级缓存:

Redis 面试

  1. 1.Redi s 持久化机制

  2. 2.缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题

  3. 3.热点数据和冷数据是什么

  4. 4.Memcache 与 Redi s;的区别都有哪些?

  5. 5.单线程的 redi s 为什么这么快

  6. 6.redi s 的数据类型,以及每种数据类型的使用场景

  7. 7.redi s 的过期策略以及内存淘汰机制

  8. 8.Redis 为什么是单线程的

  9. 9.Redis 常见性能问题和解决方案?

  10. 10.为什么 Redi s 的操作是原子性的,怎么保证原子性的?

  11. 11.Redis 事务

Nginx 面试

  1. 1.简述一下什么是 Nginx,它有什么优势和功能?

  2. 2.Nginx 是如何处理一个 HTTP 请求的呢?

  3. 3.列举-些 Ngi nx 的特性

  4. 4.请列举 Nginx 和 Apache 之间的不同点

  5. 5.在 Hginx 中;如何使用未定义的服务器名称来阻止处理请求?

  6. 6.请解释 Nei rx 服务器上的 Master 和 W orker 进程分别是什么?

  7. 7.请解释代理中的正向代理和反向代理

  8. 8.解释 Nginx 用途

SpringCloud 面试

  1. 1.什么是 SpringCloud

  2. 2.什么是微服务

  3. 3.SpringCloud 有什么优势

  4. 4.什么是服务熔断?什么是服务降级?

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

  6. 6.SpringBoot 和 SpringCloud 的区别?

  7. 7.负载平衡的意义什么?

  8. 8.什么是 Hystrix?它如何实现容错?

  9. 9.什么是 Hystrix 断路器?我们需要它吗?

  10. 10.说说 RPC 的实现原理

Zookeeper 面试

  1. 1. ZooKeeper 是什么?

  2. 2. ZooKeeper 提供了什么?

  3. 3. Zookeeper 文件系统

  4. 4. ZAB 协议?

  5. 5. 四种类型的数据节点 Znode

  6. 6. Zookeeper Watcher 机制--数据变更通知

  7. 7.客户端注册 Watcher 实现

  8. 8. 服务端处理 Watcher 实现

  9. 9.客户端回调 Watcher

  10. 10. ACL 权限控制机制

  11. 11. Chroot 特性

  12. 12.会话管理

  13. 13.服务器角色

  14. 14. Zookeeper 下 Server 工作状态

  15. 15.数据同步

  16. 16. zookeeper 是如何保证事务的顺序一致性的?

  17. 17.分布式集群中为什么会有 Master?

  18. 18. zk 节点宕机如何处理?

  19. 19. zookeeper 负载均衡和 nginx 负载均衡区别

  20. 20. Zookeeper 有哪几种几种部署模式?

  21. 21.集群最少要几台机器,集群规则是怎样的?

  22. 22. 集群支持动态添加机器吗?

  23. 23. Zookeeper 对节点的 watch 监听通知是永久的吗?为什么不是永久的?

  24. 24. Zookeeper 的 java 客户端都有哪些?

  25. 25. chubby 是什么,和 zookeeper 比你怎么看?

  26. 26. 说几个 zookeeper 常用的命令。

  27. 27. ZAB 和 Paxos 算法的联系与区别?

  28. 28. Zookeeper 的典型应用场景

Kafka 面试

  1. 1.如何获取 topic 主题的列表

  2. 2.生产者和消费者的命令行是什么?

  3. 3.consumer 是推还是拉?

  4. 4.讲讲 kafka 维护消费状态跟踪的方法

  5. 5.讲一下主从同步

  6. 6.为什么需要消息系统,mysql 不能满足需求吗?

  7. 7.Zookeeper 对于 Kafka 的作用是什么?

  8. 9.Kafka 判断-个节点是否还活着有那两个条件?

  9. 10.Kafka 与传统 MQ 消息系统之间有三个关键区别

  10. 11.讲一讲 kafka 的 ack 的三种机制

  11. 12.消费者如何不自动提交偏移里由应用提交?

  12. 13.消费者故障,出现活锁问题如何解决?

  13. 14.如何控制消费的位置

  14. 15.kafka 分布式(不是单机)的情况下,如何保证消息的顺序消费

  15. 16.kafka 的高可用机制是什么?

  16. 17.kafka 如何减少数据丢失

  17. 18.kafka 如何不消费重复数据?比如扣款,我们不能重复的扣。

MQ 面试

  1. 1.为什么使用顺

  2. 2.MQ 优缺点

  3. 3.Kafka、ActiveMQ、Rabbi tMQ、RocketMQ 都有什么区别?

  4. 4.如何保证高可用的?

  5. 5.如何保证消息的可靠传输?如果消息丢了怎么办

  6. 6.如何保证消息的顺序性

  7. 7.如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?

  8. 8.设计 M9 的思路

Elasticsearch 面试

  1. 1.elasticsearch. 了解多少,说说你们公司 es. 的集群架构,索引数据大小,分片有多少,以及一些调优手段。

  2. 2.elasticsear ch 的倒排索引是什么

  3. 3.elasticsearch 索引数据多了怎么办,如何调优,部署

  4. 4.elasticsearch 是如何实现 mster 选举的

  5. 5.详细描述一 下 Elasticsearch 索引文档的过程

  6. 6.详细描述一 下 Flasticsearch 搜索的过程?

  7. 7.Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法

  8. 8.lucence 内部结构是什么?

  9. 9.Elasticsearch 是如何实现 Master 选举的?

  10. 10.Elasticsearch 中的节点(比如共 20 个),其中的 10 个

  11. 11.客户端在和集群连接时,如何选择特定的节点执行请求的?

  12. 12.详细描述一 下 Elasticsearch 索引文档的过程。

  13. 13.详细描述一 下 Elasticsearch 更新和删除文档的过程。

  14. 14.详细描述一 下 Elasticsearch 搜索的过程。

  15. 15.在 Elasticsearch 中,是怎么根据一个词找到对应的倒排索引的?

  16. 16.Elasticsearch 在部署时:又 Linux 的设置有哪些优化方法?

  17. 17.对于 GC 方面,在使用 Elasticsearch 时要注意什么?

  18. 18.Elasticsearch 对于大数据量(上亿量级) 的聚合如何实现?

  19. 19.在并发情况下,Flasticsearc h 如果保证读写- 致?

  20. 20.如何监控 Elasticsearch 集群状态?

  21. 21.介绍下你们电商搜索的整体技术架构。

  22. 22.介绍一下你们的个性化搜索方

  23. 23.是否了解字典树?

  24. 24.拼写纠错是如何实现的?

Linux 面试

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

  2. 2.怎么查看当前进程?怎么执行退出?怎么查看当前路径?

  3. 3.怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户 id?查看指定帮助用什么命令?

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

  5. 5.建立软链接(快捷方式),以及硬链接的命令。

  6. 6.目录创建用什么命令?创建文件用什么命令?复制文件用什么命令?

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

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

  9. 9.终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令?

  10. 10.移动文件用哪个命令?改名用哪个命令?

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

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

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

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

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

  16. 16.Linur 中进程有哪几种状态?在 ps 显示出来的信息中,分别用什么符号表示的?

  17. 17.怎么使一个命令在后台运行?

  18. 18.利用 ps 怎么显示所有的进程?怎么利用 ps 查看指定进程的信

  19. 19.哪个命令专 i ]用来查看后台任务?

  20. 20.把后台任务调到前台执行使用什么命令?把停下的后台任务在后台执行起来用什么命令?

  21. 21.终止进程用什么命令?带什么参数?

  22. 22.怎么查看系统支持的所有信号?

  23. 23.搜索文件用什么命令?格式是怎么样的?

  24. 24.查看当前谁在使用该主机用什么命令?查找自己所在的终端信息用什么命令?

  25. 25.使用什么命令查看用过的命令列表?

  26. 26.使用什么命令查看磁盘使用空间?空闲空间呢?

  27. 27.使用什么命令查看网络是否连通?

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

  29. 29.查看各类环境变量用什么命令

  30. 30.通过什么命令指定命令提示符

  31. 31.查找命令的可执行文件是去哪查找的?怎么对其进行设置及添加

  32. 32.通过什么命令查找执行命令?

  33. 33.怎么对命令进行取别名?

  34. 34.du 和 df 的定义,以及区别

  35. 35.awk 详解。

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

  37. 37.如果一个 linux 新手想要知道当前系统支持的所有命令的列表, 他需要怎么做?

  38. 38.如果你的助手想要打印出当前的目录栈:你会建议他怎么做?

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

  40. 40.bash shell 中的 hash 命令有什么作用?

  41. 41.哪-个 bash 内置命令能够进行数学运算。

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

  43. 43.数据字典属于哪-个用户的?

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

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

  46. 46.列举几个常用的 Linux 命令

  47. 47.你平时是怎么查看日志的?

简历模板

  1. 1.为什么说简历很重要?

  2. 2.先从面试来说

  3. 3.再从面试说起

  4. 4.必知必会的几点

  5. 5.必须了解的两大法则

  6. 6.项目经历怎么写

  7. 7.专业技能怎么写

  8. 8.排版注意事项

  9. 9.其他一些小 tips

有了面试题,以上所有问题的答案都统一收集在 Java 面试汇总里面了,希望这份面试宝典能给到大家帮助,在金九银十能拿到心仪的 offer,拿到满意的高资!

金九银十必备 Java 面试宝典、Java 面试汇总、简历模板、核心知识,感兴趣的请见文末


总结

面试必知

了解自己的能力、要应聘的公司、自己要应聘的岗位,提前做好自己我介绍以及项目介绍等等方面的功课,确保你能在面试过程中简短清晰的回答出来(可以用 Star 法则来组织自己的语言)


Java 面试宝典

Java 面试整整的覆盖了大量知识点,十分适合用来复盘



简历模板

看看优秀的简历模板都是怎么样的,都是怎样优化自己提升自己的身价呢



金九银十必备 Java 面试宝典、Java 面试汇总、简历模板、核心知识

欢迎大家扫码来关注公众号博主,获取文章全部资料,此公众号会持续更新技术干货、不定期分享 Java 进阶面试宝典、Java 核心知识、架构书籍电子版


用户头像

周老师

关注

精通java热衷于分享java领域资料,感谢支持 2020.06.09 加入

还未添加个人简介

评论

发布
暂无评论
Github上365道Java高频面试复习题,助你吊打面试官