前言

自己可能也快要离职了,这里放一下他人的面试总结,自己每个知识点去了解一下。

java基础

  1. 为什么String定义为final。
  2. 描述下java集合,项目中用到哪些。
  3. StringBuilder和StringBuffer的区别。
  4. HashMap中常用的方法有哪些,什么时候会触发树化,jdk1.7和1.8实现的差异,1.7的实现为什么会出现死锁,画图说明下。HashMap和TreeMap的区别。
  5. 说下枚举类型,底层实现原理,项目中是如何使用的。
  6. 详细描述Error和Exception(运行期和编译期)的区别。
  7. 创建线程的方式,线程的生命周期。
  8. ThrealLocal实现原理,为什么会出现内存泄漏。
  9. volatile关键字原理,项目中是如何使用的。
  10. synchronized和lock的区别,底层实现原理。AQS队列实现原理,用了哪些设计模式。公平锁和非公平锁、独占锁和共享锁、读写锁分别是如何实现的,为什么说非公平锁比公平锁性能高。
  11. 序列化和反序列化。
  12. 深拷贝和浅拷贝区别。
  13. java内部类的区别(成员内部类、静态嵌套类、方法内部类、匿名内部类 )。
  14. java线程池参数描述,线程池工作原理,线程池如何调优。
  15. 主线程到达一个条件,需要多个子线程去执行任务,等子任务都执行完后再往下走,如何编写代码(CountDownLatch)。
  16. 写个程序,两个线程交叉打印1到100的数字,需要多种实现方式。

JVM

  1. JVM运行时数据区域和内存模型描述,jdk8为什么移除方法区。
  2. 垃圾回收算法和垃圾回收器描述,在工作中,新生代和老年代分别用的什么垃圾回收器。
  3. 新生代和老年代什么时候会触发GC。
  4. 四种引用区别。
  5. CMS垃圾回收过程描述,CMS有哪些缺点,对比G1。
  6. GC调优步骤,有实操过吗。
  7. 描述下JVM类加载过程,如何自定义类加载器。
  8. 描述下双亲委派模型,为什么需要双亲委派模型。
  9. 泛型是如何实现的,逃逸分析知道吗,说下。
  10. OOM、内存泄漏如何排查,用到哪些工具,如果不用工具如何进行定位。
  11. 机器负载变高如何排查,如果发现是jvm进程引起的,如何定位到代码行。

Spring框架

  1. Spring框架用到了哪些设计模式。
  2. Spring生命周期详细描述。
  3. Spring是如何解决循环依赖的。
  4. Spring扩展点有哪些,项目中是如何应用的。
  5. Spring IOC、AOP描述。
  6. Spring事务和MySQL事务的区别,Spring事务传播机制介绍,Spring事务失效和解决方案。
  7. Spring全局异常捕获如何编写。
  8. AOP动态代理实现:jdk动态代理和cglib实现差异,cglib性能为什么比jdk动态代理性能高,Fastclass机制描述下,哪些方法不能被动态代理。
  9. AOP失效举例,为什么会失效,如何解决。
  10. BeanFactory和FactoryBean的区别。
  11. Spring创建了单例对象,如果多线程并发对属性赋值,造成相互覆盖的情况,如何处理。
  12. SpringMVC和SpringBoot的区别。

MySQL

  1. 事务描述,ACID讲解。
  2. 事务隔离级别描述,脏读、不可重复读、幻读区别,MVCC机制讲解。
  3. Innodb如何解决幻读,间隙锁实现详细描述。
  4. left join和inner join的区别,嵌套子查询如何优化。
  5. 如果线上出现慢sql,如何定位和解决,有实际动手优化过慢sql吗。
  6. binlog机制描述,binlog日志格式有哪些。
  7. MySQL主从架构(读写分离),主从数据复制过程,数据复制过程丢失如何处理。
  8. 分库分表如何实现,用过哪些分库分表插件,底层原理是怎样的。
  9. 索引有哪些种类,建立索引的原则,聚簇索引和非聚簇索引实现区别,联合索引如何使用。
  10. mysql写入数据的时候,是先把数据写到缓冲区,然后再flush到磁盘的,如何在flush过程中发生了宕机,数据如何恢复。

Redis

  1. redis数据类型,说下跳跃表是如何实现的,可以用什么数据结构替换。
  2. 删除过期key策略有哪些,内存淘汰策略有哪些,分别什么时候触发。
  3. redis线程模型和内存模型。
  4. redis持久化机制。
  5. redis集群方案。
  6. 让你设计一个redis,你会怎么做,有看过redis源码吗。
  7. 了解一致性hash算法吗,描述下。
  8. 用redis实现一个分布式锁。
  9. 缓存穿透、缓存击穿、缓存雪崩区别和解决方案。
  10. 布隆过滤器知道吗,说下原理。

Dubbo

  1. 描述一下rpc调用过程。
  2. 让你实现一个rpc框架,你会怎么做。
  3. 链路跟踪和熔断机制了解吗,框架层如何实现的。
  4. 了解哪些序列化协议,有什么区别,项目中用的是什么协议。
  5. 说下Netty,bio、nio、aio区别,select、poll、epoll区别,什么是零拷贝机制。

Kafka

  1. Kafka、RabbitMQ、RocketMQ区别,为什么RabbitMQ时延最低,知道事务消息吗。
  2. Kafka生产者、消费者、协调者、服务端工作机制,描述数据从生产端到消费端到过程。
  3. 如果出现数据丢失或者数据重复消费如何处理。
  4. Kafka为什么高吞吐量。
  5. Kafka是如何实现exactly once语义的。
  6. 让你设计一个消息队列,你会怎么设计。

Zookeeper

  1. zookeeper节点类型、服务器角色,watch机制。
  2. 描述下ZAB协议。
  3. 应用场景。
  4. 使用zookeeper实现分布式锁和读写锁。

算法编程

  1. 无重复字符的最长子串
  2. 二叉树的直径
  3. 二叉树最大宽度
  4. 寻找旋转排序数组中的最小值
  5. 旋转链表
  6. LRU缓存机制
  7. 数据流的中位数
  8. 搜索旋转排序数组

设计模式

  1. 单例模式:多种实现方式,double check实现原理,枚举类实现(枚举类为什么不能被反射)
  2. 模版方法设计模式:工程中的应用
  3. 静态代理和动态代理设计模式
  4. 装饰器模式
  5. 适配器模式
  6. 工程方法模式
  7. 责任链模式

原文链接:疫情下被裁,如何找到合适的工作

Last modification:June 2nd, 2020 at 09:53 am
如果觉得我的文章对你有用,请随意赞赏
评论打卡也可以哦,您的鼓励是我最大的动力!