前言

小编的一位朋友 20 年毕业于一所普通本科,实习的时候也就想着混一张毕业证,也没做什么实际项目,再加上去年就业形式严峻,行业内卷,索性就选择了一家小企业公司,直到后来来才知道是属于外包。(也太惨了!耳边回想起老师说的话:千万别去外包)

想想算了,谁让自己菜,还是先好好学点技术吧,但是工作起来就是日复一日的 CRUD,没有 996 的工资,同样逃不过 996 的命,这时候联系了一个同毕业的同学,大概意思就是:哎,自己过得也不好,虽然在华为工资高,但是天天赶项目,妥妥的凡尔赛!

也许是被刺激到了,想着今年一定要跳槽,进大厂!然后就在群里联系了之前一起打篮球玩的比较好的学长,在京东技术开发岗位,给了一份之前面试整理的笔记。并在不久前,成功拿到了京东的 offer。内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等技术栈。

由于整个笔记比较全面,内容相当的多 ,这里仅展示面经中的面试真题,

资料已经为大家准备好了,希望对你们有帮助!!!!!

需要的可以  戳此传送门  获取即可啦


文章目录

        
  • 前言
  •     
  • MyBatis 面试题
  •     
  • ZooKeeper 面试题
  •     
  • Dubbo 面试题
  •     
  • Elasticsearch 面试题
  •     
  • Memcached 面试题
  •     
  • Redis 面试题
  •     
  • MySQL 面试题
  •     
  • Java 并发编程(一)
  •     
  • Java 并发编程(二)
  •     
  • Java 面试题(一)
  •     
  • Java 面试题(二)
  •     
  • Spring 面试题(一)①一般问题②依赖注入(Ioc)③Beans④注解⑤数据访问⑥AOP⑦MVC
  •     
  • Spring 面试题(二)①依赖注入②Spring Beans③Spring 注解④Spring 数据访问⑤Spring 面向切面编程(AOP)⑥Spring 的 MVC
  •     
  • 微服务 面试题
  •     
  • Linux 面试题
  •     
  • Spring Boot 面试题
  •     
  • Spring Cloud 面试题
  •     
  • RabbitMQ 面试题
  •     
  • kafka 面试题
  •     
  • 写在最后

MyBatis 面试题

        
  • 什么是 Mybatis?
  •     
  • Mybaits 的优点:
  •     
  • MyBatis 框架的缺点:
  •     
  • MyBatis 框架适用场合:
  •     
  • MyBatis 与 Hibernate 有哪些不同?
  •     
  • #{}和 ${}的区别是什么?
  •     
  • 当实体类中的属性名和表中的字段名不一样 ,怎么办 ?
  •     
  • 模糊查询 like 语句该怎么写?
  •     
  • 通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应,请问,这个 Dao 接口的工作原理是什么?Dao 接口里的方法,参数不同时,方法能重载吗?
  •     
  • Mybatis 是如何进行分页的?分页插件的原理是什么?

Dubbo 面试题

        
  • 为什么要用 Dubbo?
  •     
  • Dubbo 的整体架构设计有哪些分层?
  •     
  • 默认使用的是什么通信框架,还有别的选择吗?
  •     
  • 服务调用是阻塞的吗?
  •     
  • 一般使用什么注册中心?还有别的选择吗?
  •     
  • 默认使用什么序列化框架,你知道的还有哪些?
  •     
  • 服务提供者能实现失效踢出是什么原理?
  •     
  • 服务上线怎么不影响旧版本?
  •     
  • 如何解决服务调用链过长的问题?
  •     
  • 说说核心的配置有哪些?

Elasticsearch 面试题

        
  • elasticsearch 了解多少,说说你们公司 es 的集群架构,索引数据大小,分片有多少,以及一些调优手段 。
  •     
  • elasticsearch 的倒排索引是什么
  •     
  • elasticsearch 索引数据多了怎么办,如何调优,部署
  •     
  • elasticsearch 是如何实现 master 选举的
  •     
  • 详细描述一下 Elasticsearch 索引文档的过程
  •     
  • 详细描述一下 Elasticsearch 搜索的过程?
  •     
  • Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法
  •     
  • lucence 内部结构是什么?
  •     
  • Elasticsearch 是如何实现 Master 选举的?
  •     
  • Elasticsearch 中的节点(比如共 20 个),其中的 10 个选了一个 master,另外 10 个选了另一个 master,怎么办?

Memcached 面试题

        
  • Memcached 是什么,有什么作用?
  •     
  • Memcached 服务分布式集群如何实现?
  •     
  • Memcached 服务特点及工作原理是什么?
  •     
  • 简述 Memcached 内存管理机制原理?
  •     
  • memcached 是怎么工作的?
  •     
  • memcached 最大的优势是什么?
  •     
  • memcached 和 MySQL 的 query
  •     
  • memcached 和服务器的 local cache(比如 PHP 的 APC、mmap 文件等)相比,有什么优缺点?
  •     
  • memcached 的 cache 机制是怎样的?
  •     
  • memcached 如何实现冗余机制?

