10.12去哪儿面试

一面

  • 自我介绍一下
  • 你Java是怎么学的?学校有讲吗?
  • 进程的通信方式有哪些?
  • 给你几个看看进程通信方式和几种场景,你看看它们是不是对应?
  1. 消息队列:redis的pub和sub
  2. 信号:linux的kill命令
  3. 管道:ps xx | grep xx
  4. 共享内存:MySQL的buffer pool

(这几个都是一一对应的,面试官跟我解释说这是一种抽象,不是具体编码实现,是那个思想)

  • 网络五层协议是哪五层?上面三层常见的协议可以说一下吗?
  • 网络层除了IP,还有哪些协议?
  • linux中,哪些命令与应用层的协议相关?哪些命令与传输层的协议相关?哪些命令与网络层的协议相关?你可以举几个例子吗?

(面试官在聊天框又写了netstat,ss,lsof这些命令,然后跟我讲解这些命令,包括还提到了ip等命令)

  • Map map=new HashMap(100),往里面put多少个元素会扩容?

(这里跟他说这不好说,因为hash冲突也会引起扩容,他跟我说不考虑冲突;后来面完想了想,因为容量已经大于64了,hash冲突就不会引起扩容了)

  • 为什么是128*0.75?
  • 为什么它要把长度调整到2的n次幂?
  • ReentrantLock的lock做了什么事情?概括一下?先考虑只有一个线程的情况
  • 只做了cas吗?
  • 你可能漏了些什么;那我这个线程再次执行这个lock方法会怎么样?
  • 那如果换一个线程过来执行这个lock呢?
  • 那为啥原来的那个线程可以重入,新线程不能重入?
  • aqs有个当前线程的变量吗?怎么标记当前线程是否自己呀?
  • 你说得没毛病,所以你刚才lock的时候是不是漏了什么事情?

(引导我很久,就是想提示我漏了说把当前线程设置到aqs的exclusiveOwnerThread,因为一直有点想当然了,就一直忘记说了;提醒我要要理解aqs的本质,说我已经把aqs这些东西都说出来了,怎么忘了这一步)

  • 那你有没有想过aqs为啥要设计成抽象类?
  • aqs的核心三个组件是state、exclusiveOwnerThread和队列,你知道有哪些并发工具是只用第1个和第3个就可以实现的吗?

(然后他借这题跟我解释了为啥要设计成抽象类的原因)

  • Java里面把线程挂起的方式有哪些?
  • sleep和join不算吗?(名牌提示)
  • 这里面有个wait方法比较特殊,你知道wait方法是要在什么条件下才能用吗?
  • 为什么要在同步代码块里面才能用呢?有思考过什么原因吗?

