您的位置:首页 > 绯闻

23岁的我,从阿里JAVA面试后的总结与反思,希望这些领悟还不晚

时间:2019-07-16
澳门金沙银河官网

933f401ba019477d8702fab847e8f0d8

本周,我接受了阿里巴巴的采访。这份工作的职位是支付宝物联网部门的JAVA软件工程师。一天后通过电话通知了面试时间,地点是高端的上海大厦。

收到面试通知后,我很高兴,有点胆怯。我很高兴,这个国家最好的制造商之一会给我一个面试机会来证明我的一些地方最初是由面试官确认的;胆怯的是:我听说像阿里巴巴这样的大工厂非常苛刻。非休闲人士很难进入,他们对自己的技术知识并不自信。

在采访当天的下午,我根据我到达的采访时间到达了地铁上的陆家嘴地铁站。因为我第一次参加如此大的工厂面试,所以我一直非常兴奋。我下了地铁后,一直走到上海中央大楼。 (幸运的是,在我感到无聊之前,我常常去陆家嘴几次。在陆家嘴地区,我坐在天空中的旋转建筑物上。否则我不得不使用行人导航。)走完文件后,我顺利到达了N楼。当我走出电梯时,我看到了“支付宝”的三大角色,我终于看到了我每天在手机中使用的支付宝APP。感觉不像这样。不得不说啊(原谅我没看到市场)!

ef2d76e11cd1490d80c7fc8fcde14018

N分钟在这里。直接去面试。

面试官是一个弟弟,大约30岁。

在采访中,与采访者谈了大约50分钟,尽管在此期间我非常紧张。在此期间,面试官提出的主要问题如下:

[1],先介绍一下自己。我简要地介绍了它,简而言之,我说大学和以前的公司工作的基本内容令人尴尬。

[2],通过HTTPS建立连接的详细过程。这个问题,因为当我乘坐地铁时的评论,我知道它回答了面试官,答案更加详细。

为什么CA组织在HTTPS中使用,其目的是什么?我回答说有CA机构可以确保服务器证书的真实性。 HTTPS可以解决哪些问题?我的答案是防止数据包捕获。 HTTPS建立连接后,为什么每次传输时都使用对称加密,而不是使用RSA公钥私钥加密?我回答说对称加密更有效率

您是否知道加密和解密RSA,DES,AES算法所需的时间,您是否曾进行过DEMO验证?我所说的是RSA应该是最耗时的,对称加密应该快一点,但它没有被DEMO验证。

在HTTPS建立连接之后,我们为什么每次都要生成一个随机数,设计目标是什么?我的答案是它可以防止重放攻击。你之前用什么软件来捕获包?我说过wireshark。所以面试官问我wireshark的布线协议格式是什么。我不太了解这个问题。我放弃了,说不。如果您让自己使用httpClient或urlConnection设计HTTPS请求客户端,您将如何设计它?我之前没有碰过这个场景。我不知道。我使用httpClient来调用https的API接口。我可以直接访问它,所以我没有深入研究它。可能是httpClient附带了CA证书。这个问题不应该回答,或者偏差太大,HTTPS问题就会停止,我继续问HTTPS。

[三],我看到你以前项目中使用的spring框架,对吧?我说是的,所以问题就来了。

所以我立即展示了我自己的Spring框架地图:

72f6528f96064707bc0a80137c06af6d

af48638c4bb443b4a58172c2dfa864c4

等一下,等等.

那说春天项目启动的原则!听到这个问题后,我发现过渡太大了。加深这么多是多么困难。我也忘了在采访中回顾春天的原理。所以我说了弹簧框架加载,启动后,根据项目中的配置参数,将准备好的bean加载到弹簧容器中等等。说一下你在Spring源中熟悉哪些类或包?这是另一个未经审核的问题,所以我说我只记得beanFactory类,其他人已经忘记了它。然后在beanFactory下说几个常见的子类?我说我忘了。然后我没有继续在春天提问。

