纯面试题目总结

264 阅读4分钟

基础

  • Java有哪些数据类型?
  • == 和 equals 的区别是什么?
  • int 和 Integer 有什么区别?
  • java 中操作字符串都有哪些类?它们之间有什么区别?
  • 如何将字符串反转?
  • String 类的常用方法都有那些?
  • 你重写过 hashcode 和 equals 么,为什么重写 equals 时必须重写 hashCode 方法?
  • IO流的分类?
  • BIO、NIO、AIO 有什么区别?
  • 反射的理解?
  • 反射涉及到几个核心类?
  • list、set、map的区别?
  • list、Map、Set接口常用实现?
  • 除了vector能实现线程安全list?
  • synchronized和Lock区别?
  • Arraylist 与 LinkedList 异同?
  • HashMap的底层实现?如何解决hash冲突?
  • 能否使用任何类作为 Map 的 key?
  • 为什么HashMap中String、Integer这样的包装类适合作为K?
  • 线程安全的map?
  • Java8新特性?
  • 函数式接口是什么?常用函数式接口?
  • Stream接口?

多线程

  • 重排序是什么?如何避免?
  • volatile关键字的作用?
  • 说说自己是怎么使用 synchronized 关键字?
  • Java 中新的Lock接口相对于同步代码块(synchronized block)有什么优势?
  • 如果让你实现一个高性能缓存,支持并发读取和单一写入,你如何保证数据完整性?
  • 如何在Java中实现一个阻塞队列?
  • 写一段死锁代码。说说你在Java中如何避免线程死锁?
  • 创建线程的几种方式?
  • 什么是 FutureTask?
  • 为什么要用线程池?
  • 构建线程池的几种方式?
  • 实现Runnable接口和Callable接口的区别?
  • 执行execute()方法和submit()方法的区别是什么呢?
  • 守护线程和用户线程有什么区别呢?
  • sleep() 和 wait() 有什么区别?
  • 线程的 sleep()方法和 yield()方法有什么区别?
  • 调用 start() 方法时会执行 run() 方法,为什么我们不能直接调用 run() 方法?
  • 线程池都有哪些状态?
  • ThreadLocal 是什么?有哪些使用场景?
  • 怎么保证多线程的运行安全?

spring

  • 什么是 ioc?
  • 什么是 依赖注入?
  • spring常用的注入方式有哪些?
  • 什么是 aop?
  • 项目中使用到的AOP的地方?
  • AOP具体使用实现流程?
  • AOP原理?
  • 动态代理?
  • BeanFactory与FactoryBean?
  • spring支持几种bean的作用域?
  • spring 自动装配 bean 有哪些方式?
  • @Autowired和@Resource之间的区别?
  • 说一下spring的事务?
  • Spring的事务传播行为?
  • 事务隔离级别?
  • ApplicationContext是什么?通常的实现是什么?
  • @Component 和 @Bean 的区别是什么?
  • 说一下spring mvc 运行流程?
  • Spring MVC常用的注解有哪些?

SpringCloud

  • Spring Cloud 核心组件?
  • Spring Cloud 与 Dubbo 对比?
  • Eureka和ZooKeeper区别?
  • 网关能做什么以及网关核⼼逻辑?
  • Nginx与Ribbon的区别?
  • Ribbon负载均衡策略?
  • Ribbon负载均衡的注解是?
  • 什么是服务熔断?
  • 什么是服务降级?
  • 断路器Hystrix的有哪些功能?
  • 启动熔断降级服务的注解?
  • Hystrix雪崩效应解决方案?
  • 什么是Feign?
  • Feign优点?
  • Hystrix和Sentinel的区别?
  • 服务注册和发现是什么意思?Spring Cloud 如何实现?
  • 微服务rpc远程服务调用最核心的是什么?
  • 什么是 Spring Cloud Bus?我们需要它吗?

Redis

  • 说一下对Redis的理解?
  • Redis的数据类型有哪些?
  • Redis应用场景?
  • 分布式锁怎么实现?
  • 乐观锁怎么实现?
  • Session⼀致性怎么解决?
  • 说一下对缓存的理解?
  • 如何保证redis中的数据都是热点数据?
  • Redis缓存穿透,缓存击穿,缓存雪崩以及解决方案?
  • Redis缓存和MySQL数据⼀致性的解决方案?
  • Redis并发竞争key的解决方案?
  • 如何保存redis的高可用性?
  • 哨兵模式?
  • Redis为什么是单线程、及⾼并发快的原因?
  • Redis持久化方式?

RabbitMQ

  • RabbitMQ能做什么?
  • RabbitMQ中的角色有哪些?
  • RabbitMQ常用的交换器类型?
  • RabbitMQ工作流程?
  • RabbitMQ的工作模式?
  • 如何保证消息不被重复消费?
  • 如何确保消息正确地发送至RabbitMQ?如何确保消息接收方消费了消息?
  • 怎么避免消息丢失?

Mysql

  • 三大范式?
  • 经常使用的聚合函数?
  • varchar与char有什么区别?
  • mysql 的内连接、左连接、右连接有什么区别?
  • 什么是脏读?幻读?不可重复读?
  • 什么是事务的隔离级别?MySQL的默认隔离级别是什么?
  • MySQL都有哪些锁呢?
  • 行锁是怎么实现的?
  • 索引的类型?
  • 索引的结构?
  • 创建索引的原则?
  • 索引分析与优化?
  • 什么是回表查询?
  • 什么是索引覆盖?
  • 如何判断是否为慢查询?
  • 如何判断是否应用了索引?
  • Mysql优化有哪些?