热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

2022春招,Java岗最全面试攻略,吃透25个技术栈Offer拿到手软

前言我分享的这份春招Java后端开发面试总结包含了JavaOOP、Java集合容器、Java异常、并发编程、Java反射、Java序列化、JVM、Redis、SpringMVC、M

前言

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

 资料链接:骆驼祥子思维导图 - GitMind

我这篇分享篇幅可能有点长,观看的朋友可以先了解一下目录


JavaOOP 面试题
Java 集合/泛型面试题
Java 异常面试题
Java 中的 IO 与 NIO 面试题
Java 反射面试题
Java 序列化面试题
Java 注解面试题
多线程 &并发面试题
JVM 面试题
Mysql 面试题
Redis 面试题
Memcached 面试题
MongoDB 面试题
String 面试题
Spring Cloud 面试题
RabbitMQ 面试题
Dubbo 面试题
MyBatis 面试题
ZooKeeper 面试题
数据结构面试题
算法面试题
Elasticsearch 面试题
Kafka 面试题
微服务 面试题
Linux 面试题


由于篇幅有限,每个专题面试题只有部分的面试题,下面是整理的合集,以及一些我认识的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、ArrayList 和 linkedList 的区别

2、HashMap 排序题

3、Collection 包结构,与 Collections 的区别

4、带集合参数的构造器

5、说说 List,Set,Map 三者的区别

6、并发集合和普通集合如何区别?

7、Map 有什么特点

8、集合类存放于 Java.util 包中, 主要有几 种接口

9、什么是 list 接口

10、说说 ArrayList(数组)

11、Vector( 数组实现、 线程同步)

12、说说 LinkList(链表)

13、什么 Set 集合

14、HashSet( Hash 表)

15、什么是 TreeSet(二叉树)

16、List 和 Map、Set 的区别?

17、数组和链表分别比较适合用于什么场景,为什么?

18、说说 ConcurrentHashMap

19、Java 中 ArrayList 和 LinkedList 区别?

20、TreeMap(可排序)

21、请用两个队列模拟堆栈结构?

22、Map 中的 key 和 value 可以为 null?

23、数据结构基础之双向链表

24、HashMap 的底层实现

25、ConcurrentHashMap 和 Hashtable 的区别

26、说出 ArrayList,Vector,LinkedList 的存储性能和特性

27、你所知道的集合类都有哪些?主要方法?

28、HashMap 原理,java8 做了什么改变

29、poll()方法和 remove()方法的区别?

30、写一段代码在遍历 ArrayList 时移除一个元素


三、Java 异常面试题

1、Java 中异常分为哪两种?

编译时异常

运行时异常

2、异常的处理机制有几种?

异常捕捉:try…catch…finally,异常抛出:throws。 public class Box { private T t; public void add(T t) { this.t = t; }public T get() { return t; } }

3、如何自定义一个异常

继承一个异常类,通常是 RumtimeException 或者 Exception

4、try catch fifinally,try 里有 return,finally 还执行么?

执行,并且 finally 的执行早于 try 里面的 return

结论:

1、不管有木有出现异常,finally 块中代码都会执行;

2、当 try 和 catch 中有 return 时,finally 仍然会执行;

3、finally 是在 return 后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管 finally 中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在 finally 执行前确定的;

4、finally 中最好不要包含 return,否则程序会提前退出,返回值不是 try 或 catch 中保存的返回值。

5、 Excption 与 Error 包结构

6、Thow 与 thorws 区别

7、Error 与 Exception 区别?

8、error 和 exception 有什么区别

9、final、finally、finalize 的区别?

10、Java 异常处理机制的理解?

11、说出最常见的 5 个 RuntimeException?

12、throw 和 throws 的区别?

13、JAVA 中 Exception 和 Error 面试问题

14、在 Java 异常处理的过程中,你遵循的那些最好的实践是什么?

15、throw 和 throws 这两个关键字在 java 中有什么不同?

16、你曾经自定义实现过异常吗?怎么写的?

17、你遇到过 OutOfMemoryError 错误嘛?你是怎么搞定的?

18、Java 中的异常处理机制的简单原理和应用。

19、最常见到的 5 个 runtime exception。

20、JAVA 语言如何进行异常处理,关键字:throws,throw,try,catch,finally 分别代表什么意义?在 try 块中可以抛出异常吗?