[四],concurrentHashMap的原理?我真的不知道这个。我很少使用这个。我会说实话。 concurrentHashmap的原理尚不清楚。我在之前的项目中使用过AtomicInteger。我曾经在源代码中看到cas操作。我认为concurrentHashmap是一个线程安全的。它应该使用锁或同步锁实现。

锁和同步底部有什么区别?我说不。

[五],有哪些线程池?我回答了我忘记的细节,只记得还有其他东西需要修复。

[六],说你还记得常用的排序算法吗? (我觉得我没有连续回答问题,而且我感到紧张。)我只是忘记了算法而我没有回顾它。我毕业后一两年没玩过这个。我说,我只记得冒泡,几乎其他一切都被遗忘了。我只记得发生了什么以及发生了什么。

然后写一个泡泡排序?给我一张纸,让我写下来。我想,冒泡的算法很简单,我一定会。所以拿了笔和纸刷几十秒后写,我觉得我不会出错,我会告诉他。面试官看了之后,他说了。 (回来后,我想到了我当时写的泡沫,有一个语法错误,我犯了一个错误,然后我想到了!)看完我写的冒泡后,面试官再次问我。记得?我说记得。那时,他在纸上画了一个链表,问我如何判断链表的循环。我回答了算法。他说我的算法时间复杂度太高,不好,还有其他办法吗?在我想到它之后,我摇了摇头,告诉他我暂时还不知道。

[七],表示你在项目的硬件和服务器负责的通信中的nettry的工作内容。你解决了什么?我说在负责向硬件发送指令时,我负责分析硬件TCP协议栈和协议封装工作。

说蓝牙连接过程?我没有碰过这个,我不知道。

[8],然后问我在大学期间参加的两场比赛是什么进入了全国比赛?我说教育部之一是工业和信息化部。一种是类似于ACM的算法竞争,另一种是软件设计竞赛。那时候,我太紧张了,我没有加太多。

[9],问我通常的开发代码风格如何,通常使用哪些开发工具?我说它是IDEA,风格真的不清楚。

【十】,说一下你在做软件开发中,解决的最大的难题是什么?这个问题,我把从开始到目前做过的软件大脑海里快速闪现了一遍,我去,我还真没想法哪个最有代表性。于是我挑了一个用于在MySQL的查询拆分查询的项目,用的多线程+结果聚合。(现在想起来,我要是当时说曾经做的超级抢课软件会不会更好一点,可惜没有如果)

【十一】,然后问我有没有什么问题需要问他的?

那时差不多40个多分钟过去了。我当时还是很紧张啊,也感觉自己的答题答得不是很好,很多基础性的问题都没有答上来。于是我就直说了

我说我感觉我答得不是很好,对于技术上你能给我一些建议吗?

于时面试官小哥说告诉了我曾经也有人告诉过我的问题:广度和深度选择的问题他说,我目前23岁这个年龄,应该对于基础知识要掌握牢固一点,对于技术知识不要只追求广度,应该追求深度。学习技术时,最好是通过看系统的架构体系图进行源码学习+文档学习+视频学习。

以上就是我在支付宝面试的主要问题汇总,勿喷,欢迎留言指导!

通过这次大厂的面试后,让我知道了“机会只留给有准备的人”这句话说得一点也没错,学过的东西,要温故。对于比较重要的面试,得要认真把学的东西抽出一些时间来复习下,复习时,尤其对于基础性的知道要认真复习,特别是JAVA多线程,spring源码,HTTP,TCP,IO,数据库事务,索引原理相关的要有深入的了解

还记得他说:

XX时间飞逝。大学毕业已近一年了,但我觉得毕业后一年的技术水平没有太大提高。一些技术学习有点浮躁。我在上海待了一年多。我的知识并没有增加太多。我的胃已经长大了。我看到一些腹部肌肉现在变成了一个大肚子。在这一年,惯性上升,激情和活力也急剧下降。我曾经在大学的寒假期间在卧室里弹奏键盘。我非常高兴,因为我对评估工件应用程序进行了探索。我站在三英尺高的平台上,老师和同学们进行项目防守和比赛,一旦光环的负责人在校园里。一个小男孩,你去过哪里?

