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 整合 SSE的高级实践(Server-Sent Events)

《SpringBoot整合SSE的高级实践(Server-SentEvents)》SSE(Server-SentEvents)是一种基于HTTP协议的单向通信机制,允许服务器向浏览器持续发送实... 目录1、简述2、Spring Boot 中的SSE实现2.1 添加依赖2.2 实现后端接口2.3 配置超时时

Spring Boot读取配置文件的五种方式小结

《SpringBoot读取配置文件的五种方式小结》SpringBoot提供了灵活多样的方式来读取配置文件,这篇文章为大家介绍了5种常见的读取方式,文中的示例代码简洁易懂,大家可以根据自己的需要进... 目录1. 配置文件位置与加载顺序2. 读取配置文件的方式汇总方式一:使用 @Value 注解读取配置方式二

一文详解Java异常处理你都了解哪些知识

《一文详解Java异常处理你都了解哪些知识》:本文主要介绍Java异常处理的相关资料,包括异常的分类、捕获和处理异常的语法、常见的异常类型以及自定义异常的实现,文中通过代码介绍的非常详细,需要的朋... 目录前言一、什么是异常二、异常的分类2.1 受检异常2.2 非受检异常三、异常处理的语法3.1 try-

Java中的@SneakyThrows注解用法详解

《Java中的@SneakyThrows注解用法详解》:本文主要介绍Java中的@SneakyThrows注解用法的相关资料,Lombok的@SneakyThrows注解简化了Java方法中的异常... 目录前言一、@SneakyThrows 简介1.1 什么是 Lombok?二、@SneakyThrows

Java中字符串转时间与时间转字符串的操作详解

《Java中字符串转时间与时间转字符串的操作详解》Java的java.time包提供了强大的日期和时间处理功能,通过DateTimeFormatter可以轻松地在日期时间对象和字符串之间进行转换,下面... 目录一、字符串转时间(一)使用预定义格式(二)自定义格式二、时间转字符串(一)使用预定义格式(二)自

Spring 请求之传递 JSON 数据的操作方法

《Spring请求之传递JSON数据的操作方法》JSON就是一种数据格式,有自己的格式和语法,使用文本表示一个对象或数组的信息,因此JSON本质是字符串,主要负责在不同的语言中数据传递和交换,这... 目录jsON 概念JSON 语法JSON 的语法JSON 的两种结构JSON 字符串和 Java 对象互转

JAVA保证HashMap线程安全的几种方式

《JAVA保证HashMap线程安全的几种方式》HashMap是线程不安全的,这意味着如果多个线程并发地访问和修改同一个HashMap实例,可能会导致数据不一致和其他线程安全问题,本文主要介绍了JAV... 目录1. 使用 Collections.synchronizedMap2. 使用 Concurren

Java Response返回值的最佳处理方案

《JavaResponse返回值的最佳处理方案》在开发Web应用程序时,我们经常需要通过HTTP请求从服务器获取响应数据,这些数据可以是JSON、XML、甚至是文件,本篇文章将详细解析Java中处理... 目录摘要概述核心问题:关键技术点:源码解析示例 1:使用HttpURLConnection获取Resp

Java的栈与队列实现代码解析

《Java的栈与队列实现代码解析》栈是常见的线性数据结构,栈的特点是以先进后出的形式,后进先出,先进后出,分为栈底和栈顶,栈应用于内存的分配,表达式求值,存储临时的数据和方法的调用等,本文给大家介绍J... 目录栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组

Java中Switch Case多个条件处理方法举例

《Java中SwitchCase多个条件处理方法举例》Java中switch语句用于根据变量值执行不同代码块,适用于多个条件的处理,:本文主要介绍Java中SwitchCase多个条件处理的相... 目录前言基本语法处理多个条件示例1:合并相同代码的多个case示例2:通过字符串合并多个case进阶用法使用