Java面试问题整理

Java基础

  1. 重写和重载区别
  2. 面向对象特征
  3. 什么是序列化
  4. 为什么要序列化
  5. serialversionuid 默认1L和64位的哈希字段有什么区别
  6. 序列化的用途
  7. final、finally、finalize的区别
  8. transient作用

Java集合

  1. HashMap原理
  2. HashMap如何resize
  3. HashMap的并发问题
  4. 什么是hash碰撞
  5. 解决hash冲撞的方法
  6. HashMap1.8做了那些优化
  7. ConcurrentHashMap1.7原理
  8. ConcurrentHashMap1.8原理
  9. ConcurrentHashMap1.8和1.7的区别

Java锁机制

  1. cas实现原理
  2. cas解决了什么问题
  3. cas有哪些缺点
  4. volatile作用
  5. volatile怎么保证可见性,有序性
  6. volatile为什么保证不了原子性
  7. volatile使用场景
  8. java线程内存模型
  9. synchronized原理
  10. lock原理
  11. synchronized和lock区别

Java多线程

  1. sleep、join、yield有什么区别
  2. ThreadLocal原理
  3. Threadlocal为什么内存泄漏
  4. 怎么避免ThreadLocal内存泄漏
  5. 线程池原理
  6. 为什么使用线程池
  7. 几种java提供的线程池介绍
  8. ThreadPoolExcutor几个构造参数介绍
  9. 四种饱和机制
  10. 四种阻塞队列
  11. 如何保证线程安全

Jvm

  1. java类加载机制
  2. 类加载器加载顺序
  3. 对象存活的判断机制
  4. 几种垃圾回收算法
  5. 几种垃圾收集器
  6. Jvm内存结构组成
  7. Jvm常用的控制参数
  8. 新生代和老年代的大小比列,eden、s0和s1比例
  9. 对象如何从eden、s0、s1到老年代过程

redis

  1. redis有哪些类型
  2. redis应用场景
  3. redis如何保证的持久化
  4. 什么是缓存穿透
  5. 怎么解决缓存穿透
  6. 什么是缓存雪崩
  7. 怎么解决缓存雪崩
  8. redis的setnx是什么意思,常用它做什么
  9. redis的list常用常用方法
  10. redis的map常用方法

rabbitmq

  1. rabbitmq的exchange类型有哪些
  2. 消息队列使用场景
  3. 生产者如何确保消息投递rabbitmq
  4. 消费者如何确保消息从rabbitmq消费掉
  5. 进入rabbitmq死信条件
  6. 变成rabbitmq死信并被消费的过程

spring cloud

  1. Hystrix解决了那些问题
  2. Hystrix的工作原理
  3. Hystrix的线程隔离策略
  4. Zuul可以做什么
  5. 什么是Zuul
  6. 前后端分离跨域问题的解决方案
  7. 调用一个突然down掉的服务(eureka还不知),你的配置方案
  8. 开启重试机制事对所有的方法错误重试吗,与以及需要注意的事项

分布式

  1. 分布式事务CAP原理,ACID模型和BASE模型
  2. 分布式锁的实现方案
  3. 分布式事务的解决方案
  4. 什么是接口的幂等性
  5. 分布式环境下session解决方案

web

  1. HTTPS协议是什么
  2. HTTPS工作原理
  3. RSA是什么
  4. SSL是什么

数据库

  1. limit 10000的解决办法(压根就不应该)
  2. 数据库为什么采用btree
  3. MyISAM和InnoDB的区别
  4. 死锁的产生的原因
  5. 如何尽可能的避免死锁
  6. 如何定位死锁问题
  7. 数据库的隔离机制及原理
  8. mysql索引使用事项

spring

  1. spring mvc
  2. spring bean 大多数是单例,再多线程下安全的原因
  3. spring事务的传播属性
  4. spring ioc
  5. spring aop

猜你喜欢

转载自blog.csdn.net/zyt807/article/details/80178080