四、Java 中的 IO 与 NIO 面试题

1、Java 中 IO 流?

2、字节流如何转为字符流?

3、常用 io 类有那些

4、如何将一个 java 对象序列化到文件里?

5、阻塞 IO 模型

6、字节流和字符流的区别?

7、多路复用 IO 模型

8、如何实现对象克隆?

9、异步 IO 模型

10、什么是 java 序列化,如何实现 java 序列化?

11、NIO 的缓冲区

12、面向 Stream 和面向 Buffer

13、Channel

14、NIO 和 IO 对应用的设计有何影响

15、Selector

16、Java IO 与 NIO 的区别

17、字节流与字符流的区别

18、非阻塞 IO 模型

19、信号驱动 IO 模型

20、NIO 的非阻塞

21、Buffer

22、JAVA NIO


五、Java 反射面试题

1、什么是反射?

2、Java 反射创建对象效率高还是通过 new 创建对象的效率高?

3、什么叫对象序列化,什么是反序列化,实现对象序列化需要做哪些工作?

4、哪里会用到反射机制?

5、反射机制的优缺点?

6、实现 Java 反射的类:

7、动态代理是什么?有哪些应用?

8、Java 反射 API

9、如何使用 Java 的反射?

10、获取 Class 对象有几种方法

11、除了使用 new 创建对象之外,还可以用什么方法创建对象?

12、java 反射的作用

13、反射的实现方式:

14、反射使用步骤(获取 Class 对象、调用对象方法)


六、Java 序列化面试题

1、什么是 java 序列化?

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

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

4、Serializable 实现序列化

5、序列化 ID

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

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

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

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

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

11、如何实现 java 序列化?

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

13、静态变量的序列化?

七、Java 注解面试题 1、4 种标准元注解是哪四种?

2、什么是注释?他们的典型用例是什么?

3、从标准库中描述一些有用的注释。

4、注解是什么?

5、可以从注释方法声明返回哪些对象类型?

6、哪些程序元素可以注释?

7、有没有办法限制可以应用注释的元素?

8、什么是元注释?

9、什么是重复注释?

10、你怎么能检索注释?这与保留政策有何关系?

11、Q11,是否可以扩展注释?


八、多线程 &并发面试题

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、什么是乐观锁、悲观锁、时间戳、行级锁、表级锁、页级锁


十二、Memcached 面试题

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

2、memcached 和 MySQL 的 query cache 相比,有什么优缺点?

3、 但是我确实需要把 memcached 中的 item 都 dump 出来,确实需要把数据 load 到 memcached 中,怎么办?

4、memcached 是如何做身份验证的?

5、如何使用 memcached 的多线程是什么?如何使用它们?

6、memcached 能接受的 key 的最大长度是多少?(250bytes)

7、memcached 对 item 的过期时间有什么限制?(为什么有 30 天的限制?)

8、memcached 最大能存储多大的单个 item?(1M byte)

9、为什么单个 item 的大小被限制在 1M byte 之内?

10、为了让 memcached 更有效地使用服务器的内存,可以在各个服务器上配置大小不等的缓存空间吗?

11、什么是 binary 协议?它值得关注吗?

12、memcached 是如何分配内存的?

13、为什么不用 malloc/free!?

14、究竟为什么使用 slab 呢?

15、memcached 能保证数据存储的原子性吗?


十三、MongoDB 面试题

1、mongodb 是什么?

2、MongoDB 是由哪种语言写的

3、你说的 NoSQL 数据库是什么意思?

4、NoSQL 数据库有哪些类型?

5、你怎么比较 MongoDB、CouchDB 及 CouchBase?

6、MongoDB 成为最好 NoSQL 数据库的原因是什么?

7、MySQL 与 MongoDB 之间最基本的差别是什么?

8、journal 回放在条目(entry)不完整时(比如恰巧有一个中途故障了)会遇到问题吗?

9、分析器在 MongoDB 中的作用是什么?

10、名字空间(namespace)是什么?

11、 如果用户移除对象的属性,该属性是否从存储层中删除?

12、允许空值 null 吗?

13、能否使用日志特征进行安全备份?

14、更新操作立刻 fsync 到磁盘?

15、为什么我的数据文件如此庞大?

16、如何执行事务/加锁?