古人云:生于悲伤中,平安地死去。

播放现有帖子。有必要利用欺凌技术解决人口问题,即加班加点完成项目的时间紧迫,行业不会放弃。跳槽。询问您想要多少钱,这些公司给予它,并且他们拥有其他人要求的技能和管理技能。如果你学习不好,只需投资你的简历。

程序员有两种常见的开发路径:管理路径,技术路径,下面,享受:

d35786997a0b4cf79b048c78f28ef34c

1.阅读源代码

读取和分析源代码是程序员最基本的代码功能。它也是代码农民的根源。学习经典源代码中使用的经典设计思想和常用设计模式可以帮助您了解大牛如何编写代码,从而吸收牛的代码能力。在阿里的采访中,经常会问到MyBatis,Spring和其他框架的基本原则。

2b4f31b8018d41e7b3585bc1c4cb2ab3

2.分布式架构

阿里巴巴有很多大团队。这个大团队中有很多小团队。在小团队之后,业务就不同了。如果您想成为一线互联网公司的普遍参与者,那么有许多主流的分布式架构。必须理解和学习知识。在阿里面试过程中,面试官会询问有关实际应用场景的问题:如微服务,用户量,并发性,业务复杂性和可扩展性等,此处不再赘述。本尼迪克特为学习思想提供了分布式架构,也是一个仍在学习的系统:

ff64cfece91e42dcad67bd064a0d7955

3.微服务架构

微服务是当今互联网架构技术中最热门的话题之一,也是本尼迪克特目前正在研究的方向。在阿里访谈期间,访调员很少提出有关微服务的问题。

769fcebfd74f49508131295caf7406ec

4.并发编程

并发编程几乎是所有互联网公司采访的问题。并发编程是Java程序员最重要的技能之一,也是最难掌握的技能之一

0dbfe94c6f3a416dbe60c3c62c96f837

5,性能优化

性能一直是程序员头疼的问题。当系统架构变得复杂和庞大时,性能将下降。特别是像阿里巴巴这样的一线互联网公司最受关注。因此,如果您想进入Ali,性能优化必须是深度学习和理解的一部分。性能优化虽然不是专家,但可以确信它是精通的

d24baa30e8e1446d9640ade05788056c

6.设计模式

毫无疑问,设计模式在其他系统中是双赢的。设计模式使代码编译真正具有工程性。设计模式是软件工程的基石,就像建筑的砖砌一样。

635c2128a11d41f982215b236cb88c9f

作为一名后端Java人员,我编写了许多高级架构视频资料,访谈文档和PDF学习资料。对于上述系统概述,还有相应的高级结构视频资料。如果你决定自己未来的道路或想要学习提高技术知识的技术知识和技术知识的朋友可以关注小编,帮助小编转发这篇文章后私信回复[数据]获取学习资料提升自己(完整的访谈文档,PDF,高级架构视频)

记得转发+私信[数据]来接收!

8e65b5d68ab04b85a0fa6539b9b1e5d8

472b94d50be144fbaa8ba2d73a290741

8989cd046845452abb960016f8310f55

21022ee8720847ed8fdc9e002b09bcbb

学习数据采集方法:转发+转发+转发后注意,私信回复[数据]接收哦!

确实,无论程序员多大年纪,程序员实际上都是一个障碍,但通过这个障碍有不止一种方法。或者四大专业正在追求天堂的生活,或者沿着旧路挣扎,或者创业能否找到捷径,或改变环境继续向前发展。无论如何,只有通过努力才能让你变得更好。

日期归档
  • 友情链接:
  • 澳门银河娱乐注册 版权所有© www.aluzdodia.com 技术支持:澳门银河娱乐注册| 网站地图