头像

Jaunlee


访客:263

离线:2天前



Jaunlee
6天前

搜狗截图20200916222146.png

一面:8月27日 80min
1、上来手撕算法 字符串的减法
2、垃圾回收器 重点g1
3、violatile关键字(具体聊了下读写屏障) 自己展开说了很久 包括happends before都扯出来了 又往JMM那聊 顺便引申到操作系统说了很久MESI缓存一致性协议(7大公式)
4、synchronized锁升级的过程 (我聊了具体轻量级锁是怎么利用cas进行lock record的替换的,后面他还问了我mark word字段有哪些) 自己展开说了很久
5、读写锁 这个我记不太清了 忘了是字节还是快手问的. 反正我就提了一嘴reentrantw..lock 说了下利用cas进行state进行加锁解锁 高16位读低16位写 具体聊的是读者写者问题 主要是写锁的饥饿问题 操作系统里面通过信号量来解决 我又聊我通过两个变量实现读写锁 这个过程中也遇到了饥饿问题 怎么去解决 和信号量的思想是一样的

二面:9月3日 80min
二面没有撕题目 但是全程聊了80分钟
1、实习项目 架构 实现 困难 解决
2、因为我实习项目用了go 问我java和go的区别 我从技术上(主要没有重载这方面说了我遇到的问题和解决思路) 思想上 说了句 设计模式的一个 组合优于继承 go里面只有组合 就不用考虑这个了 然后就是长达40分钟的设计模式
3、为什么组合优于继承 什么时候组合 什么时候继承 建议看effective java的这个回答 很清楚 我基本就是照搬的 哪些设计模式主要用到了继承 我说了模版模式 和spring结合讲的
4、说说设计模式七大原则 和 自己的理解
5、聊聊知道的设计模式 我每聊一个都会带入场景
比如适配器模式会结合springmvc的handlerAdapter来说
代理模式我聊了我怎么设置系统值去拿到代理类的字节码文件 看里面对象是怎么通过反射生成的 代理类代理的方法还会自动加上tostring hashcode equals(这个我每次被问基础题equals和hashcode时都会引申讲)
原型模式 讲的了clone是浅拷贝 用序列化和反序列化实现深拷贝 还说了我原本以为spring的prototype用了原型模式 但是深入到ioc源码不是这样的 就是每次都会调用AbstractAutowireCapcbleBeanFactory的creatBean()来实现的!
观察者模式 zookeeper和springlistener都讲了下
还有工厂模式 单例模式简单说了下
6、实习遇到的问题和怎么去解决的 我就聊了很多 解决的和未解决的 面试官也给了很多他的建议

三面、9月7日 40min
实习项目 困难 解决 基本和二面后面的类似 面试官也提出了解决办法的思路
一道题 rand5->rand13 和leetcode有区别 rand5已实现 leetcode是[1,5] 本题这里是[0,5] 所以插空就变成了
do{
num=rand5()*6+rand5();
}while(num>27);
return nun % 14;

然后就是如果rand执行时间是1ms 怎么判断这个算法时间
我的思路就是
总共0-35共36个数 0-27共28个即7/9个是2ms
后面的2/9个数就是不断循环 类似等比数列那种公式 应该能归纳个公式出来
面试官也没说对不对 就说行 接着反问

HR面、9月9日
常规问题 加了微信 说本周内一定发意向书

9月10日 收到意向书




Jaunlee
6天前

搜狗截图20200916221942.png

作者:eelnuaJ
链接:https://www.nowcoder.com/discuss/506275?toCommentId=7306171
来源:牛客网

字节是hr直接找的,和快手一样,也是推到了月底转正完才开始面…不过流程是真的快,一面到拿意向书一共10天

一面8月31日 60min
1、实习项目30min
2、读写锁 反正我就提了一嘴 reentrantw..lock 说了下利用 cas 进行 state 进行加锁解锁 高 16 位读低 16 位写 具体聊的是读者写者问题 主要是写锁的饥饿问题 操作系统里面通过信号量来解决 我又聊我通过两个变量实现读写锁 这个过程中也遇到了饥饿问题 怎么去解决 和信号量的思想是一样的
3、hashcode和equals 我回答的是effective java书里面这块的内容 内容很丰富 还加上了动态代理时这两个方***被自动添加到代理类里面 引申了下动态代理
4、然后就是动态代理
5、两道sql lc176(用两种方法) lc181
6、简单的一道链表删除倒数k节点
当天晚上约2面

二面9月2日 60min
1、实习项目20min
2、浏览器url之后的操作 dns解析流程 tcp三次握手(把tcp报头字段 可靠性 为什么三次等等关于tcp常用问题全说了遍) http协议啊(因为我实习用了api网关kong 所以对http https的各个字段简直熟透了 所以结合项目讲了快十五分钟 包括cache-control强制性缓存和协商缓存等等) 四次挥手等等 这个题唠了将近半小时😂 全靠自己引申
3、其他一些基础 几分钟 记不太清了
4、单例手写 3min
5、lc115 不同的子序列 递归->动态规划->空间压缩 三个方法全来了一遍,其实我感觉面试上就算遇到动态规划原题了,你从递归开始写,去试,然后改成动态规划,再压缩空间之类的,比直接写出来,好像面试官会觉得好很多,可能面试官觉得是你当场现推出来的,不是背答案😂,当然这是我的个人理解,大家该咋样还是咋样..
反问的时候二面面试官直接本轮给你说过了😂
当晚约三面 本来约4号 结果面试官满了 于是约到了9月8号

三面9月8号 50min
实习项目
算法 最长无重复子串 要用空间复杂度o(1)的解
设计sql和表 具体忘了😂
jvm结构 基本上把张龙jvm课程学的全说了个遍 讲了二十几分钟吧 如果不是赶着面试 强烈建议这个课程 真的很好 对于很多细节不是背一背能比的 有的时候这些细节才有区分度 比如动态链接invokevirture的整个流程是怎么样的 还会带着分析整个字节码从头到尾 虽然有些啰嗦 😂 还有就是张龙的我只学过和推荐jvm 别的课程据说很多坑还是啥的 大家记得别被骗了😂 别脑子一热买课啥的..
当天晚上约第二天hr面

hr面9月9号下午2点 20min
实习经历 意向城市 困难 介绍部门 加了微信

下午3点 校招hr小姐姐告诉我审批过了 1小时太快了😂..

第二天上午10点半 发了意向书

整个流程是真的快…