39

阿里P8架构师谈:工作2年跳槽面试阿里,成功拿到offer,凭什么?

 5 years ago
source link: https://studygolang.com/articles/15955?amp%3Butm_medium=referral
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

2015年刚毕业的我,进入了一家小小的公司实习工作,在学校学了三年软件开发的我,还是想去寻找一份互联网行业的工作,这样更能学以致用发挥自己的特长。一直到18年三月份,我辞掉已有的工作,北上去面试,且成功拿到offer,面试回来后,好多人问我,你凭什么能拿到阿里的offer,你只不过是刚毕业工作两年的小白。当时我只对他们笑了笑,以谦虚的语气回答:运气好运气好!但其实并不是运气好这么简单的,没实力没底气你敢去阿里面试么?我想大家一致的回答都是一样的,“不敢去”!那我凭什么才两年经验的小白会面上阿里,其实我是有底牌的。

那现在来聊一聊我所遇到的一些面试经历,希望给各位寻求新机会的小伙伴一个参考。总共面完5家收了4个offer,应该算是比较成功的吧。

由于种种原因,博文中所涉及的公司均以代号标志,且我能告诉大家的也只有面试题,其他的不便透露细节,希望大家理解。

面试题

A公司

写出java中synchronized的使用方式。

Java中设置最大堆和最小堆内存的参数是什么?

volatile的作用?

一道设计题

多个线程同时读写,读线程的数量远远⼤于写线程,你认为应该如何解决 并发的问题?你会选择加什么样的锁?

JAVA的AQS是否了解,它是⼲嘛的?

除了synchronized关键字之外,你是怎么来保障线程安全的?

什么时候需要加volatile关键字?它能保证线程安全吗?

B公司

问题一:“请你自我介绍一下”

问题二:“你有什么业余爱好?”

问题三:“你认为你工作中的哪些方面是最重要的?”

问题四:“谈谈你的缺点”

问题五:“谈一谈你的一次失败经历”

问题六:“你为什么选择我们公司?”

问题七:“对这项工作,你有哪些可预见的困难?”

问题八:“我们为什么要录用你?”

问题十:“您在前一家公司的离职原因是什么?”

C公司

mybatis怎么防止SQL注入

Hibernate的缓存机制

Hibernate一级缓存

Hibernate二级缓存

什么样的数据适合存放到第二级缓存中

Mybatis和Hibernate的区别(优缺点)

redis的使用场景

Tomcat本身的参数你⼀般会怎么调整?

如果有很多数据插⼊MYSQL 你会选择什么⽅式?

D公司

1. 你知道哪些或者你们线上使⽤什么GC策略? 它有什么优势,适⽤于什么 场景?

2. JAVA类加载器包括⼏种?它们之间的⽗⼦关系是怎么样的?双亲委派机 制是什么意思?有什么好处?

3. 如何⾃定义⼀个类加载器?你使⽤过哪些或者你在什么场景下需要⼀个⾃ 定义的类加载器吗?

4. 堆内存设置的参数是什么? 5. Perm Space中保存什么数据? 会引起OutOfMemory吗? 6. 做gc时,⼀个对象在内存各个Space中被移动的顺序是什么?

7. 你有没有遇到过OutOfMemory问题?你是怎么来处理这个问题的?处理 过程中有哪些收获?

8. 1.8之后Perm Space有哪些变动? MetaSpace⼤⼩默认是⽆限的么? 还是 你们会通过什么⽅式来指定⼤⼩?

9. Jstack是⼲什么的? Jstat呢? 如果线上程序周期性地出现卡顿,你怀疑可 能是gc导致的,你会怎么来排查这个问题?线程⽇志⼀般你会看其中的什么 部分?

10. StackOverFlow异常有没有遇到过?⼀般你猜测会在什么情况下被触 发?如何指定⼀个线程的堆栈⼤⼩?⼀般你们写多少?

E公司

● 简述synchronized?Object;Monitor机制;