Redis 面试题

        
  • 什么是 Redis?
  •     
  • Redis 的数据类型?
  •     
  • 使用 Redis 有哪些好处?
  •     
  • Redis 相比 Memcached 有哪些优势?
  •     
  • Memcache 与 Redis 的区别都有哪些?
  •     
  • Redis 是单进程单线程的?
  •     
  • 一个字符串类型的值能存储最大容量是多少?
  •     
  • Redis 的持久化机制是什么?各自的优缺点?
  •     
  • Redis 常见性能问题和解决方案:
  •     
  • redis 过期键的删除策略?

MySQL 面试题

        
  • MySQL 中有哪几种锁?
  •     
  • MySQL 中有哪些不同的表格?
  •     
  • 简述在 MySQL 数据库中 MyISAM 和 InnoDB 的区别
  •     
  • MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?
  •     
  • CHAR 和 VARCHAR 的区别?
  •     
  • 主键和候选键有什么区别?
  •     
  • myisamchk 是用来做什么的?
  •     
  • 如果一个表有一列定义为 TIMESTAMP,将发生什么?
  •     
  • 你怎么看到为表格定义的所有索引?
  •     
  • LIKE 声明中的%和_是什么意思?

Java 并发编程(一)

        
  • 在 java 中守护线程和本地线程区别?
  •     
  • 线程与进程的区别?
  •     
  • 什么是多线程中的上下文切换?
  •     
  • 死锁与活锁的区别,死锁与饥饿的区别?
  •     
  • Java 中用到的线程调度算法是什么?
  •     
  • 什么是线程组,为什么在 Java 中不推荐使用?
  •     
  • 为什么使用 Executor 框架?
  •     
  • 在 Java 中 Executor 和 Executors 的区别?
  •     
  • 如何在 Windows 和 Linux 上查找哪个线程使用的 CPU 时间最长?
  •     
  • 什么是原子操作?在 Java Concurrency API 中有哪些原子类(atomic classes)?

Java 并发编程(二)

        
  • 并发编程三要素?
  •     
  • 实现可见性的方法有哪些?
  •     
  • 多线程的价值?
  •     
  • 创建线程的有哪些方式?
  •     
  • 创建线程的三种方式的对比?
  •     
  • 线程的状态流转图
  •     
  • Java 线程具有五中基本状态
  •     
  • 什么是线程池?有哪几种创建方式?
  •     
  • 四种线程池的创建:
  •     
  • 线程池的优点?

Java 面试题(一)

        
  • 面向对象的特征有哪些方面?
  •     
  • 访问修饰符 public,private,protected,以及不写(默认)时的区别?
  •     
  • String 是最基本的数据类型吗?
  •     
  • float f=3.4;是否正确?
  •     
  • short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?
  •     
  • Java 有没有 goto?
  •     
  • int 和 Integer 有什么区别?
  •     
  • &和 &&的区别?
  •     
  • 解释内存中的栈(stack)、堆(heap)和方法区(method area)的用法。
  •     
  • Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?

Java 面试题(二)

下面列出这份 Java 面试问题列表包含的主题

        
  • 多线程,并发及线程基础
  •     
  • 数据类型转换的基本原则
  •     
  • 垃圾回收(GC)
  •     
  • Java 集合框架
  •     
  • 数组
  •     
  • 字符串
  •     
  • GOF 设计模式
  •     
  • SOLID
  •     
  • 抽象类与接口
  •     
  • Java 基础,如 equals 和 hashcode
  •     
  • 泛型与枚举
  •     
  • Java IO 与 NIO
  •     
  • 常用网络协议
  •     
  • Java 中的数据结构和算法

总计 133 个问题,由于篇幅问题就不把问题一一列出来了,这里就展示一些截图。

Spring 面试题(一)

①一般问题

        
  • 不同版本的 Spring Framework 有哪些主要功能?
  •     
  • 什么是 Spring Framework?
  •     
  • 列举 Spring Framework 的优点。
  •     
  • Spring Framework 有哪些不同的功能?
  •     
  • Spring Framework 中有多少个模块,它们分别是什么?
  •     
  • 什么是 Spring 配置文件?
  •     
  • Spring 应用程序有哪些不同组件?
  •     
  • 使用 Spring 有哪些方式?

Linux 面试题

        
  • 绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?
  •     
  • 怎么查看当前进程?怎么执行退出?怎么查看当前路径?
  •     
  • 怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户 id?查看指定帮助用什么命令?
  •     
  • Ls 命令执行什么功能? 可以带哪些参数,有什么区别?
  •     
  • 建立软链接(快捷方式),以及硬链接的命令。
  •     
  • 目录创建用什么命令?创建文件用什么命令?复制文件用什么命令?
  •     
  • 查看文件内容有哪些命令可以使用?
  •     
  • 随意写文件命令?怎么向屏幕输出带空格的字符串,比如”hello world”?
  •     
  • 终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令?
  •     
  • 移动文件用哪个命令?改名用哪个命令?

写在最后

我们程序员的技术一直在更新迭代,如果一直固步自封的话,是很难跟上技术的潮流的,所以一定要不断的学习。

如果你想在未来能够自我突破,圆梦大厂,那或许以上这份 “ Java 程序员面经” 也能帮的上你!

资料已经为大家准备好了,希望对你们有帮助!!!!!

需要的可以  戳此传送门  获取即可啦