(他说我说的没毛病,但是有点不完整,稍微完善一点的是这个意思,sync是个关键字,在编译的时候会编译成monitorenter和moniterexit指令,会生成一个辅助对象,也就是ObjectMonitor,来辅助sync的执行,这个对象里面有个核心的类似aqs的结构体,也就是我说的waiter队列和state和owner,wait必须依靠这个waiter队列进行挂起,所以说它必须依赖ObjectMonitor这个对象,如果没有这个对象,那就会报错)(无敌

  • NIO核心的三大组件是什么?

(我在说selector的时候说了个epoll,他跟我说不一定是epoll,还可能是kqueue,甚至是select和poll,要看具体的操作系统以及操作系统的版本)

  • 你在网络传输的时候,传输的字节,会出现黏包半包问题,你知道黏包半包问题有什么解决思路吗?
  • 你在哪些中间件或者哪些地方见过黏包半包的这些解决思路吗?
  • 除了netty还有吗?

(然后他说我刚才说的基于长度字段方式,让他想起了kafka的协议,然后讲了kafka里面的黏包半包问题)

  • 问下实习吧,你在实习的公司做过什么项目?
  • 你觉得你的系统的用户量是百级千级还是万级呢?
  • 你们项目部署的话,是部署多少台机器呢?
  • 你可以说一下你做的一些的核心功能吗?
  • 你觉得你这个预约系统的接口里面,最核心的接口是哪个接口?
  • 那你就说一下吧,你这个接口从前端发起请求,直到返回给前端,一共经过了哪些组件、中间件和系统?分别做了什么事?
  • 你说你还有下游,你说说你跟下游通信的方式?Feign还是HttpClient?
  • 我看你之前做过rpc,你应该很清楚模块与模块之间调用的方式吧?我给你举个场景,我本地服务A,有个C接口,要调用M方法,这个M方法是在服务B上的,但是我现在服务A上面只有C这个接口,而且是没有任何实现类的,那它是怎么实现调用服务B的呢?
  • 你是不是还漏了什么?服务A是直接跟服务B发起请求的吗?前面没有其他步骤了吗?

(然后他开始讲起来他对rpc实现的思路,从注册中心,协议,序列化,连接方式,代理模式等等;跟我说这个框架不难写,但如果要实现的像dubbo和grpc那样,还是要有点水平)

然后就结束了,他说我是本科,看得出来我很热爱技术,对技术有自己的理解,在本科很少见,但是技术涉及的不是很多,也比较简单和基本;最后说要给我个建议,讲了十分钟。最后没有反问

可以看出来面试官是个真大佬,对很多东西都很熟悉,面试的时候边打哈欠边面,一边吃面包一边喝水,很自然但是很凌厉,一点不拘谨,随手在留言板上面写两句代码都能问很多东西,能从一个问题扩展到其他问题,也给了很多提示,补齐我说漏的东西;特别是最后赶时间还是跟我讲了好久的建议,是真的很感谢

二面

  • 自我介绍一下
  • 没有考虑过考研吗?考研和工作两方面是怎么考虑的?你的专业课有哪些?(作为双非本被问这些已经不惊讶了)
  • 操作系统的进程和线程有什么样的联系和区别?
  • Java里面也有进程和线程,Java里面的进程和线程跟操作系统的进程和线程有什么区别?
  • 我在一个jvm进程里面,最多能开多少个线程,原因是什么?
  • 一个线程的创建需要消耗哪些资源呢?
  • http熟悉吗?1.0,1.1,2.0有什么区别?
  • 3.0也出来啦,3.0解决了什么问题呢?
  • 一个表有学生号,学生名,学科,学期,成绩;查出每个学期的每个学科的最高分学生名(没写出来。。。)
  • 没关系,那我们再写道别的题吧;有重复元素的有序数组中找出大于等于目标值的第一个元素的下标
  • 聊聊你毕业后的计划吧

二面也是没有反问

二面面试官非常和蔼可亲,很温柔,讲话也有点俏皮,sql写不出来都给我过了

但是也狠狠地批评我,说我有个问题至少犯了四次,还没看清题目,没听完要求就开始写了,他要我直接在代码里面初始化数组就好了,我还用了scanner,甚至那个算法题的题目都是有二义性的,我也没发现,也没问清楚,关键还是在于审题,而不是二分法;听得我很慌,以为要挂了

然后告诉我以后工作也是,写代码也是,都要先听需求,先思考,写代码的时候永远是最短的

最后说没关系,说我面试能学到东西就好,其他的问题跟hr聊吧

HR面

常规HR面,介绍实习,实习收获,为什么不转正,毕业志向,个人优缺点

反问

11月左右反馈面试结果

没有提前实习的要求

开泡

update:秋招池子没泡出来,春招笔试了也没约面试,无缘骆驼厂

#面经##我的实习求职记录##秋招##24届软开秋招面试经验大赏##去哪儿#
全部评论
真的牛 一半问题没看过 一半看过详细深入的根本没记住这么多
27 回复 分享
发布于 2023-10-13 09:38 江苏
和你一样的面试官,问的问题一模一样,但是一面就没了,还是佬强
4 回复 分享
发布于 2023-10-13 10:35 云南
佬,太牛了
3 回复 分享
发布于 2023-10-13 10:29 北京
这个看着也太难了
2 回复 分享
发布于 2023-10-13 22:29 上海
举办了
1 回复 分享
发布于 2023-10-13 08:35 广东
佬,感谢分享,真牛呀
1 回复 分享
发布于 2023-10-13 08:43 安徽
太吊了
1 回复 分享
发布于 2023-10-13 10:53 江西
一面面试问题怎么和我几乎一模一样,同个面试官吧
1 回复 分享
发布于 2023-10-13 16:31 陕西
一面难度好高
1 回复 分享
发布于 2023-10-15 11:19 江苏
请问三面结束是什么状态呀?
1 回复 分享
发布于 2023-10-17 17:26 北京
教我
点赞 回复 分享
发布于 2023-10-13 09:15 北京
佬,面完之后牛客的招聘助手是啥状态啊
点赞 回复 分享
发布于 2023-10-13 15:56 广东
好难哇
点赞 回复 分享
发布于 2023-10-13 18:06 湖南
m
点赞 回复 分享
发布于 2023-10-13 18:48 江苏
这公司还真不卡学历,哥们是科班吗
点赞 回复 分享
发布于 2023-10-13 18:51 安徽
会卡学历,我被卡了
点赞 回复 分享
发布于 2023-10-13 19:56 湖北
二面多久后通知三面的
点赞 回复 分享
发布于 2023-10-13 20:05 北京
二面应该跟我一样,完全一样hhh
点赞 回复 分享
发布于 2023-10-13 21:30 陕西
一面完全一样的面试官
点赞 回复 分享
发布于 2023-10-13 23:16 湖南
这么强
点赞 回复 分享
发布于 2023-10-14 11:26 江西

相关推荐

点赞 评论 收藏
分享
评论
71
263
分享
牛客网
牛客企业服务