Java开发五面阿里菜鸟驿站架构师,第三面来了一个P10级师兄吊打我,紧张到双腿都打哆嗦!

本文主要是介绍Java开发五面阿里菜鸟驿站架构师,第三面来了一个P10级师兄吊打我,紧张到双腿都打哆嗦!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一面

问:自我介绍

问:说一下你的项目中遇到的难题和怎么解决的

我:(其实我的项目也没什么特别高级的东西,就说了下项目里遇到的bug的解决以及一些功能的实现,其实都是很简单的东西。个人觉得不一定要用多么高级的技术,就算是解决一个小bug或实现一个小功能,把遇到bug时的现象以及怎么去思考并一步步排除仔细说清除,以及自己为什么这么设计,对这么设计的一些理解,面试官应该还是认可的……)

(讲项目的时候,语速比较快,有点舌头打结,后来听内推人说面试官给我评语是紧张,其实我也没怎么紧张……)

问:XX 这个项目主要业务是什么?有实际应用吗?

我:(大概讲了项目的业务,项目没有实际用过,只是去参加学校的创新项目比赛,所以就说实话了)

问:是去参加创新比赛,那你觉得这个项目的主要创意在哪?

我:其实我觉得没什么创意……

面试官:(笑)

我:(笑)

问:你在项目里负责什么?整个项目的设计是你做的吗?那对项目整个架构设计什么的能讲一下吗?我:这是我第一次作为项目技术负责人。对。(其实也就是一个 WEB 的 APP 项目,ssm 的 Controller 、Service 、DAO 分层,然后说了下自己负责模块的一些设计什么的……)问:你刚刚说你这个项目都是 http 请求应答模式,那你有没有考虑其他模式?

我:(这里说了下 socket 长连接模式,然后说了下自己对请求应答模式以及长连接的优劣和适用场景的理解,扯到了 http 报文头部、nagle 算法、心跳机制什么的,然后又开始个人对心跳机制的理解……)

问:(大概是觉得我再扯就扯到印度去了,打断了我……)嗯嗯好,但是现在你去实现长连接的话,会这样从头开始写吗?

我:(提到 Netty ,之后面试官也没有问 Netty)

问:http 有什么特点?

我:明文传输……(然后还没来得及说无状态什么的)

问:那你的项目有没有考虑 http 安全问题?

我:(提到 https ,然后说了下原理,怎么保证消息不泄露、不被篡改)不被篡改的实现就是,先把要发送的消息进行消息散列,比如 MD5 ……

问:MD5 ?

我:不是,我只是举个消息散列的例子,……

问:MD5 已经不建议使用了好吗

我:(吞吞吐吐)emmm对我知道 MD5 可以通过碰撞破解,不安全……但是其实一般的项目(正准备说是否安全取决于破解难度与破解收益的理解,加盐什么的……)

问:不建议使用啦,不建议啦(宛如撒娇般的语气,这谁顶得住……)

我:emmmmm好吧(好的,你说什么都对)

(然后好像还问了一些项目相关的其他问题……)

问:说说 JVM 垃圾回收是怎么实现的?可达性分析是怎样的?什么是GCRoot?

我:可达性分析。从 GCRoot 开始遍历,如果某个对象不可达,则认定为垃圾,可以回收。方法区的引用、函数局部遍历、类成员变量什么的……

问:有关 JVM 的 STW

我:主要是说了一下对 STW 的了解,然后提到了并发垃圾回收器

问:说一下了解垃圾回收器,了解最近的垃圾回收器吗?

我:(当时我好像是说,知道最新出来了一个 ZGC ,可以在几 ms 内回收上 T 级别的垃圾,停顿很短什么的,然后说了下 CMS 、G1 ,说了下 G1 回收器替换 CMS 的目标,以及 Region 什么的。但是也没深入地了解过 G1 ,不然还可以说更多,不过面试官也没继续问……)

问:读过什么的源码吗?读过哪些?那你说下 Spring 的 Bean 是怎么管理的吧

我:读过。Spring 、Spring MVC 什么的(好了,接下来要问 Spring AOP 怎么实现的了吧)。(这不科学啊,不是应该问 AOP 怎么实现吗……大概说了下 xml 读取和解析,然后 BeanFactory ,Resource 、 Registry 什么的,Map 保存 beanName、class类型与 Bean 的映射关系什么的)

问:HashMap、HashTable、CurrentHashMap 套餐吃不吃

我:(谢谢招待)

问:TCP 三次握手、状态转移,为什么要三次握手?

我:(具体描述了一下三次握手的过程和状态转移)需要三次握手,不能两次是因为, A 向 B 主动连接时,若第二次握手的消息丢了,B 以为连接已经建立,A 则以为 B 没有收到自己的连接请求,A 会重发连接请求,B 发现序号不对,只能丢弃,B 发送消息给 A ,A 认为连接还没建立,只能丢弃……,不需要四次时因为 B 对 A 的 ack 以及自己的序号可以一起回复给 A(好像叫捎带回复什么的),而(然后也说了下四次挥手过程和状态转移)

问:那为什么要四次分手呢?(笑)

