刷完这份 JAVA 面试题,成功逆袭上岸

前言

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

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

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

由于整个笔记比较全面,内容相当的多 ,这里仅展示面经中的面试真题,如有需要获取文中提到的 java面经  请看评论区 获取

 

文章目录

  • 前言

  • 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 面试题

  1. 什么是 Mybatis?

  2. Mybaits 的优点:

  3. MyBatis 框架的缺点:

  4. MyBatis 框架适用场合:

  5. MyBatis 与 Hibernate 有哪些不同?

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

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

  8. 模糊查询 like 语句该怎么写?

  9. 通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应,请问,这个 Dao 接口的工作原理是什么?Dao 接口里的方法,参数不同时,方法能重载吗?

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

Dubbo 面试题

  1. 为什么要用 Dubbo?

  2. Dubbo 的整体架构设计有哪些分层?

  3. 默认使用的是什么通信框架,还有别的选择吗?

  4. 服务调用是阻塞的吗?

  5. 一般使用什么注册中心?还有别的选择吗?

  6. 默认使用什么序列化框架,你知道的还有哪些?

  7. 服务提供者能实现失效踢出是什么原理?

  8. 服务上线怎么不影响旧版本?

  9. 如何解决服务调用链过长的问题?

  10. 说说核心的配置有哪些?

Elasticsearch 面试题

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

  2. elasticsearch 的倒排索引是什么

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

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

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

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

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

  8. lucence 内部结构是什么?

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

  10. Elasticsearch 中的节点(比如共 20 个),其中的 10 个选了一个 master,另外 10 个选了另一个 master,怎么办?

Memcached 面试题

  1. Memcached 是什么,有什么作用?

  2. Memcached 服务分布式集群如何实现?

  3. Memcached 服务特点及工作原理是什么?

  4. 简述 Memcached 内存管理机制原理?

  5. memcached 是怎么工作的?

  6. memcached 最大的优势是什么?

  7. memcached 和 MySQL 的 query

  8. memcached 和服务器的 local cache(比如 PHP 的 APC、mmap 文件等)相比,有什么优缺点?

  9. memcached 的 cache 机制是怎样的?

  10. memcached 如何实现冗余机制?

Redis 面试题

  1. 什么是 Redis?

  2. Redis 的数据类型?

  3. 使用 Redis 有哪些好处?

  4. Redis 相比 Memcached 有哪些优势?

  5. Memcache 与 Redis 的区别都有哪些?

  6. Redis 是单进程单线程的?

  7. 一个字符串类型的值能存储最大容量是多少?

  8. Redis 的持久化机制是什么?各自的优缺点?

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

  10. redis 过期键的删除策略?

MySQL 面试题

  1. MySQL 中有哪几种锁?

  2. MySQL 中有哪些不同的表格?

  3. 简述在 MySQL 数据库中 MyISAM 和 InnoDB 的区别

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

  5. CHAR 和 VARCHAR 的区别?

  6. 主键和候选键有什么区别?

  7. myisamchk 是用来做什么的?

  8. 如果一个表有一列定义为 TIMESTAMP,将发生什么?

  9. 你怎么看到为表格定义的所有索引?

  10. LIKE 声明中的%和_是什么意思?

Java 并发编程(一)

  1. 在 java 中守护线程和本地线程区别?

  2. 线程与进程的区别?

  3. 什么是多线程中的上下文切换?

  4. 死锁与活锁的区别,死锁与饥饿的区别?

  5. Java 中用到的线程调度算法是什么?

  6. 什么是线程组,为什么在 Java 中不推荐使用?

  7. 为什么使用 Executor 框架?

  8. 在 Java 中 Executor 和 Executors 的区别?

  9. 如何在 Windows 和 Linux 上查找哪个线程使用的 CPU 时间最长?

  10. 什么是原子操作?在 Java Concurrency API 中有哪些原子类(atomic classes)?

Java 并发编程(二)

  1. 并发编程三要素?

  2. 实现可见性的方法有哪些?

  3. 多线程的价值?

  4. 创建线程的有哪些方式?

  5. 创建线程的三种方式的对比?

  6. 线程的状态流转图

  7. Java 线程具有五中基本状态

  8. 什么是线程池?有哪几种创建方式?

  9. 四种线程池的创建:

  10. 线程池的优点?

Java 面试题(一)

  1. 面向对象的特征有哪些方面?

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

  3. String 是最基本的数据类型吗?

  4. float f=3.4;是否正确?

  5. short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?

  6. Java 有没有 goto?

  7. int 和 Integer 有什么区别?

  8. &和 &&的区别?

  9. 解释内存中的栈(stack)、堆(heap)和方法区(method area)的用法。

  10. Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?

  11. switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上?

  12. 用最有效率的方法计算 2 乘以 8?

  13. 数组有没有 length()方法?String 有没有 length()方法?

  14. 在 Java 中,如何跳出当前的多重嵌套循环?

  15. 构造器(constructor)是否可被重写(override)?

  16. 两个对象值相同(x.equals(y) == true),但却可有不同的 hash code,这句话对不对?

  17. 是否可以继承 String 类?

  18. 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

Java 面试题(二)

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

  • 多线程,并发及线程基础

  • 数据类型转换的基本原则

  • 垃圾回收(GC)

  • Java 集合框架

  • 数组

  • 字符串

  • GOF 设计模式

  • SOLID

  • 抽象类与接口

  • Java 基础,如 equals 和 hashcode

  • 泛型与枚举

  • Java IO 与 NIO

  • 常用网络协议

  • Java 中的数据结构和算法

  • 正则表达式

  • JVM 底层

  • Java 最佳实践

  • JDBC

  • Date, Time 与 Calendar

  • Java 处理 XML

  • JUnit

  • 编程

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

Spring 面试题(一)

①一般问题

  1. 不同版本的 Spring Framework 有哪些主要功能?

  2. 什么是 Spring Framework?

  3. 列举 Spring Framework 的优点。

  4. Spring Framework 有哪些不同的功能?

  5. Spring Framework 中有多少个模块,它们分别是什么?

  6. 什么是 Spring 配置文件?

  7. Spring 应用程序有哪些不同组件?

  8. 使用 Spring 有哪些方式?

写在最后

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

如果你想在未来能够自我突破,圆梦大厂,那或许以上这份 Java 程序员面经” 也能帮的上你!有需要的朋友看评论区

 

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>