JAVA面经

312 阅读7分钟

远东集团

  • Spring Boot的特性?
  • @Component和@Service注解的区别?
  • Spring事务的传播机制?(要求完整具体的说出有哪些传播机制,具体有什么应用场景,问的非常细节)
  • Spring的特性
  • Spring框架中有哪些地方用到了AOP,项目中是怎么用的?Spring AOP动态代理还是静态代理?
  • 分布式事物?
  • @Controller和@RestController的区别?
  • Kafka的消费组机制,分区机制,负载均衡机制
  • Redis缓存击穿,缓存穿透和缓存雪崩,如何解决?
  • 数据库索引(主键索引,组合索引等),最左匹配相关知识
  • @Transcational注解的作用是什么?
  • 数据库的隔离级别?不同隔离级别下的问题?
  • 动态代理的机制
  • HashMap和ConcurrentHashMap,HashMap的数据结构,ConcurrentHashMap如何保证线程安全的等
  • CountDownLatch和CycleBarrier的区别,项目中是如何用多线程的?
  • 单例模式,手写双重检查锁
  • 什么是CAS?
  • volatile是干什么的?解决的是什么层面的问题?
  • 什么是CSRF、XSS、CORF?
  • 如何防止sql注入?
  • Redis数据结构,zset的细节,比如sort的值能不能是字符串?
  • 哪些实现分布式锁的方式,各自的原理?(主要是redis和zookeeper)
  • 说一说你心目中的微服务(开放题)
  • 研究过k8s吗?

菜鸟网络

  • 解决线上问题积累了哪些经验?
  • 日志经验?
  • JVM调优经验?
  • 内存泄露如何排查问题?
  • 线程安全的集合和非线程安全的集合有哪些?
  • HashMap数据结构越详细越好?追问HashMap的扩容机制?
  • ConcurrentHashMap数据结构越详细越好?
  • LinkedHashMap数据结构越详细越好?
  • Lock和Synchronized的区别?
  • AQS如何实现的?
  • 如何运用AQS实现公平锁和非公平锁?
  • 如何解决高并发场景下的IO密集型任务(主要考察NIO)?
  • 介绍多线程,原子性、可见性和有序性如何理解?
  • 项目中消息中间件kafka的作用?
  • CAS是什么,Integer如何实现?
  • Redis介绍一下,为什么新版本用多线程?
  • Redis 持久化方式有哪些?有什么区别?
  • 项目中性能优化的实际案例?
  • 还研究过哪些源码?Spring的源码有研究过吗?
  • 数据库高可用方案
  • 一致性hash了解吗?

叽里呱啦

  • 手写LRU缓存
  • 熟悉的设计模式,装饰模式和代理模式的区别?项目中使用过装饰者模式吗?
  • CMS了解吗?为什么CMS的停顿时间短?
  • 双亲委派模型了解吗?为什么要用双亲委派模型?
  • 类加载机制了解吗?
  • 了解过热部署吗?
  • 哪些方法能够实现线程安全?
  • ThreadLocal的内存泄露问题了解吗?
  • 了解服务治理吗?
  • 有没有在框架源码的基础上进行二次开发?
  • mysql有哪些不走索引的情况?
  • mysql中有哪些索引?hash算法的原理研究过吗?MySQL InnoDB为什么用B+树,而不用红黑树或者B树?
  • 项目中有挑战性的事情?
  • 有没有处理过分布式事务,如何处理的?