17、NoSQL 与 RDBMS 直接有什么区别?

18、为什么要使用和不使用 NoSQL 数据库?

19、说一说 NoSQL 数据库的几个优点?

20、mongodb 有哪些特点?


十四、String 面试题

Spring Boot 面试题

1、String 是基本数据类型吗?

2、什么是 Spring Framework?

3、String 是可变的话?

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

5、怎么比较两个字符串的值一样,怎么比较两个字符串是否同一对象?

6、什么是 Spring 配置文件?

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

8、使用 Spring 有哪些方式?

9、tring str = new String(“abc”);创建了几个对象,为什么?

10、什么是依赖注入?

11、String.trim()方法去掉的是哪些字符?

12、可以自定义 java.lang.String 类并使用吗?

13、spring 中有多少种 IOC 容器?

14、区分 BeanFactory 和 ApplicationContext。

15、列举 IoC 的一些好处。

16、Spring IoC 的实现机制。

17、spring 提供了哪些配置方式?

18、什么是 spring bean?

19、spring 支持集中 bean scope?

20、什么是 spring 的内部 bean?

21、什么是 spring 装配

22、spring bean 容器的生命周期是什么样的?

23、自动装配有哪些方式?

24、如何在 spring 中启动注解装配?

25、自动装配有什么局限?

26、@Component, @Controller, @Repository

27、什么是基于注解的容器配置

28、@Required 注解有什么用?

29、列举 Spring DAO 抛出的异常。

30、@Qualifier 注解有什么用?

31、@Autowired 注解有什么用?

32、spring DAO 有什么用?

33、@RequestMapping 注解有什么用?

34、spring JDBC API 中存在哪些类?


十五、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、你所知道的微服务技术栈?


十六、RabbitMQ 面试题

1、什么是 rabbitmq

2、使用 rabbitmq 的场景

3、RabbitMQ 有什么优缺点?

4、什么是 Message?

5、为什么要使用 rabbitmq

6、消息如何分发?

7、如何确保消息正确地发送至 RabbitMQ? 如何确保消息接收方消费了消息?

8、消息怎么路由?

9、如何确保消息不丢失?

10、消息基于什么传输?

11、如何保证消息的顺序性

12、Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别?

13、Fanout(广播分发)?

14、如何保证高可用的?

15、mq 的缺点

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

17、如何避免消息重复投递或重复消费?

18、什么是 Message?

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

20、RabbitMQ 的集群

21、什么是 Connection ?

22、topic 交换器(模式匹配) ?

23、Exchange 类型 ?

24、设计 MQ 的思路


十七、Dubbo 面试题

1、为什么要用 Dubbo?

2、Dubbo 是什么?

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

4、Dubbo 和 Spring Cloud 有什么区别?

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

6、dubbo 都支持什么协议,推荐用哪种?

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

8、Dubbo 的整体架构设计有哪些分层?

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

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

11、Dubbo 推荐用什么协议?

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

13、画一画服务注册与发现的流程图?

14、Dubbo 集群容错有几种方案?

15、服务上线怎么不影响旧版本?

16、Dubbo 服务降级,失败重试怎么做?

17、Dubbo Monitor 实现原理?

18、Dubbo 用到哪些设计模式?

19、Dubbo 配置文件是如何加载到 Spring 中的?

20、服务调用是阻塞的吗?

21、Dubbo 支持分布式事务吗?

22、Dubbo 可以对结果进行缓存吗?


十八、MyBatis 面试题

1、什么是 Mybatis?

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

3、MyBatis 框架的缺点

4、MyBatis 实现一对多有几种方式,怎么操作的?

5、MyBatis 与 Hibernate 有哪些不同?

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

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

8、 Mybatis 的一级、二级缓存:

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

13、使用 MyBatis 的 mapper 接口调用时有哪些要求?

14、在 mapper 中如何传递多个参数?

15、Mapper 编写有哪几种方式?

16、简述 Mybatis 的插件运行原理,以及如何编写一个插件。

17、MyBatis 编程步骤是什么样的?


十九、ZooKeeper 面试题

1、什么是 Zookeeper?

2、zookeeper 的数据结构(树)? 讲一下基于它实现的分布式锁?基于它实现的 Master 选举?基于它的集群管理?zookeeper 的注册(watch)机制和轮询机制的使用场景?

