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

相关文章

springboot集成easypoi导出word换行处理过程

《springboot集成easypoi导出word换行处理过程》SpringBoot集成Easypoi导出Word时,换行符n失效显示为空格,解决方法包括生成段落或替换模板中n为回车,同时需确... 目录项目场景问题描述解决方案第一种:生成段落的方式第二种:替换模板的情况,换行符替换成回车总结项目场景s

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

SpringBoot中@Value注入静态变量方式

《SpringBoot中@Value注入静态变量方式》SpringBoot中静态变量无法直接用@Value注入,需通过setter方法,@Value(${})从属性文件获取值,@Value(#{})用... 目录项目场景解决方案注解说明1、@Value("${}")使用示例2、@Value("#{}"php

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。

java.sql.SQLTransientConnectionException连接超时异常原因及解决方案

《java.sql.SQLTransientConnectionException连接超时异常原因及解决方案》:本文主要介绍java.sql.SQLTransientConnectionExcep... 目录一、引言二、异常信息分析三、可能的原因3.1 连接池配置不合理3.2 数据库负载过高3.3 连接泄漏