菜鸟网络(二轮)

  • spring starter原理
  • ArrayList和LinkedList的区别?如何选择?ArrayList的初始大小为什么是10?
  • HashMap与HashTable的区别?升华到ConcurrentHashMap如何实现并发安全?
  • Synchronized实现锁的原理?
  • 接口和抽象类有什么区别?如何选择?试用场景?
  • 什么是序列化?有哪些序列化方式?protobuf是如何提高效率的?采用了什么压缩算法?
  • 线程池是干什么的?jdk中有什么实现?如何实现?线程池选型?线程数如何设置?不同场景的拒绝策略?
  • 序列化中的UUID是干什么的?没有UUID会有什么后果?序列化和发序列化底层是如何实现的?
  • CMS垃圾回收器了解吗?如何做到低延迟的?CMS有什么缺点?了解其他的垃圾回收算法吗?
  • 如果内存为8G,如何设置JVM的最大内存和最小内存?
  • survivorRatio怎么理解?
  • @Resource注解和@Autowired注解的区别?
  • 为什么用mybatis而不用JDBC?mybatis只需要接口而不需要实现类是如何做到的?
  • Redis数据结构?
  • 一致性hash的原理
  • MySQL常见的存储引擎?
  • MySQL乐观锁和悲观锁?试用场景是什么?
  • 聚蔟索引和非聚蔟索引的区别?
  • 如何排查慢sql问题?
  • 数据库选错索引该如何解决?
  • Kafka消息中间件如何做到消息的可靠性?
  • 消息幂等性如何保证?
  • 线上问题,线上请求响应变慢如何排查定位?
  • Mybatis缓存了解吗?
  • dubbo了解吗?如果做服务注册和发现的?
  • Spring bean的循环依赖问题如何解决?
  • 项目中遇到的有挑战的事情是什么?

网易

  • topK问题,手写代码
  • 有哪些实现线程安全的方式
  • ThreadLocal的原理了解么?说一下ThreadLocal的使用场景?ThreadLocal使用过程中要注意什么问题?
  • synchronized和lock的区别?synchronized底层原理?Lock是如何实现的?

美团点评

  • spring starter原理
  • 线程池原理
  • CountDownLatch实现的功能还能用什么来实现(CompletableFuture)?
  • Redis常用数据结构,Hash底层数据结构是什么?
  • 手写斐波那契数列

美团点评

  • 手写String转int
  • 手写两个有序数组合并
  • 设计模式用的多么?观察者模式原理是什么?
  • 性能优化做了哪些方面的工作?
  • 高可用做了哪些方面的工作?

中国平安陆金所

  • 字符与字节的区别,char占用多少个字节,汉子能用char来表示吗?
  • 浅拷贝和深拷贝了解么?如何实现深拷贝?
  • ArrayList了解么?扩容是什么过程?数组复制的方式是通过什么形式来完成的(System.arrayCopy,系统调用)?
  • Mysql如何查看sql语句的执行计划?什么情况下Mysql会选错索引?选错索引如何解决?
  • Java反射了解么?

美团点评

  • 点赞系统设计?
  • 线程池方面,主要是线程数量的选择;
  • 大事务是如何导致MGR集群失败的;
  • 如何保证kafka消息不丢失?
  • kafka消息阻塞如何解决?

美团点评

  • 性能优化方面;
  • 微服务拆分;
  • 如何统计访问记录?
  • 挑一个熟悉的中间件讲原理?
  • 后端多人编辑冲突合并算法设计?

哔哩哔哩

  • SpringBoot和Spring Cloud的联系和区别?
  • Eureka做服务发现的原理,说自己比较了解Dubbo一些,问Dubbo的服务注册和发现时如何实现的?
  • Spring MVC那一套了解么?
  • @Autowired是如何实现的
  • CountDownLatch是如何实现的?
  • 数据库隔离级别,不同隔离级别会出现什么问题?举一些不同隔离级别的使用场景?
  • InnoDB事务是如何实现的?
  • 数据库中有哪些索引,为什么用B+树,不能其他平衡二叉树吗?
  • 数据库中有哪些锁?
  • MySQL商业版和MariaDB有什么区别?
  • MysQL SQL解析(explain那一套)
  • Redis主从同步是怎么做的?
  • Redis的持久化方式有哪些?各有什么不同?
  • zookeeper了解吗?
  • Raft和Paxos了解吗?
  • MySQL InnoDB Cluster主从切换的过程是什么?
  • docker了解吗?
  • 有自己配置过Kibana参数吗?
  • maven父子模块依赖问题?
  • kafka中的key是干什么用的?kakfa的负载高吗?了解RocketMQ吗?
  • Restful API的理解
  • 性能优化做过哪些方面的工作?
  • 高可用做过哪些方面的工作?

阿里巴巴某政企部门一轮

  • 举例说明必须重写equals方法的场景?重写equals方法需要注意什么?为什么每个实例都需要一个默认的hashCode方法?
  • 单例模式(double check + volatile)
  • 增删改查场景如何实现幂等性?
  • 一个微服务需要支持1000QPS,你如何设计?你会考虑哪些方面?
  • 高可用中间件搭建过多少?