3、ZooKeeper 提供了什么?

4、讲一下如何用 zookeeper 实现分布式锁?

5、ZAB 协议?

6、Zookeeper 的同步过程,写操作流程,读操作流程

7、ZK 的部署方式有哪几种?集群中的角色有哪些?集群中最少需要几台机器

8、客户端注册 Watcher 实现

9、 服务端处理 Watcher 实现

10、客户端回调 Watcher

11、ACL 权限控制机制

12、服务器角色

13、会话管理

14、数据同步

15、Zookeeper 下 Server 工作状态

16、zk 节点宕机如何处理?

17、zookeeper 是如何保证事务的顺序一致性的?

18、分布式集群中为什么会有 Master?

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

20、Chroot 特性

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

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

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

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

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

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

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

28、Zookeeper 的典型应用场景


二十、数据结构面试题

1、栈(stack)

栈( stack)是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈顶(top)。它是后进先出(LIFO)的。对栈的基本操作只有 push(进栈)和 pop(出 栈)两种,前者相当于插入,后者相当于删除最后的元素。

2、队列(queue)

3、排序二叉树

4、前缀树

5、红黑树

6、散列表(Hash Table)

7、B-TREE

8、位图

9、链表(Link)

10、栈和队列的共同特点是?

11、栈通常采用的两种存储结构是?

12、用链表表示线性表的优点是?

13、增加头结点的目的是?

14、在计算机中,算法是指?


二十一、算法面试题

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 方法)


二十二、Elasticsearch 面试题

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

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

3、详细描述一下 Elasticsearch 索引文档的过程

4、elasticsearch 的倒排索引是什么

5、elasticsearch 是如何实现 master 选举的

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

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

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

9、lucence 内部结构是什么?

10、Elasticsearch 是如何实现 Master 选举的?

11、详细描述一下 Elasticsearch 索引文档的过程。

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

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

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

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

16、Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?

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

18、拼写纠错是如何实现的?

19、详细描述一下 Elasticsearch 索引文档的过程。

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

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

22、介绍一下你们的个性化搜索方案?

23、是否了解字典树?

24、Elasticsearch 对于大数据量(上亿量级)的聚合如何实现


二十三、Kafka 面试题

1、Kafka 是什么

2、压缩(GZIP 或 Snappy)

3、数据文件分段 segment(顺序读写、分段命令、二分查找)

4、partition 的数据文件(offset, MessageSize, data)

5、消费者设计

6、批量发送

7、Consumer Group

8、如何获取 topic 主题的列表

9、生产者和消费者的命令行是什么?

10、负载均衡(partition 会均衡分布到不同 broker 上)

11、consumer 是推还是拉?

12、Zookeeper 对于 Kafka 的作用是什么?

13、Kafka 判断一个节点是否还活着有那两个条件?

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

15、讲讲 kafka 维护消费状态跟踪的方法

16、消费者如何不自动提交偏移量,由应用提交?

17、Kafka 与传统 MQ 消息系统之间有三个关键区别

18、讲一讲 kafka 的 ack 的三种机制

19、消费者故障,出现活锁问题如何解决?

20、讲一下主从同步:


二十四、微服务 面试题

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 个技术专题】,由于篇幅有限,每个专题面试题只有部分的面试题,下面是整理的合集。

 资料链接:骆驼祥子思维导图 - GitMind


