前言
2021年对程序员来说是特别严峻的一年,也是大改革的一年,大部分人因为今年“疫情”的原因纷纷离开了自己原有的岗位,也有人抓住机会逆流而上拿到更高的待遇!
无论如何在这两个月的跳槽黄金期 筹备面试是最重要的了,你有规划好自己的复习方向了吗?
我这里收集了一套大厂的面试题包含了答案,技术点概括了:基础、JVM、多线程并发、spring、mybatis、springboot、mysql、Redis、springcloud、Nginx、ZK、kafka、MQ、数据结构与算法、Linux、Elasticsearchi以及还有简历方面的文案,对你应该会有所帮助!
话不多说,上正题
数据结构与算法面试
- 1.常用的数据结构
- 2.数据里有{1,2,3, 4,5,6,7.8,9},请随机打乱顺序,生成一个新的数组(请以代码实现)
- 3.写出代码判断一 个整数是不是2的阶次方( 请代码实现,谢绝调用API方法)
- 4.假设今日是2015年3月1日,星期日,请算出13个月零6天后是星期几,距离现在多少天(请用代码实现,谢绝调用API方法)
- 5.有两个篮子,分别为A和B,篮子A里装有鸡蛋,篮子B里装有苹果,请用面向对象的思想实现两个篮子里的物品交换(请用代码实现)
JVM面试
- 1.知识点汇总
- 2.知识点详解:
- 3.类加载与卸载
- 4.简述一下JM的内存模型
- 5.堆和栈的区别
- 6.什么时候会触发FullC
- 7.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言
- 8.Java内存结构
- 9.对象分配规则
- 10.描述一下J加载class文件的原理机制?
- 11.Java对象创建过程
- 12.类的生命周期
- 13.简述Javs的对象结构
- 14.如何判断对象可以被回收?
- 15.JVM的永久代中会发生垃圾回收么?
- 16.垃圾收集算法
- 17.调优命令有哪些?
- 18.调优工具
- 19.Minor GC与Full GC分别在什么时候发生?
- 20.你知道哪些JM性能调优
- 21.JYM内存分哪几个区,每个区的作用是什么?
- 22.简述J ava垃圾回收机制?
- 23.什么是类加载器,类加载器有哪些?”
- 24.你有没有遇到过OutOfMemory问题?你是怎么来处理这个问题的?处理过程中有哪些收获?
- 26.跟JTM内存相关的几个核心参数图解
- 27.如何启动系统的时候设置JVM的启动参数
多线程、并发面试
- 1.Java中实现多线程有几种方法
- 2.如何停止-个正在运行的线程
- 3.noti fy 0和noti fyAll 0有什么区别?
- 4.sleep 0和waitO有什么区别
- 5.volatile是什么?可以保证有序性吗?
- 6.Thread 类中的start0和run0方法有什么区别?
- 7.为什么wait, notify 和notifyA11这些方法不在thread类里面?
- 8.为什么wai t和noti fy方法要在同步块中调用?
- 9.Java中interrupted和isInterruptedd方法的区别?
- 10.Java中synchronized和Reentr antLock有什么不同?
- 11.有三个线程T1, T2, T3,如何保证顺序执行?
- 12.Symchr oni Ie dMap和C oncurrentHashMap有什么区别?
- 13.什么是线程安全
- 14.Thread类中的yi el a方法有什么作用?
- 15.Java线程池中submitO和execute 0方法有什么区别?
- 16.说-说自己对于synchronized关键字的了解
- 17.说说自己是怎么使用symchronized关键字,在项目中用到了吗synchr oni zed关键字最主要的三种使用方式:
- 18.什么是线程安全? Vector是一个线程安全类吗?
- 19.volatile关键字的作用?
- 20.常用的线程池有哪些?
- 21.简述一下你对线程 池的理解
- 22.Java程序是如何执行的
- 23.说一说自己对于synchronized关键字的了解
- 24.说说自己是怎么使用synchronized关键字,在项目中用到了吗
- 25.讲一下synchronired 关键字的底层原理
- 26.为什么要用线程池?
- 27.实现Runnabl e接口和Callable接口的区别
- 28.执行execute 0方法和submi t0方法的区别是什么呢?
- 29.如何创建线程池
基础面试
- 1.Java语言有哪些特点
- 2.面向对象和面向过程的区别
- 3.八种基本数据类型的大小,以及他们的封装类
- 4.标识符的命名规则。
- 5.instanceof 关键字的作用
- 6.Java自动装箱与拆箱
- 7.重载和重写的区别
- 8.equa1s与==的区别
- 9.Hasheode的作用
- 10.String\ String StringBuffer和StringBuilder 的区别是什么?
- 11.ArrayList和1inke aList的区
- 12.HashMap和HashT able的区别
- 13.Collecti on包结构,与Collecti ons的区别
- 14.Javs的四种引用,强弱软虚
- 15.泛型常用特点
- 16.Jav创建对象有几种方式?
- 17.有没有可能两个不相等的对象有相同的hasheode
- 18.深拷贝和浅拷贝的区别是什么?
- 19.final有哪些用法?
- 20.stati 都有哪些用法?
- 21.3*0. 1==0. 3返回值是什么
- 22.a=a+b与a+=b有什么区别吗?
- 23.try catch finally; try里有return, finally还执行么?
- 24.Exepti on与Error包结构
- 25.00M你遇到过哪些情况,SOF你遇到过哪些情况
- 26.简述线程、程序、进程的基本概念。以及他们之间关系是什么
- 27.线程有哪些基本状态?
- 28.Java序列化中如果有些字段不想进行序列化,怎么办?
- 29.Java中I0流
- 30.Java I0与HI0的区别
- 31.java反射的作用于原理
- 32.说说List, Set, Map三者的区别?
Spring面试
- 1.Sprine的I0C和AOP机制?
- 2.Spring中Autowired和Resouree关键字的区别?
- 3.依赖注入的方式有几种,各是什么?
- 4.讲一下什么是Spring
- 5.Spr ing MVC流程.
- 6.Spri ngMVYC怎么样设定重定向和转发的?
- 7. Sprin/MVC常用的注解有哪些?
- 8.Sprina的AOP理解:
- 9.Sprine的I0C理解
- 10.解释- -下spring be an的生命周期
- 11.解释Spring支持的几种bean的作用域。
- 12. Spring基于xm1注入bean的几种方式:
- 13.Spring框架中都用到了哪些设计模式?
SpringBoot面试
- 1.什么是SpringBoot?为什么要用SpringBoot
- 2.Spring Boot. 的核心注解是哪个?它主要由哪几个注解组成的?
- 3.运行Spring Boot有哪几种方式
- 4.如何理解Spring Boot 中的Starters?
- 5.如何在Spring Boo.启动的时候运行一些特定的代码?
- 6.Spring Boot需要独立的容器运行吗?
- 7.Spring Boot中的监视器是什么?
- 8.如何使用Spring Boot实现异常处理?
- 9.你如何理解Spring Boot中的Starters?
- 10.springboot常用的starter有哪些
- 11.SpringBoot 实现热部署有哪几种方式?
- 12.如何理解Spring Boot配置加载顺序?
- 13.Spring Boot的核心配置文件有哪几个?它们的区别是什么?
- 14.如何集成Spring Boot和ActiveMQ?
- 15.如何重新加载Spring Boot上的更改,而无需重新启动服务器?
- 16.Spring Boot、Spring MVC和Spring有什么区别?
- 17. 能否举一个例子来解释更多Staters的内容?
- 18.Spring Boot还提供了其它的哪些Starter Project Opti ons
MySQL面试
- 1.数据库的三范式是什么
- 2.数据库引擎有哪些
- 3.InoDB与MyISAM的区别
- 4.数据库的事务
- 5.索引问题
- 6.SQL优化
- 7.简单说一说drop、 delete与truncate的区别
- 8.什么是视图
- 9.什么是内联接、左外联接、右外联接?
- 10.并发事务带来哪些问题?
- 11.事务隔离级别有哪些?MySQI的默认隔离级别是?
- 12.大表如何优化?
- 13.分库分表之后,id主键如何处理?
- 14.mysq1有关权限的表都有哪几个
- 15.mysq1有哪些数据类型
- 16.创建索引的三种方式,删除索引
Mybatis面试
- 1.什么是MyBatis
- 2.MyBati s的优点和缺点
- 3.#}和$ {}的区别是什么?
- 4.当实体类中的属性名和表中的字段名不一样,怎么办?
- 5.Mybatis是如何进行分页的?分页插件的原理是什么?
- 6.Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?
- 7.如何执行批量插入?
- 8.Xm1映射文件中,除了常见的select |insert lupdae |delete标签之外,还有哪些标签?
- 9.MyBatis实现一对一有几种方式?具体怎么操作的?
- 10.Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?
- 11.Mybatis的一级、二级缓存:
Redis面试
- 1.Redi s持久化机制
- 2.缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题
- 3.热点数据和冷数据是什么
- 4.Memcache与Redi s;的区别都有哪些?
- 5.单线程的redi s为什么这么快
- 6.redi s的数据类型,以及每种数据类型的使用场景
- 7.redi s的过期策略以及内存淘汰机制
- 8.Redis为什么是单线程的
- 9.Redis常见性能问题和解决方案?
- 10.为什么Redi s的操作是原子性的,怎么保证原子性的?
- 11.Redis事务
Nginx面试
- 1.简述一下什么是Nginx,它有什么优势和功能?
- 2.Nginx是如何处理一个HTTP请求的呢?
- 3.列举-些Ngi nx的特性
- 4.请列举Nginx和Apache之间的不同点
- 5.在Hginx中;如何使用未定义的服务器名称来阻止处理请求?
- 6.请解释Nei rx服务器上的Master和W orker进程分别是什么?
- 7.请解释代理中的正向代理和反向代理
- 8.解释Nginx用途
SpringCloud面试
- 1.什么是SpringCloud
- 2.什么是微服务
- 3.SpringCloud有什么优势
- 4.什么是服务熔断?什么是服务降级?
- 5.Eureks和zookeeper都可以提供服务注册与发现的功能,请说说两个的区别?
- 6.SpringBoot和SpringCloud的区别?
- 7.负载平衡的意义什么?
- 8.什么是Hystrix?它如何实现容错?
- 9.什么是Hystrix断路器?我们需要它吗?
- 10.说说RPC的实现原理
Zookeeper面试
- 1. ZooKeeper 是什么?
- 2. ZooKeeper 提供了什么?
- 3. Zookeeper文件系统
- 4. ZAB 协议?
- 5. 四种类型的数据节点Znode
- 6. Zookeeper Watcher 机制--数据变更通知
- 7.客户端注册Watcher 实现
- 8. 服务端处理Watcher 实现
- 9.客户端回调Watcher
- 10. ACL 权限控制机制
- 11. Chroot 特性
- 12.会话管理
- 13.服务器角色
- 14. Zookeeper 下Server工作状态
- 15.数据同步
- 16. zookeeper 是如何保证事务的顺序一致性的?
- 17.分布式集群中为什么会有Master?
- 18. zk 节点宕机如何处理?
- 19. zookeeper 负载均衡和nginx负载均衡区别
- 20. Zookeeper 有哪几种几种部署模式?
- 21.集群最少要几台机器,集群规则是怎样的?
- 22. 集群支持动态添加机器吗?
- 23. Zookeeper 对节点的watch监听通知是永久的吗?为什么不是永久的?
- 24. Zookeeper 的java客户端都有哪些?
- 25. chubby 是什么,和zookeeper比你怎么看?
- 26. 说几个zookeeper 常用的命令。
- 27. ZAB和Paxos算法的联系与区别?
- 28. Zookeeper的典型应用场景
Kafka面试
- 1.如何获取topic 主题的列表
- 2.生产者和消费者的命令行是什么?
- 3.consumer 是推还是拉?
- 4.讲讲kafka维护消费状态跟踪的方法
- 5.讲一下主从同步
- 6.为什么需要消息系统,mysql不能满足需求吗?
- 7.Zookeeper 对于Kafka的作用是什么?
- 9.Kafka判断-个节点是否还活着有那两个条件?
- 10.Kafka与传统MQ消息系统之间有三个关键区别
- 11.讲一讲kafka的ack的三种机制
- 12.消费者如何不自动提交偏移里由应用提交?
- 13.消费者故障,出现活锁问题如何解决?
- 14.如何控制消费的位置
- 15.kafka分布式(不是单机)的情况下,如何保证消息的顺序消费
- 16.kafka的高可用机制是什么?
- 17.kafka如何减少数据丢失
- 18.kafka如何不消费重复数据?比如扣款,我们不能重复的扣。
MQ面试
- 1.为什么使用顺
- 2.MQ优缺点
- 3.Kafka、ActiveMQ、Rabbi tMQ、RocketMQ都有什么区别?
- 4.如何保证高可用的?
- 5.如何保证消息的可靠传输?如果消息丢了怎么办
- 6.如何保证消息的顺序性
- 7.如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?
- 8.设计M9的思路
Elasticsearch面试
- 1.elasticsearch. 了解多少,说说你们公司es. 的集群架构,索引数据大小,分片有多少,以及一些调优手段。
- 2.elasticsear ch的倒排索引是什么
- 3.elasticsearch 索引数据多了怎么办,如何调优,部署
- 4.elasticsearch是如何实现mster 选举的
- 5.详细描述一 下Elasticsearch索引文档的过程
- 6.详细描述一 下Flasticsearch搜索的过程?
- 7.Elasticsearch 在部署时,对Linux的设置有哪些优化方法
- 8.lucence内部结构是什么?
- 9.Elasticsearch 是如何实现Master选举的?
- 10.Elasticsearch 中的节点(比如共20个),其中的10个
- 11.客户端在和集群连接时,如何选择特定的节点执行请求的?
- 12.详细描述一 下Elasticsearch索引文档的过程。
- 13.详细描述一 下Elasticsearch更新和删除文档的过程。
- 14.详细描述一 下Elasticsearch搜索的过程。
- 15.在Elasticsearch中,是怎么根据一个词找到对应的倒排索引的?
- 16.Elasticsearch 在部署时:又Linux的设置有哪些优化方法?
- 17.对于GC方面,在使用Elasticsearch时要注意什么?
- 18.Elasticsearch对于大数据量(上亿量级) 的聚合如何实现?
- 19.在并发情况下,Flasticsearc h如果保证读写- 致?
- 20.如何监控Elasticsearch集群状态?
- 21.介绍下你们电商搜索的整体技术架构。
- 22.介绍一下你们的个性化搜索方
- 23.是否了解字典树?
- 24.拼写纠错是如何实现的?
Linux面试
- 1.绝对路径用什么符号表示?当前目录、上层自录用什么表示?主目录用什么表示?切换目录用什么命令?
- 2.怎么查看当前进程?怎么执行退出?怎么查看当前路径?
- 3.怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户id?查看指定帮助用什么命令?
- 4.Ls命令执行什么功能?可以带哪些参数,有什么区别?
- 5.建立软链接(快捷方式),以及硬链接的命令。
- 6.目录创建用什么命令?创建文件用什么命令?复制文件用什么命令?
- 7.查看文件内容有哪些命令可以使用?
- 8.随意写文件命令?怎么向屏幕输出带空格的字符串,比如”hello world" ?
- 9.终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令?
- 10.移动文件用哪个命令?改名用哪个命令?
- 11.复制文件用哪个命令?如果需要连同文件夹一块复制呢?如果需要有提示功能呢?
- 12.删除文件用哪个命令?如果需要连目录及目录下文件一块删除呢?删除空文件夹用什么命令?
- 13.Linux下命令有哪几种可使用的通配符?分别代表什么含义?
- 14.用什么命令对一个文件的内容进行统计? (型号、 单词数、字节数)
- 15.Grep命令有什么用?如何忽略大小写?如何查找不含该串的行?
- 16.Linur中进程有哪几种状态?在ps显示出来的信息中,分别用什么符号表示的?
- 17.怎么使一个命令在后台运行?
- 18.利用ps怎么显示所有的进程?怎么利用ps查看指定进程的信
- 19.哪个命令专i ]用来查看后台任务?
- 20.把后台任务调到前台执行使用什么命令?把停下的后台任务在后台执行起来用什么命令?
- 21.终止进程用什么命令?带什么参数?
- 22.怎么查看系统支持的所有信号?
- 23.搜索文件用什么命令?格式是怎么样的?
- 24.查看当前谁在使用该主机用什么命令?查找自己所在的终端信息用什么命令?
- 25.使用什么命令查看用过的命令列表?
- 26.使用什么命令查看磁盘使用空间?空闲空间呢?
- 27.使用什么命令查看网络是否连通?
- 28.使用什么命令查看ip 地址及接口信息?
- 29.查看各类环境变量用什么命令
- 30.通过什么命令指定命令提示符
- 31.查找命令的可执行文件是去哪查找的?怎么对其进行设置及添加
- 32.通过什么命令查找执行命令?
- 33.怎么对命令进行取别名?
- 34.du和df的定义,以及区别
- 35.awk 详解。
- 36.当你需要给命令绑定一个宏或者按键的时候,应该怎么做呢?
- 37.如果一个linux新手想要知道当前系统支持的所有命令的列表, 他需要怎么做?
- 38.如果你的助手想要打印出当前的目录栈:你会建议他怎么做?
- 39.你的系统目前有许多正在运行的任务,在不重启机器的条件下,有什么方法可以把所有正在运行的进程移除呢?
- 40.bash shell 中的hash 命令有什么作用?
- 41.哪-个bash内置命令能够进行数学运算。
- 42.怎样一页一页地查看一个大文件的内容呢?
- 43.数据字典属于哪-个用户的?
- 44.怎样查看一个linw: 命令的概要与用法?假设你在/bin目录中偶然看到一个你从没见过的的命令,怎样才能知道它的作用和用法呢?
- 45.使用哪一个命令可以查看自己文件系统的磁盘空间配额呢?
- 46.列举几个常用的Linux命令
- 47.你平时是怎么查看日志的?
简历模板
- 1.为什么说简历很重要?
- 2.先从面试来说
- 3.再从面试说起
- 4.必知必会的几点
- 5.必须了解的两大法则
- 6.项目经历怎么写
- 7.专业技能怎么写
- 8.排版注意事项
- 9.其他一些小tips
有了面试题,以上所有问题的答案都统一收集在Java面试汇总里面了,希望这份面试宝典能给到大家帮助,在金九银十能拿到心仪的offer,拿到满意的高资!
必备Java面试宝典、Java面试汇总、简历模板、核心知识,感兴趣的进我的Java技术qq交流群127522921自行下载,所有资料都在群文件里(100%免费)
总结
面试必知
了解自己的能力、要应聘的公司、自己要应聘的岗位,提前做好自己我介绍以及项目介绍等等方面的功课,确保你能在面试过程中简短清晰的回答出来(可以用Star法则来组织自己的语言)
Java面试宝典
Java面试整整的覆盖了大量知识点,十分适合用来复盘
简历模板
看看优秀的简历模板都是怎么样的,都是怎样优化自己提升自己的身价呢
Java必备Java面试宝典、Java面试汇总、简历模板、核心知识,感兴趣的进我的Java技术qq交流群127522921自行下载,所有资料都在群文件里(100%免费)