一面
- 自我介绍
- 询问深度学习项目
- == 和 equals 区别
- string = “a”、new String(“a”) 使用 == 和 equals 对比的结果
- 对于接口应该如何定义
- 划分方式
- 接口内部调用逻辑
- 调用多个方法 or 一个方法
- 复用
- 开启一个线程的方式
- 如何解决并发问题
- 加锁、CAS、ThreadLocal
- 乐观锁的实现过程、如何用乐观锁控制并发
- 场景
- 扣减余额时候,乐观锁失败怎么处理
- ThreadLocal 的使用场景
- hashmap
- 数据存储结构
- 扩容机制
- 如果有人使用hash值相等的key疯狂put数据应该怎么操作
- cookie 和 session 的区别和关系
- spring bean的作用域
- spring bean和手动创建对象的区别、优势
- bean 默认是单例还是多例
- dubbo RPC的原理
- 是如何实现RPC的
- 工作中
- dubbo 别人调用我们的接口报错怎么办
- dubbo 调用别人的接口报错怎么办
- zk集群中的master节点选举流程
- 出现两个节点票数一样怎么处理
- mysql 怎么查询优化速度
- explain 关键字
- for update关键字
- 锁住的是什么:行、表?
- redis 的用处
- 为什么要用redis
- 多个线程同时写入同样数据?
- 单线程, 分布式锁
- 如何实现redis和mysql的数据同步
- redis 缓存击穿、雪崩、穿透
- JVM 的类加载机制
二面
- 自我介绍
- JAVA在什么情况下会进行类的加载和初始化
- 动态代理
- 什么是动态代理
- 动态代理的实现方式
- 两种动态代理中,那种效率高
- 介绍泛型
- 泛型的使用
- 泛型的继承
- 在方法的调用过程中采用非显时传参的方式,传递参数
- Volatile 关键字
- 关键字的作用
- 实现原理
- 讲一下 countDownLatch 和 CylicBarrier
- Java的SPI机制和应用场景
- 策略模式
- 介绍一下策略模式
- 其他的模式可以解决同样的问题吗
- 介绍模板方法模型
- 介绍订阅发布模型
- 该模式所需的角色有那些
- Spring 中事件发布所涉及的类有那些
- Spring Boot的启动流程
- InitializingBean、BeanPostProcessor的作用
- 以及两者的应用场景
- Mysql的自增主键和非自增主键的区别
- Mysql索引的查询过程
- Mysql深度分页如何处理
- Redis 常用的数据结构有那些
- 从Hash数据结构中获得一个数据的时间复杂度是多少、和哈希表的长度有关系吗
- 如何定义一个接口
- 怎么考虑入参出参
- 把枚举直接放到入参中会怎么样
- 说一下自己对领域驱动模型的了解
- 按照现有的了解如何去进行领域驱动的设计
- 反问