推荐阅读
  • Java高级工程师学习路径及面试准备指南
    本文基于一位朋友的PDF面试经验整理,涵盖了Java高级工程师所需掌握的核心知识点,包括数据结构与算法、计算机网络、数据库、操作系统等多个方面,并提供了详细的参考资料和学习建议。 ... [详细]
  • 阿里巴巴终面技术挑战:如何利用 UDP 实现 TCP 功能?
    在阿里巴巴的技术面试中,技术总监曾提出一道关于如何利用 UDP 实现 TCP 功能的问题。当时回答得不够理想,因此事后进行了详细总结。通过与总监的进一步交流,了解到这是一道常见的阿里面试题。面试官的主要目的是考察应聘者对 UDP 和 TCP 在原理上的差异的理解,以及如何通过 UDP 实现类似 TCP 的可靠传输机制。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 从理想主义者的内心深处萌发的技术信仰,推动了云原生技术在全球范围内的快速发展。本文将带你深入了解阿里巴巴在开源领域的贡献与成就。 ... [详细]
  • 本文总结了一次针对大厂Java研发岗位的面试经历,探讨了面试中常见的问题及其背后的原因,并分享了一些实用的面试准备资料。 ... [详细]
  • ZooKeeper 是一个高性能的分布式数据管理和协调框架,通过实现 Paxos 算法确保了分布式环境中的数据强一致性。本文深入探讨了 ZooKeeper 的数据模型及其在复杂分布式系统中的高级应用场景,包括配置管理、命名服务和分布式锁等关键功能。通过实际案例分析,展示了如何利用 ZooKeeper 提高系统的可靠性和可扩展性。 ... [详细]
  • 本文介绍了推荐系统的基本概念及其在个性化服务中的重要作用,重点探讨了协同过滤算法的工作原理,包括基于用户的协同过滤和基于物品的协同过滤两种方式,并详细解释了几种常见的相似度计算方法。 ... [详细]
  • 本文将详细介绍如何配置并整合MVP架构、Retrofit网络请求库、Dagger2依赖注入框架以及RxAndroid响应式编程库,构建高效、模块化的Android应用。 ... [详细]
  • 如何为PDF文档添加水印?简单步骤实现
    为了增强PDF文档的安全性和版权保护,添加水印是一个有效的方法。本文将介绍如何通过专业软件或在线工具轻松为PDF文档添加水印,确保您的文档在共享时仍能保持其独特性和安全性。 ... [详细]
  • 本文总结了近年来在实际项目中使用消息中间件的经验和常见问题,旨在为Java初学者和中级开发者提供实用的参考。文章详细介绍了消息中间件在分布式系统中的作用,以及如何通过消息中间件实现高可用性和可扩展性。 ... [详细]
  • 自动驾驶中的9种传感器融合算法
    来源丨AI修炼之路在自动驾驶汽车中,传感器融合是融合来自多个传感器数据的过程。该步骤在机器人技术中是强制性的,因为它提供了更高的可靠性、冗余性以及最终的 ... [详细]
  • HBase Java API 进阶:过滤器详解与应用实例
    本文详细探讨了HBase 1.2.6版本中Java API的高级应用,重点介绍了过滤器的使用方法和实际案例。首先,文章对几种常见的HBase过滤器进行了概述,包括列前缀过滤器(ColumnPrefixFilter)和时间戳过滤器(TimestampsFilter)。此外,还详细讲解了分页过滤器(PageFilter)的实现原理及其在大数据查询中的应用场景。通过具体的代码示例,读者可以更好地理解和掌握这些过滤器的使用技巧,从而提高数据处理的效率和灵活性。 ... [详细]
  • Zookeeper作为Apache Hadoop生态系统中的一个重要组件,主要致力于解决分布式应用中的常见数据管理难题。它提供了统一的命名服务、状态同步服务以及集群管理功能,有效提升了分布式系统的可靠性和可维护性。此外,Zookeeper还支持配置管理和临时节点管理,进一步增强了其在复杂分布式环境中的应用价值。 ... [详细]
  • 构建高可用性Spark分布式集群:大数据环境下的最佳实践
    在构建高可用性的Spark分布式集群过程中,确保所有节点之间的无密码登录是至关重要的一步。通过在每个节点上生成SSH密钥对(使用 `ssh-keygen -t rsa` 命令并保持默认设置),可以实现这一目标。此外,还需将生成的公钥分发到所有节点的 `~/.ssh/authorized_keys` 文件中,以确保节点间的无缝通信。为了进一步提升集群的稳定性和性能,建议采用负载均衡和故障恢复机制,并定期进行系统监控和维护。 ... [详细]
  • 分布式开源任务调度框架 TBSchedule 深度解析与应用实践
    本文深入解析了分布式开源任务调度框架 TBSchedule 的核心原理与应用场景,并通过实际案例详细介绍了其部署与使用方法。首先,从源码下载开始,详细阐述了 TBSchedule 的安装步骤和配置要点。接着,探讨了该框架在大规模分布式环境中的性能优化策略,以及如何通过灵活的任务调度机制提升系统效率。最后,结合具体实例,展示了 TBSchedule 在实际项目中的应用效果,为开发者提供了宝贵的实践经验。 ... [详细]
author-avatar
手机用户2502870143_120
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有