面经

本文收集最近遇到的好问题,保持学习,保持进步。

数据结构

  1. 树的深度优先和广度优先的算法实现
  2. 数据库的联合索引的底层实现
  3. map 如何保证顺序
  4. 谈谈HashMap 的源码
  5. 谈谈如何删除ArrayList 的元素

Java语法

  1. try-catch-finally 的执行顺序, finally 一般用于什么, 如果tryfinallyreturn 了,实际上return 的是什么
  2. Java 的多线程机制, 谈谈 synchronizedLock 的区别,你还知道哪些机制,分别有什么作用
  3. sleep()wait() 的区别, 为什么一个存在 Thread, 一个存在 Object

JVM

  1. 写一个方法触发新生代 GC
  2. 写一个方法触发老年代 GC
  3. Java 的类加载器有什么目的, 谈谈你了解的类加载器, 有实现过类加载器吗
  4. 你做过 JVM 调优吗?一般性的原则是什么
  5. 内存溢出有哪几种情况
  6. 栈溢出有哪几种情况

框架

  1. 一个springboot 生成的 jar包是什么顺序, JVM如何找到其中的静态资源与类
  2. Mybatis 的接口可以重载吗,为什么
  3. spring.factories 有什么作用

关系型数据库

  1. MySql中 deletetruncate 的区别, 为何 delete 后数据库的存储不会变少
  2. 谈谈在项目中用到哪些索引,了解回表吗?什么样的数据索引效果比较好
  3. 比如有一个慢SQL,你会从哪些角度考虑优化
  4. 联合索引中哪一个字段不会被索引

非关系型数据库

  1. 谈谈你利用 Redis 做了什么
  2. 为什么 Redis 可以当作分布式锁
  3. 为什么不推荐 Redis 当消息队列使用

操作系统

  1. 常在 Liunx 上执行的命令
  2. 一般多线程池如何配置线程个数
  3. 如果线程个数超过了线程池的上限,会如何
  4. Linux 的管道操作是什么意思? 如何实现

分布式事务

  1. 为什么需要分布式ID, 如何构造一个分布式ID
  2. 常见的分布式锁如何实现
  3. 讲一讲分布式的具体实现

希望各位同学能够自己好好想想问题以及答案。

原文地址:https://www.cnblogs.com/kwanwoo/p/14686449.html