从面试到现在已有一个多月了,面试的问题还记得八九成。端午节前刚从上家离职趁着假期有空把面试问题总结一下。主要是记录一下问题,答案三言两语写不完,网上有蛮多文章讲的挺好所以本文不再展开。
java
, golang
, js
, python
主要是前面两个。
之所以把面试总结放前面是因为头一次写文章没经验下面排版太朴素了,怕大家看不下去所以先简单几句话概况。面试总共4小时,4轮。回忆了一下大概回答了90~95%左右,总体感觉还可以。给我的印象这几个面试官都很专业,问题质量也挺高,人也很nice。
这次面试像是照镜子知道了自身的不足,接下来还需扎实沉淀技术。加强算法能力。理解源码。 努力不负每次机会 。
2年前从sz回到wh 然后才感受到sz的好。属于后知后觉类型。看着以前用友的同事们一个个跳的都挺棒(阿里、腾讯、百度、京东、美团、网易等等)自己再看下自己感觉在 荒野求生
。
没啥爱好这几年除了玩玩游戏就是看看技术,也没考虑过人生追求,但是最近半年思考了一下人生突然知道了自己想要什么(都二十八九岁马上奔三了这也太后知后觉了)
19年wh 投了50+ 面了4个 拿到2个。。大部分是不回复。
17年wh 投了10多个 面了7个 拿到4个。(后来某种原因拒绝了讯飞的offer、选择了某公司)
12~16年sz 数据不记得了。虽然自己是个弱鸡但是感觉工作挺好找。(16年用友)
所以19年wh真是神奇,我一度怀疑是简历太水了,发给sz、hz朋友看他们说还好啊没问题。难道是特朗普贸易战搞的招聘困难?【微笑】
讲个真实的笑话,前一阵子在wh面一家小公司架构师职位 场景:4个人同时面我,一个大桌子,总经理办公室
总经理:我要不要做销售啊你以前做过销售吗?
我:尴尬的说做销售太难了我没这个能力。(【黑人问号】难道我看起来这么没有技术含量?我投了几十个简历了兴奋的来这里你跟我说这?这对的起我认真的态度吗?)
总经理:哦!你公司做硬件产品的啊!(我简历里有写NLP机器人项目)
我:“这是个软件产品”(what the f**k,大哥哥你对我有严重的误解。)
总经理:那就让技术总监来面一下吧(估计是让他没面子了)
他: 介绍一下你做的项目
我: 介绍某个项目的背景,说了下项目是干啥用的,简单提了一下技术栈 大概5~6分钟 因为要互动所以不能一个人说太久
他:GRPC是干什么用的,你们为什么不用http restful来做呢
我:远程调用 基于http2 有4中调用方式 序列化协议采用protobuf(心里想这么多内容了你一个个的问吧)
他:好的,我技术面完了
总经理补了几句总结性的客套话 面试结束
【WTF 这就结束了?】这才15分钟不到?我就这样被淘汰了?嗯是的【微笑】
ok 综上所述 抱着 终于得到了一次技术面 的心情写下这个题目。
主要是Java基础 框架原理
线程池
构造方法有哪些各有什么用、 ctl
、 allowCoreThreadTimeOut
变量的作用,初始化阶段、大量提交任务阶段、执行完所有任务阶段这写过程。( addWorker
过程和其它部分回答得不错 runWorker
getTask
的一些细节回答的不好。线程池是Java躲不开的问题 网上有很多答案不再细说。) HashMap
数据结构, resize
过程,如果多线程去操作会出现哪些问题,1.7和1.8有什么变化,既然提到了 红黑树
那么来聊聊它和 BST
、 AVL
各自有啥特点有啥区别,说一下平衡过程(ok。这个是基础内容网上一大把答案不再细说) concurrenthashmap
怎样保证线程安全的1.7和1.8区别(ok) sleep
wait
区别(ok) synchronized
Lock
区别,synchronized工作原理对象头、JVM中锁的优化,再聊聊并发包的AQS、公平锁非公平锁 读写锁、CAS和底层的unsafe(ok) JVM内存结构
,堆的内存结构哪些是线程共享的呢,使用过javap命令吗结合这个命令你个谈谈对JVM内存各个区的理解。调优相关。(ok) GC
, 可达性分析算法
、哪些对象可以作为 GC ROOT
,根据新生代老年代特点的不同来说一下他们适合使用哪些垃圾回收算法。对比一下 标记清除
和 标记整理
。(ok) 类加载器
, 双亲委派
, 安全沙箱机制
(ok) BIO
、 NIO
, IO模型
,jvm怎样实现NIO的呢(ok。还好之前略看了一下JVM这一块的c c++代码。多路复用 非阻塞之类的就不细说了。说几个关键点,IO模型参照《unix网络编程》。 select
、 poll
、 epoll
。 fcntl
) TCP滑动窗口
ACK机制。(ok)