面经

Posted by kun on April 24, 2025

java

2025年4月21日

  1. Map 和 Hashtable 的区别是什么?
  2. try-catch-finally 中,try 里有 return,finally 还会执行吗?
  3. ArrayList 和 LinkedList 有什么区别?
  4. 你用 MySQL 用得多吗?
  5. MySQL 的事务隔离级别有哪些?
  6. MySQL 默认的事务隔离级别是哪个?
  7. 聚簇索引和非聚簇索引你了解过吗?

2025年4月15日

  1. 你在工作中遇到过最难的问题是什么?你是如何解决的?
  2. 你们系统中加了一层应用层,起到代理的作用。整体流程是从前端 → 应用层 → 后端服务器(AC服务)吗?
  3. 如果一条消息已经到达应用层,你们是如何保证消息可以可靠推送回你们的系统并正常接收的?
  4. 你们的系统中是否有实现一个主动轮询机制来配合对方的被动推送机制?
  5. 为了优化热点数据的访问性能,你们是否使用了 Redis 缓存?
  6. 你们部署的 Redis 是什么配置?比如 CPU、内存等?
  7. 你之前是否了解过我们公司的背景或业务方向?
  8. 请你简要介绍一下你对 Spring 框架的理解。
  9. 你是否了解 Bean 的生命周期?在初始化过程中可以通过哪些方法进行干预?
  10. 你知道 Spring 中 Bean 有哪些作用域?默认的作用域是什么?你理解为什么这么设计吗?
  11. 在微服务架构中,API 和 RPC 有哪些区别?
  12. 请讲讲你了解的 MySQL 优化方法,比如索引优化、SQL 调优等。
  13. 你能讲一下一条 SQL 从写出到执行,在 MySQL 中经历了哪些处理流程吗?(比如解析器、优化器、执行器、存储引擎)
  14. 你了解哪些 Java 中的锁机制?你知道它们在底层是如何实现的吗?是否了解 AQS?
  15. 当你怀疑系统出现了死锁时,你会如何排查和确认?
  16. 你了解 Redis 的集群部署方式吗?比如 Cluster 模式,它是如何根据 key 找到对应槽位的?
  17. 你提到你对很多技术只是了解过,并没有实际使用。你今后打算怎么加强这方面的实践?

九月八日

  1. arraylist和hashmap的扩容机制

  2. springboot的自动装配

  3. mybatisplus的分页

  4. redis哨兵机制

  5. redis的数据类型,bitmap

  6. mysql索引,

  7. 查询性能优化

  8. nginx的代理算法

  9. 登录方式jwt,token,session,cookie

九月七日

  1. 存储用户信息和地址信息需要几张表

  2. mysql和redis区别

  3. redis为什么快

九月六日

  1. java基本数据类型

  2. string ,stringbuilder,stringbuffer

  3. 查找字符串中的重复字母

  4. 线程安全

  5. 常见的异常

  6. for和while去区别

  7. mysql 查询第50,51个数据

  8. mysql的函数

  9. mysql多表查询

  10. redis用在哪

八月17日

HashList和LinkedList

hashmap数据结构

B+树和B树的区别

八月15日面试

1,介绍你的项目

2,redis是存储在内存中的吗

3,场景如果redis主机坏了,那么主机的数据是不是就没了

4,断点续传,如何实现

5,spring bean注入的方式

6,如果有很多人上传文件你是如何区分哪个文件是谁上传的

7,多线程和线程池

8,消息队列

9,tcp/udp协议在第几层

10,docker file文件

11,上传是一个请求还是很多请求

八月11日记录

1,什么是JAVA不可变类

  • 不可变类是指无法修改对象的值(无法继承,线程安全) String
  • 对外只实现get方法,防止通过set修改值

追问:怎么实现不可变类?

在类上加final关键字

对类的方法加private + final

如何修改不可变类

返回一个新对象

2,java8新特性

Lamda表达式

Stream流

日期类

接口的默认方法,静态方法

opiontal

3,final,finally,finalize

4,在使用HashMap过程中,有哪些提升性能的技巧

5,什么是进程,线程,协程

6,为什么要使用线程池?你会如何设置线程池参数?

分为cpu密集型和io密集型

7,Spring Boot的核心特性

内置Tomcat(war -> jar) => jetty ,netty ,undertow

注解,约定大于配置

快速整合依赖

追问如何开发一个starter

8,mysql中是否使用多表join,为什么不推荐使用多表join

性能消耗非常大(笛卡尔积),

追问:如果要使用join,有哪些注意点

提早过滤, (过滤+选择+分组)

小表驱动大表

怎么代替多表join,实现跨表查询

冗余字段,程序里面自己写循环,并发,缓存

9,redis 事务

七月

1.Java面向什么? 2.jvm内存区域有哪些 3.jvm运行时内存 4.垃圾回收的算法有哪些 5.Java中四种引用类型 6.gc垃圾回收器有哪些 7.io与nio的不同之处 8.Java的类加载机制 9.详细说明双亲委派机制 10.tomcat是如何打破双亲委派机制的 11.List中Vector ArrayList LinkedList底层实现分别是什么 12.HashSet TreeSet LinkedHashSet的底层是是什么 13.CurrentHashMap 是如何实现线程安全的 14.有哪些创建线程的方式 15.四种线程池分别是什么 16.线程的生命周期是什么 17.如何终止线程 18.sleep和wait有何区别 19.start和run 有何区别 20.Java中有哪些锁机制 21.synchronize的作用和核心实现分别是什么 22.线程中有什么方法 23.线程上下文是如何切换的 24.什么是CAS,什么是AQS 25.JAVA异常的分类,分别举出有哪些常见的异常 26.Java中反射有什么作用,好处是什么 27.Java中注解是如何使用的,自己写过注解吗 28.内部类是什么 29.泛型是什么 30.Java序列化的目的 31.cookie和session是什么意思,分别有什么作用 32.转发和重定向有什么区别 33.jsp中四个作用域以及9种内置对象(这题建议不用看了,jsp这种技术已经过时,现在主要是前后端分离的天下) 34.spring有什么特点 35.spring的核心组件有哪些,你用过哪些常用模块,包,和注解 36.spring ioc的原理 37.spring bean的作用域,生命周期以及依赖注入的四种方式 38.spring aop是神马意思 39.springmvc的工作流程 40.springboot的原理(???我有点蒙蔽或许这题想问什么是springboot?)