Java面试题

注:
(可选)的题目需要根据应聘人情况酌情考察。
(编码)的题目是编程题。当然只说思路也是可以的
二级list是答案,答案只写了基本思路。

数据结构

1. map的底层存储结构
  • 数组、hash冲突后追加链表,链表太长了转红黑树
2. 如何用两个stack实现一个Queue(编码)
3. 用数组实现一个Queue(编码)

JDK语法

1.你怎么理解函数式接口?Function, Supplier,Consumer 如何使用?(可选)
2. String为何是final的?
3. Object有哪些方法?有什么作用?

多线程

1. ConcurrentHashMap线程安全实现机制
  • 以前是分段锁(减少锁冲突)
  • 现在是CAS实现
2. jdk中乐观锁有哪些实现
3. 线程池的使用
4. 写出一个死锁(编码)
5.ThreadLocal是什么?有什么需要注意的?

JVM

1. 了解哪些垃圾回收算法,JVM的垃圾回收机制
2. 什么是堆外内存(Direct Memory)(可选)

设计模式

1. 如何初始化单例类
2. 你了解哪些设计模式?你用了哪些设计模式来提高你代码的可维护性?

Spring

1. 你用AOP写过哪些功能
2. 什么是Srping的动态代理?Spring如果决定使用JDK动态那里还是cglib代理
3.Controller和RestController有什么区别
4.

Mysql

1. 什么是索引?主键索引和普通索引有什么区别?
2. 什么是数据库的水平切分和垂直切分?
3. 如何开启一个事务?举个例子,说明下事务是什么?
4. Mysql的redo log和bin log有什么作用?(可选)
5. Mysql支持JSON类型存储吗?支持索引吗?
6. 你平时是如何对Mysql语句进行优化的?

Redis

1. 持久化机制是怎么样的
2. 集群模式下,getKey操作是如何工作的
3. 如何复用redis链接?
  • 使用连接池
  • 如果链接超过一定时间就会因网络问题断掉,如何处理?
    • 定期清除空闲的连接
4. 用过lua脚本吗?怎么用的,每次请求都提交整个脚本吗
5.除了String,你还用过redis的哪些数据类型
  • 只需要第一次提交脚本内容时候生成一个sha值,后续每次通过evalSha直接调用

消息队列(可选)

1. 哪些场景适合用消息队列?
2. 什么是ACK机制
3.kafka的消费者组是做什么的(可选)
4.什么是死信队列(可选)

微服务组件(可选)

1. 为什么要用注册中心?
2. 如何实现配置的热更新?
3. nacos实现热更新的机制是什么?
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值