Java高级工程师面试题总结

根据半个多月面试java高级工程师岗位,遇到的一些面试题,总结了一下。废话不多说,直接上干活

基础部分

  • 谈谈对synchronized 和lock 原子类的理解?
  • synchronized(this)线程安全吗? --什么时候安全什么时候不安全
  • 谈谈Map LIst Set的理解?
  • 用自己的话说说面向对象的理解?
  • JDK8的新特性 函数编程Lambda和stram的理解?

JVM模块

  • 用你自己的话谈一下JVM的结构类型?
  • 垃圾回收机制算法?
  • 用过哪些调优参数?
  • JVM在Jdk8之前和之后的区别?

Spring框架

  • spring事务声明式和编程式,多数据源事务是怎么处理的
  • spring事务传播行为 7种 ?
    主要require,require_new
  • spring的Bean周期
  • 说说你自己对Ioc的理解 Aop的理解,手写份Aop

多线程

  • 手绘一份线程的各个状态的关系图?
  • 用过什么类型线程池,线程的区别,在项目中什么场景下使用?
  • 线程池参数corePoolSize:核心线程数,maxPoolSize:最大线程数的理解?
  • 为什么你会在项目中使用线程池,线程池的那几个参数你是怎么设置的?

Redis缓存

  • 缓存穿透情况怎么处理?
  • 缓存雪崩情况怎么处理?
  • redis的高可用有哪些方案?
  • redis数据持久化是怎么处理的?
  • redis的失效机制?
  • redis作为分布式锁?

数据结构

  • 如何判断单链表是否有环的几种方法?
  • B+树和B树的区别,Myisam和Innodb中B+树的区别
  • 手画B树B+树和二叉树
  • B+树种范围查找和随机查找的优缺点

数据库

  • 是否会写存储结构,游标的理解?
  • sql优化的几种方法
  • sql的几种索引区别?
  • sql联合索引的传递?
  • 建立表结构的原则?
  • 分库分表

微服务

  • 分布式事物是怎么处理的? 原理CAP BASE 2PC 3PC LCN分布式事物
  • eruka注册中心高可用? 两台集群和三台集群的区别?
  • eruka和zookeeper的区别?
  • eruka的原理图手画?
  • Hystrix服务熔断,降级,隔离的原理断路器概念理解,以及在项目中用到的场景?
  • Spring Cloud Config的原理图? 以及热部署是怎么实现的?
  • Spring Cloud Config 和Bus联合使用的原理?
  • Spring Cloud Security和Shiro权限框架 。控制到url原理和在项目中是否有遇到过什么问题。
  • Ribbon的负载均衡与Nginx的区别,手写一个Ribbon负载均衡?

你可能感兴趣的:(面试题)