面试题

Java开发岗(1~3年)

Posted by Static on June 11, 2020

面Java开发岗所问的问题整理,相对于Java开发实习岗,问题更深,更广,常问的问题:1. 分布式相关; 2. 项目; 3. 并发; 4. 数据库

面Java实习岗面试题链接 -> 传送门


1. 某SaaS类

  1. SaaS的理解
  2. StringBuffer、StringBuilder区别
  3. Java中其它的包
  4. Spring bean的加载机制
  5. Spring bean的生命周期
  6. mysql的两种引擎,及其区别
  7. 对ES的了解
  8. 知道哪些中间件
  9. 工作流
  10. 如何实现秒杀系统
  11. mq 如何避免消息丢失
  12. redis的高可用
  13. 现在有两个职位,一个是引入新技术,二是组长,你更倾向于哪个
  14. xxK-> xxK 的原因
  15. Spring Aop理解
  16. jwt

2. 某金融类

  1. 说下最近的项目,限流的实现,堵塞队列的实现;工作流业务流相关实现逻辑
  2. class加载机制
  3. 如何实现一个线程池
  4. 继承、封装、多态,为什么要用getter、setter方法
  5. 接口及抽象类的作用
  6. 如果你的java类和第三方类同包同类名,会报错吗
  7. Lombok的优点及缺点

3. 某大厂

  1. 分布式事务
  2. 分库分表
  3. java中的锁,AQS两种队列
  4. ClassLoader 加载机制,会有什么问题,如何处理,jdbc、tomcat怎么重写classloader
  5. CAP
  6. redis 一致性hash解决什么问题
  7. CAS存在的问题及如何解决

4. 某国企

一面

  1. 自我介绍、项目
  2. mysql优化、索引失效
  3. mysql聚集索引
  4. 线程池
  5. 接口变慢,分析原因
  6. 有看过哪些源码
  7. 为什么离职
  8. 有什么想问我的

二面

  1. 自我介绍
  2. 项目介绍
  3. 离职原因
  4. 项目中的难题
  5. jvm 排查工具
  6. java8 新特性
  7. 看哪些技术社区
  8. 有什么问题想问我的

5. 某传统公司

  1. 项目介绍
  2. mysql优化
  3. 有什么问题想问我的 (主要问项目)

6. 某大厂

一面

  1. 自我介绍
  2. redis:
    a. 存储的数据类型有哪些
    b. List 存储的是什么
    c. 持久化机制
    d. RDB与AOF有什么不同
    f. 集群方式
    g. 存在丢数据问题吗
    h. 一致性hash算法

  3. mysql:
    a. 你们用的存储引擎是什么
    b. 有哪些锁
    c. 读锁与写锁有什么不同,具体使用
    d. 隔离级别有哪些
    e. innodb 默认的隔离级别是哪个
    f. 可重复读会产生什么问题
    g. 可重复读是如何解决的
    h. mvcc 实现机制

  4. Java:
    a. 如何处理并发
    b. 先说说sychronized 实现原理
    c. cas如何保证原子性
    d. volatile 关键字作用
    e. 工作内存如何将数据写到主内存中
    f. 有哪些锁
    g. 讲讲原子锁及过程
    h. 公平锁与非公平锁
    i. AQS内置的数据结构
    m. 原子锁与synchronized有什么不同
  5. 智力题:两个人在圆桌上放硬币,且硬币不能叠加,第一个放硬币的是自己,如何确保最后对手不能再放上硬币

二面

  1. 自我介绍
  2. 项目中的难点及解决方案
  3. 项目中如何实现请求调用的幂等性
  4. 手写LRU

7. 某大厂

一面

  1. 自我介绍、项目介绍
  2. 数据量过大时,如何分库分表?
  3. maven package 和 install的区别
  4. 如何排查线上问题

二面

  1. 项目介绍
  2. 介绍你们使用的流程引擎和工作流执行的过程
  3. 项目中用到的幂等
  4. 微服务有用过吗
  5. 分布式锁
  6. 为什么选择redis作为分布式锁?
  7. 分布式锁还有其他实现方式用吗
  8. linux命令熟悉吗,说下awk命令,会写shell脚本吗
  9. 会使用前端技术吗
  10. 单侧

三面

  1. 项目介绍,及问题