杭州装点文化-玩物得志复盘

从12月底开始决心做JAVA开发,开始学习Spring相关用法,到一月末开始补起基础,现在3月头开始试试春招实习,以下是第一次面试经历。

我想找一家小公司试试水看看学的怎么样,没啥准备,结果没想到技术面有三面。一面完以为结束了,过了一天来了二面,上午二面完勉勉强强,下午三面炸了。感觉像是,打怪不小心触发了隐藏Boss卡关顶不住挂了,那种感觉。

一面

一面总体来说通话质量问题不太好···面试官基本让我自己去讲,而我掌握不牢固,逻辑表达混乱和没切中要领,比较伤

  • 问项目,数据表是怎么设计的

    答:表述的特别不好,逻辑不清···往设计范式那边说,但是还是混乱

  • HashMap源码

    答:(那时候前天刚囫囵的学的),勉强可以

  • Redis限流器

    答:三种限流器,到用Redis+Lua实现仿Guava的RateLimiter

  • 简单说说Mysql索引,B+树和B树区别

    答:MYISAM和Innodb的索引巴拉巴拉,然后B+和B就说了卫星数据,和B+树特点,和范围查找

  • Spring Aop

    答:(那时候昨天半夜2点看到记得)动态代理,JDK方法,和Cglib方法

  • 线程池玩过吗

    答:没···(一面完第二天看了遍,关键是后天的下午5点半三面也问了,参数又忘光了··唉)

  • 代码题:找单向链表倒数第K个节点

    答:双指针法,快慢节点差距K

二面

  • TreeMap和跳表区别,跳表缺点

    答:TreeMap没了解,说了顿跳表和缺点(更新,索引密度)

  • 算法:求TopK,视频手写

    答:桶排后 快排/堆排

  • Redis的AOF,DBD区别,AOF优化

    答:说了点区别···AOF优化不会了

  • 除了Redis外了解什么Nosql

    答:MongoDB,问我使用场景,答按着教程用···MongoDBTemplate

  • Redis,缓存穿透咋办

    答:布隆过滤,空值,再问布隆过滤原理,答忘了····(只有一点点印象,唉这脑子)

  • 问了深度学习的项目业务

    答:说了一遍业务,那个业务设计的还是ok的

  • JVM的垃圾回收,问了垃圾回收算法,追问了Java8对于永久代(其实改成了元空间)的优化

    答:混乱的说了下能想起的垃圾回收,关键是没往标记-清除,标记-整理,标记-复制,分代方向答,往了老年代新生代内存划分方向答···。然后Java8的元空间不会···

  • Zoomkeeper用过吗

    答:没····

三面(炸了)

三面其实问的不难,是我懵逼+掌握的不牢导致的崩盘,而面试官只是通过一个小漏洞去挖开来了缺陷而已。

  • 先自我介绍,然后开始问项目

  • 项目有哪些难点?值得自豪的点?

  • 问限流器实现

    答:三种限流器,到用Redis+Lua实现仿Guava的RateLimiter

  • 测试过限流器性能没?

    答:没···

  • 看过JDK源码吗

    答:看过容器相关的(设计模式还在学不敢说)

  • 然后开始问容器,介绍HashMap

    答:(巴拉巴拉····)这里有个细节就是,我把阈值记错了,是8,记成16···,被问是否看过源码…

  • 介绍LRU

    答:说了遍运行机制,但是:

    • LRU本身的算法名字,
    • HashMap双向链表实现说成用LinkedList 的简单实现,
    • 还有说不出LRU的应用(Redis中的实现、操作系统最少使用页面置换算法),

    唉,学的太浅了···

  • 用过ORM框架吗

    很失败的地方···我前面错的太多,ORM都忘了是啥了····事后才反应过来MybatisHerbenate,糗大了···

  • 线程池玩过吗?(了解点,其实是上午二面完看的)说说参数

    答:尴尬的说了两个,其他忘光了······太尴尬了

  • liuix命令熟悉吗?从文件中统计字符串出现次数

    答:会点awk 答:只会打印和字符替换····其实我和不会一样···没学深,使用次数也不多,迟早还的,唉

  • 能实习多久?

    答:看疫情,秋招之前。

  • Over,面试官说我不太好,综合看看,等消息

最遗憾的点总结

  • ORM概念都忘了
  • LRU,看过忘了
  • HashMap源码参数记错
  • JVM相关的,花了4天去学JVM···结果掌握不牢固,一下就不行了
  • 线程池,明明一面提过,看过点,但没深,三面又死这了