大家好,我是 jonssonyan
互联网寒冬?金九银十真的不存在了么?虽说现在行情是差了一些,面试机会少了一些,但是大部分公司还是或多或少的招人,春招秋招都在进行。有人离职就有人入职。所以如果你还没约到面试,不要灰心,多投多面,自然而然面试的感觉也就有了。
这篇文章再和大家分享一些我最近面试遇到的面试题,我面试的是 Java 开发岗,1-5 年工作经验,希望对大家有帮助,也希望大家可以找到自己满意的工作。
- 一条 SQL 语句的执行过程
- 连接器: 身份认证和权限相关(登录 MySQL 的时候)。
- 查询缓存: 执行查询语句的时候,会先查询缓存(MySQL 8.0 版本后移除,因为这个功能不太实用)。
- 分析器: 没有命中缓存的话,SQL 语句就会经过分析器,分析器说白了就是要先看你的 SQL 语句要干嘛,再检查你的 SQL 语句语法是否正确。
- 优化器: 按照 MySQL 认为最优的方案去执行。执行器: 执行语句,然后从存储引擎返回数据
- 线程池的执行过程
- 如果当前运行的线程数小于核心线程数,那么就会新建一个线程来执行任务。
- 如果当前运行的线程数等于或大于核心线程数,但是小于最大线程数,那么就把该任务放入到任务队列里等待执行。
- 如果向任务队列投放任务失败(任务队列已经满了),但是当前运行的线程数是小于最大线程数的,就新建一个线程来执行任务。
- 如果当前运行的线程数已经等同于最大线程数了,新建线程将会使当前运行的线程超出最大线程数,那么当前任务会被拒绝,饱和策略会调用 RejectedExecutionHandler.rejectedExecution()方法。
- Spring 中 Bean 的生命周期
- Java 中锁升级的过程
https://segmentfault.com/a/1190000022904663
- synchronized 关键字的使用方式
- synchronized 关键字加到 static 静态方法和 synchronized(class) 代码块上都是是给 Class 类上锁
- synchronized 关键字加到实例方法上是给对象实例上锁
- 尽量不要使用 synchronized(String a) 因为 JVM 中,字符串常量池具有缓存功能
- Java 内存模型
https://javaguide.cn/java/concurrent/jmm.html
- Redis 中缓存击穿、雪崩、穿透,以及对应的解决方案
https://pdai.tech/md/db/nosql-redis/db-redis-x-cache.html
- 限流算法有哪些
https://javaguide.cn/high-availability/limit-request.html
- Spring AOP 应用场景
https://juejin.cn/post/7174708698504233017
- 分布式锁
https://pdai.tech/md/arch/arch-z-lock.html
- 分布式中的 CAP 理论
CAP 也就是 Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性) 这三个单词首字母组合。、
以上就是我最近面试总结的一些常见面试题,被问到的频率还是很高的,希望对大家有帮助,我是 jonssonyan,我们下期再见。