● 简述happen-before规则 ;

● JUC和Object ; Monitor机制区别是什么 ; 简述AQS原理 ;

● 简述DCL失效原因,解决方法 ;

● 简述nio原理 ;

● jvm运行时数据区域有哪几部分组成,各自作用 ;

● gc算法有哪些 ; gc收集器有哪些 ;

● 简述class加载各阶段过程 ; class ; loader有哪些模型 ;

● 简述常用的JDK命令行工具 ;

● 简述字节码文件组成 ;

● 讲讲你平常是如何针对具体的SQL做优化 ;

● mysql的存储引擎有哪些,区别 ;

● gc:内存模型;

● gc: 垃圾回收 ;

● 多线程:如何实现一个定时调度和循环调度的工具类。但提交任务处理不过来的时候,拒绝机制应该如何处理 ; 线程池默认有哪几种拒绝机制 ;

● 多线程: 如何实现一个ThreadLocal ;

● 说说你了解的一个线程安全队列 ;

● Atomic包的实现原理是什么 ;

● CAS又是怎么保证原子性的 ;

● string分析1000次循环subString用了多少内存 ;

我面试E公式时是最吃力的,问的好多问题,反正他想到的都会问,由于问题太多,我也只能凭记忆罗列出这么一点点出来,希望能体谅。

打动面试官的五大技能

1. 定量分析

定量分析是对社会现象的数量特性、数量关系与数量变化的分析。数据是许多组织的重要组成部分,所以你的组织、分析、解释和呈现数据能力是很重要的。不管是在做应用程序还是寻找不同的办法来吸引用户。特别说明下,招聘公司很重视组织数据和基于数据进行组织的能力。如果你有挖掘数据的能力,并有自己的见解,那么在竞争中将很有优势。(面试时,你可以带上曾经做过的关于数据分析的项目)。

2. Excel

管理数据分析中最主要工具是什么?Excel。Excel在工作中会经常遇到,而且公司不会花时间去教你怎样使用Excel。所以,如果你能精通Excel,在录取中也会占有一定的优势。

3. 创造性思维

当今企业界发展步伐异常快,招聘企业对那些有创新能力和能超越现状的求职者很感兴趣。他们希望自己的员工能够有拓展性思维,不安于现状,从第一天上班时起就能有与其他员工分享自己的想法,最好可以提高公司当前的工作系统。但是,创造性思维有点不好学习。

4. 沟通能力

一般情况下,招聘公司都想找一些沟通能力比较强的员工。因为公司日后需要你可以有效的与客户进行电话、邮件及日常生活的交流,你的一言一行都将代表公司的形象。更重要的是,公司希望你能以简洁专业的语言来表达自己的某些看法。所以,在面试过程中,多向招聘人员展示下你的沟通能力。

5. 谦逊的品格

有人看到谦逊会觉得奇怪,但是这个技能却是招聘人员看中的重要技能之一。当然,招聘公司需要有自信、有激情,也要乐于学习的员工。在面试时,如果被要求分享自己的想法或主意的时候,大胆的说出来。如果被指出错误,虚心的接受。多问面试人员一些问题,比如公司的一些情况和应聘岗位的一些工作。

欢迎工作一到五年的Java工程师朋友们加入Java架构开发:760940986

群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!

为什么我面试五家公司有四家录取了呢,以上五大技能不仅要拥有,技术还要过硬,不然以上的面试你不想过关。那从哪里学习才能获取过硬的技术以及过硬的胆识呢?以下便是我学习了这个课程体系,才是我有这么过硬的技术以及过硬的胆识。

推荐课程体系:

一、性能调优

UvmiyiV.jpg!web

二、源码解读

zUJfEbY.jpg!web

三、分布式

QZRJz2Q.jpg!web

四、微服务

MNN7nyE.jpg!web

五、团队协作开发

jY7vY3i.jpg!web

六:B2C商城项目实战

AjQRvmm.jpg!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK