面大厂好累喔,答的我口干舌燥(记录快手一面)
今天上午面快手,又是被八股拷打的一天。
先问了八股文,然后问了项目,最后给了道简单算法。
印象比较深刻没答好的点是:线程池的拒绝策略;JVM如何调优;GC时间长如何排查;说说有哪些锁和对应机制;数据库优化。
这周经历3场面试,逐渐和八股文熟络了,实力浅浅进入筑基期,但距离化神境还有很大的距离。
(面试修炼路径:练气境,筑基境,结丹境,元婴境,化神境,炼虚境,合体境,大乘境,真仙境,金仙境,太乙境,大罗境。以后准备写本书,名字就叫:我的面试修炼之路,讲述的是一个少年如何从练气境,一直修炼到真仙境最终成为面霸的励志爽文。。)
我估计想进入化神境起码得再经历12-15场面试。。(持续记录我6月份开始找实习的血泪之路,好奇的uu们可以关注下)
考察的基本都是基础八股,但还是有些没有复习到,比如线程池拒绝策略、JVM调优、GC排查这些,锁机制回答的时候脑袋抽抽了,数据库优化只答了分库分表。
先开个坑,周末好好反思一下今天被拷打的问题,补充这篇面经。明天面字节,很好奇字节面试是啥样的?
一、八股文拷打
(我每次在想为啥面试官老是能问我这么多八股文,我猜可能是我答的太简短了。。)
ConcurrentHashMap和HashMap的区别?使用场景?
线程编程的时候如何保证线程安全?
分布式场景下如何保证线程安全?
CAS会出现什么问题?ABA如何解决?
线程池的使用场景?解决了什么问题?为什么用线程池?
线程池的拒绝策略?
JVM内存模型简单描述一下?模型简单描述一下?
JVM双亲委派机制描述一下。
JVM调优有哪些参数?
如果GC时间比较长,一般怎么排查?
数据库索引一般是用什么数据结构?和其它数据结构有什么区别?
数据库事务是什么?为什么要用事务?
事务的隔离级别有了解吗?
MySQL和Java里面有哪些锁机制?
对于数据库容量有限,如何存储用户的数据?有什么优化方式?
分库分表是怎么做的?
为啥要使用Redis,Redis解决了什么问题?
Redis如何进行持久化?
二、项目
问了核心模块;你负责啥功能;顾客模块啥功能;讲一下技术难点;超领判断为什么使用set结构,不认可这种实现方式;为啥会出现一人多领;并发一人多领的情况;session如何在redis里存储的简单说下;session中一般存储啥信息;用什么做的负载均衡;负载均衡用了啥算法?
三、算法
最大连续子数组的和(数组中相邻元素的和最大值),我直接1分钟暴力ac,然后面试官不认可暴力方法,让我想有什么优化方法,我说动态规划、滑动窗口巴拉巴拉。