2020.05 我的三年 Java 面经

2020.05 我的三年 Java 面经

2020.05 我的三年 Java 面经

要是你过了很久,从哪里又划拉出这篇文章,建议不要打开,浪费时间

上来先说明下,找面经的朋友一定注意面经的时间性,我的面试经历时间点在 2020.05~2020.06

以我的面试经历来看,由于技术迭代快,面经的参考有效性不超过一年,往后迭代会更快

面试时有面试官直接说过,有些知识我回答得偏旧,建议不要走我老路

知识

我三年 Java 开发,以下是面试过程中的一些点,Java 面试宝典.pdf 之类的建议自行准备

我总共面试7家,整个过程就是面试 -> 整理面经 -> 面试,到后边就觉得面的点都得差不多,实在答不上的,只能怪我自己笨些,不能强求

总得来说,JVM、JMM、多线程、数据库问得最多,中间件其次,框架和分布式之类的反而最少

数据库

  • 大表分页查询优化
    增加有效可利用的索引,其目的是减少每次查询时的系统负载。
    1. 用固定页码做索引: 前提条件是页码总数只增不减少, pageTotal%pageSize 例如第 1-100 条数据的索引就是 index_page_1,以此类推.
    2. 每次携带最大的主键 id,使其查询时带上 id :例如: where id>{maxId} limit 10
    3. 优化:根据现有业务按列分表,将用于排序的列数做最小拆分,尽量不要有大规模字符串,查询后用 in(ids)方式聚合
    4. 增加一个扩展表,用于分页: pagination(id,page_number) 原理同第 0 条
  • explain 语句解释器各字段含义
    explain结果每个字段的含义说明
  • 大表加索引的处理
    mysql在线修改表结构大数据表的风险与解决办法归纳
  • 表字段括号数字
    代表最小显示位数
  • MySQL死锁
    MySQL死锁和避免死锁
  • Mysql 锁和锁算法
    Mysql 锁和锁算法

多线程相关

ES

Redis

网络

基础

框架

  • Gateway
  • JPA
  • Eureka
  • Zookeeper

业务场景题

  • 六百万消息推送 支持横向拓展实例(考察横向拓展实例)
  • 大表加索引(考察数据库操作)
  • jvm线程池实现库存缓存应对秒杀场景,线程池中线程增加小额库存(考察基础)
  • 子店铺如果可以更改商品属性,不同店铺的数据缓存如何处理(考察中间件)

工作亮点

工作中的工作内容的闪光点,没有不用强求

但是至少工作内容要熟悉,不要一问,做了什么答不上来,两三句太敷衍

杂谈

其实五六月疫情控制住了,工作机会开始回暖,上家公司裁人很突然,还好不是在疫情最严重的时候裁的,万幸

面试准备的话,两三周,每天三四小时有效时间就行了,大神当我没说过,我是个普通人

看的时候注意松弛有度,要有耐心,不要一直看,我是很难保持长时间的专注的,但是每天一点,要坚持

面试,心态放平些,一半准备,一半运气,是真的,运气真的占一半,面试公司、面试官都是运气的一部分,正常发挥就好,不要太紧张

然后说说丧气话,我们要客观的认识到一点,内卷是客观存在的,面试的这些东西和工作内容相差很远,这就是八股文,这就是现状,而且会愈演愈烈,争的是名额,名额永远有限,甚至原来越少,那么就和考试一样,录取线会一抬再抬

我不是想贩卖焦虑或者劝退,而是我想说的是,做好决策就行,结果和决策没半毛钱关系,好决策是基于现状,结果是未来的东西,不要事后诸葛亮,或者事后后悔药,负责任的下决定,选什么都行

祝生活一帆风顺,完