我:(糟了,是心动的感觉……这谁顶得住……我也不想说“分手”啊,是你要我说“分手”我才说"分手“的啊,我也不想跟你分手的嘛……不好意思,我加戏有点多……)关闭连接的时候,A 主动关闭的话,是因为 A 不再需要发送数据,但这个时候 B 可能还有要发送,只能先回复 ack ,等自己发送完数据,再发送关闭连接的请求,也就是第三次挥手……(然后好像顺便说了 close_wait 和 time_wait )

问:你这里说得有点不太清楚,之后最好自己再看看

我:(单身太久,谅解一下)

问:设计模式了解嘛。问问你设计模式吧

我:(具体谈了一下对 模板方法 的理解以及它在 Spring 什么的框架里面的使用,择其好处而吹之)(又谈了下监听者模式以及它在 swing 和 C#、托管C++ 窗体里面的使用,复择其好处而吹之)

之后一些问题时间太久,记不太清了……

二面

这一隔就是 20 天,这谁遭得住……

清明后两天的样子,一个晚上接到电话

问:项目

问:简单算法题,判断数组里是否有和为指定值的两个数

我:(好像是剑指 offer 还是什么的原题?)

问:在学校实验室当部长的事

我:(稍微讲了下经历)

问:学习方式

问:你班上有比你技术厉害的吗?

我:(????)

问:优点和缺点?技术上的优点?问:你说对 WEB 比较熟悉对吧,详细说下跨站脚本攻击XSS

我:(说了下 cookie 、session 、js 注入什么的)

问:你说对 JVM 比较熟悉,说下垃圾回收算法吧

我:(说了下标记清除、复制、标记整理算法,然后详细说了下内存碎片、分代收集什么的的思想)

问:对菜鸟的了解

我:emmmm我知道是跟物流相关的,就是,就是供应链……就是……其实我不是很了解(当场去世……)

问:有什么问题问我

只记得这么多了……问他问题的时候才知道他是 leader ,emmm我这不是二面吗……

三面

面完二面后,内推学长告诉我,接下来有个 P10 要面我……这谁顶得住……

大概两天后接到电话,面试官好像有点忙,面试时间比较短,问得也比较简单……

问:学校上的课

问:项目

问:自学学到了什么?

问:SpringBoot

我:(说了下约定优于配置,@Condition 注解什么的)

也只记得这么多了,不过本来也只有 10 多分钟……估计大佬是真的比较忙……

四面(hr 面)

16号接到电话,要我 18 号去武汉现场面试……这谁顶得住……

自我介绍

实验室经历(这里聊了挺久)

家里情况、意向城市

对菜鸟的了解(咋又是这个问题……物流、就是物流,emmm物流……当场去世……)

有什么问题

五面

面完hr面打算去看看武昌起义纪念馆……

一小时后刚下地铁,接到电话说要我回去再加一轮技术面……

有一种刚高考完后被告知要再加一次高考的感觉……这谁顶得住……

自我介绍

项目

类加载

Class.forName 是否会初始化类(这里我智障了,振振有词地说说不会初始化……感觉要凉。。)

static 块会执行几次?怎么让它执行第二次?(我说用另一个 ClassLoader 来加载……好像不是他要的答案,难道有其他方法吗。。?)

Full GC 发生的条件、怎么设置永久代和堆的大小、怎么减少 Full GC 、JVM 调优

比较熟悉的技术,是否有去了解底层

经过一个星期的漫长等待最终还是拿下了Offer,成功入职阿里菜鸟驿站架构师!我认为现在面试除了需要你自己掌握丰富的技术栈之外,也需要时时刻刻去勤刷面试题,分享一下自刷的面试题库和补充技术栈的PDF吧,祝大家Offer多多哈!

需要全部免费领取全部的学习资料的朋友麻烦帮忙点赞+评论+收藏这篇文章+关注我,然后加小助理VX:YDT929免费领取!

 

 

这篇关于Java开发五面阿里菜鸟驿站架构师,第三面来了一个P10级师兄吊打我,紧张到双腿都打哆嗦!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/243038

相关文章

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

SpringCloud动态配置注解@RefreshScope与@Component的深度解析

《SpringCloud动态配置注解@RefreshScope与@Component的深度解析》在现代微服务架构中,动态配置管理是一个关键需求,本文将为大家介绍SpringCloud中相关的注解@Re... 目录引言1. @RefreshScope 的作用与原理1.1 什么是 @RefreshScope1.

Java并发编程必备之Synchronized关键字深入解析

《Java并发编程必备之Synchronized关键字深入解析》本文我们深入探索了Java中的Synchronized关键字,包括其互斥性和可重入性的特性,文章详细介绍了Synchronized的三种... 目录一、前言二、Synchronized关键字2.1 Synchronized的特性1. 互斥2.

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Java中StopWatch的使用示例详解

《Java中StopWatch的使用示例详解》stopWatch是org.springframework.util包下的一个工具类,使用它可直观的输出代码执行耗时,以及执行时间百分比,这篇文章主要介绍... 目录stopWatch 是org.springframework.util 包下的一个工具类,使用它

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

Java实现时间与字符串互相转换详解

《Java实现时间与字符串互相转换详解》这篇文章主要为大家详细介绍了Java中实现时间与字符串互相转换的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、日期格式化为字符串(一)使用预定义格式(二)自定义格式二、字符串解析为日期(一)解析ISO格式字符串(二)解析自定义

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

Springboot处理跨域的实现方式(附Demo)

《Springboot处理跨域的实现方式(附Demo)》:本文主要介绍Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录Springboot处理跨域的方式1. 基本知识2. @CrossOrigin3. 全局跨域设置4.