30W年薪阿里P7面试经历JAVA总结,技术面,HR面

为记录阿里的电面经历,特与大家分享,岗位是JAVA研发工程师。

一面主要问题如下:

1)首先自我介绍
2)数据结构算法的基本问题,如排序算法,二叉树遍历,后序遍历非递归,图的最短路径问题
3)对一个数组进行绝对值排序的算法
4)java中hashmap的底层实现
5)java中垃圾回收机制GC原理等
6)介绍自己的项目,数据库中用到的数据结构数据模型,死锁的概念(问的应该是数据库的死锁),如何避免死锁?
7)乐观锁和悲观锁?
8)一致性hash算法
9)项目中业务对象的关联关系/关联方式,谈谈左外连接及如何实现多对多关系模型10)spring的IOC和AOP
11)sping如何实现(保证)事务一致性完整性,spring中事务传播机制类型
12)谈谈WEB的架构(应该指的是j2ee开发架构模型)、项目中的用户场景使用场景13)对分布式架构的了解,如分布式存储 分布式缓存 分布式计算
14)谈谈对阿里的哪些开源项目有所了解?
15)对淘宝技术是否有了解?
16)对其杭州信息平台事业部其主要业务是否了解(其主要是java方面的开发,另可以重点关注看看工作流引擎)
二面主要问题如下:

1)首先仍然是先自我介绍
2)有过竞赛经历?奖项?专业排名?平时都看些什么书籍?是否参加了学校社团活动?哪个部门?主要工作?时间安排?
3)对哪些技术最熟悉最擅长?我说的是java WEB框架那些,然后就开始问java了
4)接口和抽象类的区别 实现有哪些不同?
5)序列化如何实现?用代码描述。writeObject? objectWrite?ObjectOutputStream.writeObject(). ObjectInputStream.readObject()
6)IO框架 集合框架的描述。如何判断文件是否存在?如何读取一个目录下面的所有文件和子目录?代码描述。
7)广度优先遍历目录下面的所有子目录和文件?代码实现?List和Map的不同?HashMap的实现?如何解决散列冲突?
8)多线程机制?线程休眠10秒?sleep()与wait()的区别。
9)缓冲流buffer的用途?原理?
10)linux下如何查看CPU负载和IO端口的使用情况?如何创建目录?如何搜索一个指定的字符?
11)考察数据库的sql操作,给定了一个具体的业务表,如何对不同类型的数据进行统计。
12)事务的概念?脏读?如何避免?如何在代码中实现?
13)sql代码中如何使用如何定义一个事务?应该是如何定义一个事务的隔离级别?
14)项目中遇到的问题?解决方式?
15)SSI框架?spring如何定义一个bean?代码描述。Bean的生命周期?Bean的scope?16 ) 对淘宝技术架构的了解?从哪里获取到的?自己今后的职业规划?技术发展方向?17 )最后,对来杭州和阿里工作的意向?然后询问我自己有啥想问的?谈了下 信息平台事业部的主要业务?工作流和ERP?
总体上来看,还是比较注重基础的 尤其是java的多线程和并发安全性及数据库相关,另外对有关开源框架的具体底层实现需要多阅读源码并进行总结。

################################################################################

1 hashmap,hashtable区别。
2 是否了解过hashmap的源码?
3 jvm相关,主要是内存分配的过程,何时出发GC,用什么工具或者命令来进行监控?
4 类加载,类隔离机制。
5 spring的ioc,aop,事物,然后顺便提到了数据库的事物,两阶段提交,数据库锁的级别,MySQL数据库锁的特殊之处(页级锁)
6 java线程池里面的arrayblockingqueue,linkedblockingqueue的用途和区别。
7 设计模式相关,主要讲解用途
8 如何保证数据库集群中ID的唯一性,假设每秒钟并发20万次。
9 设计十万并发级别的网站后台,如何计算使用的ecs数目(云服务器(Elastic Compute Service, ECS 如阿里ECS)是一种处理能力可弹性伸缩的计算服务器,基于BGP最优路由算法构架多线网络,云服务器可以帮助构建更加安全稳定的应用)。
10 memcached和redis的异同和用途。
11 nosql数据库相关,主要讲了mongodb
12 10G的整数中,取出最大的一个(不光是使用高效的排序算法,还需要考虑内存大小)
13 synchronized,volatile,可重入锁的用途和优缺点。
14 java nio相关核心的api基本了解和应用
15 一致性hash
16 在一个大系统中存在哪些单点失效的问题
17 hadoop优化相关
#########################################################################

一面,主要注重基础,问得很深很广,压力面试。

1.hashmap、concurrenthashmap底层实现和区别
2.spring框架的原理
3.如何写一个orm框架
4.hibernate一级缓存和二级缓存,hibernate其他缓存
5.hibernate事务传播行为种类
6.springmvc原理
7.restful的好处
8.restful有几种请求,表单如何提交put请求
9.web中安全性问题的考虑,如何防止
10.web系统整体架构
11.hibernate如何实现声明式事务
12.java并发包
13.volatile
14.平常都看哪些书
15.spring底层数据结构
16.如何进行反射,如何提高反射的性能
17.如何实现java的代理,为什么需要实现接口
18.TCP协议三次握手
19.springmvc用过哪些注解
20.springAOP可以使用哪些代理,有什么区别
21.为什么要分三层
22.mybatis与hibernate有什么区别,为什么不用hibernate直接写sql语句?这面没有准备好,广度和深度压力很大,建议大家多看看三大框架源码、原理,并发包。
二面注重于项目

1.什么是restful web service?
2.并发集合包?
3.项目中使用了哪些数据结构?
4.TCP中断连接四次挥手?
5.MD5加盐
6.https
7.支付宝接口开发
8.知道哪些锁,有什么区别?
9.依旧JDK源码
10.项目遇到什么问题,怎么解决?
11.JDK1.8有什么新特性?
也许是觉得一面已经问了很多了,这面又答得比较不错,20分钟就结束了,30分钟出了结果。

三面聊人生

leader人very nice,给了一些建议,可能是觉得技术差不多,这面基本没怎么问技术,主要是职业发展、IBM的实习内容之类,我想大家可能也都有自己的想法,18分钟。

hr面聊成长经历:聊了一下对B2B的认识和自己的技术成长历程。

###################################################################################

点赞关注我:私信回复“资料”获取往期Java高级架构资料、源码、笔记、视频

Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、

高并发等架构技术

1.Java基础

ArrayList,HashMap等集合框架类,重要基础类String等的处理。HashMap的底层存储结构等。

(也可以顺带考察下对接口,继承,重载重写的基本理解;以及异常处理的注意事项)。

  1. 数据结构与算法

常见的查找算法及时间复杂度。

常见的排序算法及时间复杂度。

比较重要的数据结构,如链表,队列,栈的基本理解及大致实现。

  1. 多线程问题

1)线程安全问题。 HashMap 是否线程安全,为何不安全。 ConcurrentHashMap,线程安全,为何安全。底层实现是怎么样的。

2)J.U.C下的常见类的使用。 ThreadPool的深入考察; BlockingQueue的使用。(take,poll的区别,put,offer的区别);原子类的实现。

3)各种常见锁使用

如果上面这些掌握很好,还可以看看更深一点的 False Sharing,Cache Line,可见性与原子性等;

  1. JVM

Java内存分代模型,GC算法,JVM常见的启动参数; CMS算法的过程。

这块回答较好,也可以只是看毕玄的Java分布式开发或网上文章的学习, 可以结合JVM启动参数常见配置,jstat等命令,看下动手能力,意愿;以及实际线上问题排查。

5.Linux使用与问题分析排查

1). grep,awk,sed; 是否自己写过shell脚本;

2). 常见的cpu load过高,us过高,一般是什么问题。引申出是否用过top,jstat,jstack等。

常见的内存问题一般有哪些。 引申出是否用过free,top, jmap等。

  1. 框架使用

spring aop的底层实验原理。 aop与cglib,与asm的关系。

spriong ioc的生命周期,(init-method,intilizingbean接口方法afterPropertiesSet的先后顺序)等。

Hibernate对一二级缓存的使用,Lazy-Load的理解;

  1. 数据库相关:
  2. mysql存储引擎中索引的实现机制;

2.数据库事务的几种粒度;

3.行锁,表锁;乐观锁,悲观锁

8.网络协议:

HTTP协议;

HTTPS协议,SSL协议及完整交互过程;

  1. redis

redis,memcache底层客户端使用一致性Hash,看是否了解;

redis的事件驱动多路复用底层实现;引申到NIO编程, 看对Netty,或mina是否了解。

如果候选者同时用过memcache,redis,看下是否了解两者在使用场景上的区别。以考察使用深度,以及是否有好奇精神。

  1. 设计模式与重构

常见设计模式,如singlen,factory,abstract factory,strategy,chain,adaptor,decorator,composite,template,absever等。

重构:重构书籍

  1. 学习与进取心

最近上过上哪些技术站点; 最近在看哪些书。

  1. 抗压能力及抗压意愿

了解加班情况,了解是否愿意在一段时间996等;

13 稳定性考察

了解家庭婚姻状况, 了解购房及居住地,籍贯情况,了解目前薪资,评估稳定性;

=======

1.进程和线程的区别
2.什么叫线程安全?举例说明
3.OSI七层模型,包括TCP,IP的一些基本知识
4.数据库的锁
5.DFS,BFS算法
6.还有一些诸如collection framework的Java基础
7、http中,get post的区别
其他的面试,感觉问的很有代表性:

第一面(只记得这么多了)

1、笔试题第四题实现又口述了下
2、有个每秒钟5k个请求,查询手机号所属地的笔试题(记得不完整,没列出),如何设计算法?请求再多,比如5w,如何设计整个系统?
3、比较熟悉什么技术?我说jvm和oracle,就让我画jvm的体系结构,画了之后说各个部分的职责,并扯到运行期优化。
第二面(没有技术细节,都是泛泛的,但是我回答的比较保守,只觉得能滔滔不绝的说上半小时才敢说看过或了解)

1、是否愿意去杭州
2、熟悉各种技术框架么?源码读过么?
3、数据库了解什么?mysql了解么
4、前台技术,看我用的ExtJS,就问是否了解JQuery
5、进现在的公司,觉得对技术是否有提升?
第三面,此面没有技术问题

第四面HR(感觉这面问题回答的有点扯,毕竟是这么几年来首次面HR,之前面过2、3个公司,要么很早就挂了,要么感觉流程太长,自己不愿意面下去)

1、愿意去杭州发展么?我说要考虑,hr就问主要考虑什么问题2、从技术角度来说,你觉得你跟你同学比怎么样3、你的父母怎么看待你的1、jvm性能调优都做了什么

2、高并发情况下,我们系统是如何支撑大量的请求的

3、集群如何同步会话状态

4、负载均衡的原理

5、数据库事务属性

6、二叉树的遍历算法

7、hashtable和hashmap的区别

8、并发、同步的接口或方法

9、string、stringbuilder、stringbuffer区别

10、https处理的一个过程,对称加密和非对称加密

11、线程的几种状态

12、了解手机开发么

13、个人优势

14、与同事沟通的时候,如果遇到冲突了如何解决

15、工作中觉得哪方面欠缺?

16、有问题要问么?

17、期望薪水

18、为什么要离开现在的公司 struts1.2和webwork的区别 hibernate和ibatis的区别 spring工作机制,IOC容器 servlet的一些相关问题 webservice相关 java基础:jvm,HashSet等等* 考察学习新技术的能力

其他:

  1. 店铺相关的业务特点决定,有前后端知识是加分项。 如果候选者熟悉javascript。

可以考察:

1) 前后端优化的基本常识,比如js放在后面不阻塞等;原生js的理解,正则,时间冒泡等。

2)firebug,fiddle等调试工具;

3)如果是基本使用,看下ext框架,jquery等熟悉程度。jquery插件机制,sizzle选择器。

如果以上都不错,可以再深入考察

1)作用域链, 闭包的理解。

2)看下是否了解最新的技术。 augularJS, nodejs,cmd规范,amd规范等。

阿里HR面相关问题分享如下:

1、为什么选择该部门?因为在校招个人信息的开放问题中,有一个问题是:你最期望在阿里巴巴实习的部门或项目是什么?请介绍下你对该部门的了解和希望实习的原因?而我只是写了个部门名称,并未展开说明,所以hr才有此一问。
2、之前有参加过其他公司的招聘吗?为什么没有通过?
3、阿里实习招聘被拒的原因?什么问题没有回答好?对该问题下来自己有无总结?
4、对阿里的印象或者同学中的评价?
5、参与的课外活动?社团?除了学习,有其他的活动吗?
6、为什么选择读研?读研和本科的不同?读研后最大的不同是?
7、问有没有实习经历或者工作经验 怎么看待?可否提前去实习?
8、最近有没有自己感觉沮丧的事情?谈一谈。最近遇到最困难的事情是?
9、为什么选择去杭州工作?
10、本周结束内推流程,8月15号前出结果通知。最后,是否有啥想问的?整体上感觉hr态度还是很不错的,相互交流的还挺轻松。
主要用到的技术栈总结:

扫描下方二维码:或者搜索Q群号:739486042

点击链接加入群聊【java架构学习群】:https://jq.qq.com/?_wv=1027&k=5G1eNmB


架构师筑基专题:

开源框架解析专题:

高性能架构专题:

微服务架构专题:


团队协作开发专题:

B2C项目实战:

并发编程专题:

原文地址:https://blog.51cto.com/14587687/2447104

时间: 2024-10-22 01:02:34

30W年薪阿里P7面试经历JAVA总结,技术面,HR面的相关文章

跟着阿里p7一起学java高并发 - 第18天:玩转java线程池,这一篇就够了

java中的线程池,这一篇就够了 java高并发系列第18篇文章. 本文主要内容 什么是线程池 线程池实现原理 线程池中常见的各种队列 自定义线程创建的工厂 常见的饱和策略 自定义饱和策略 线程池中两种关闭方法有何不同 扩展线程池 合理地配置线程池 线程池中线程数量的配置 什么是线程池 大家用jdbc操作过数据库应该知道,操作数据库需要和数据库建立连接,拿到连接之后才能操作数据库,用完之后销毁.数据库连接的创建和销毁其实是比较耗时的,真正和业务相关的操作耗时是比较短的.每个数据库操作之前都需要创

阿里P7分享最新java面试——线程面试题集合

1.说说进程,线程,协程之间的区别 简而言之,进程是程序运行和资源分配的基本单位,一个程序至少有一个进程,一个进程至少有一个线程.进程在执行过程中拥有独立的内存单元,而多个线程共享内存资源,减少切换次数,从而效率更高.线程是进程的一个实体,是cpu调度和分派的基本单位,是比程序更小的能独立运行的基本单位.同一进程中的多个线程之间可以并发执行. 2.你了解守护线程吗?它和非守护线程有什么区别 程序运行完毕,jvm会等待非守护线程完成后关闭,但是jvm不会等待守护线程.守护线程最典型的例子就是GC线

2015年阿里实习生面试Java研发工程师 小记

5月5日,广州,阿里实习生面试,Java研发工程师,完全被虐orz 几乎没有Java项目开发经验,接近零基础,去水了一发,毫无悬念的被刷了..RP也是杠杠的,准备过的题目一个都没被问到,算法题也是一条也没出orz,面试官貌似不知ACM是何物,GG了..不过这次面试收获还是挺大的.. 面试前: 出地铁的时候感觉每个年轻人都是去阿里面试的,快到酒店的时候此感更强烈,果然上电梯的时候就认识了两个从湖南过来面阿里的大三师兄,一个产品一个安卓开发,都好厉害,安卓开发的还已经拿了两个offer,其中一个是小

Java Web架构知识整理——记一次阿里面试经历

惭愧,从一次电面说起.我个人在某国企做一名软件设计师,国企大家都懂的,待遇一般而且没啥意思,做的方向基本都是操作系统.驱动和工具软件的开发,语言基本都是C/C++.最近也想跳槽,刚好有幸得到了一次阿里的面试机会,于是就试了试. 首先是电话面试,当时正在上班,人多口杂,好不容易找了个没人的地方开始面试.面试的方向是Java Web,面试官很nice,跟朋友一样,一开始问了些比较基础的东西,比如hashmap/hashtable的区别和优缺点,我答得还行,而且对于原理的东西还算讲的比较透彻. Jav

放手一搏:社招Java岗面试经历(三年经验): PingCAP、蚂蚁

前言 今年想出来看看机会,最后很幸运地拿到了 PingCAP,今日头条的 offer 以及蚂蚁金服的口头 offer.想着可以总结一下经验,分享一下自己这一段"骑驴找马"过的心路历程.当然,一家之言,难免粗浅,如有不妥,敬请指正. 全文有点长,假如只对一家公司感兴趣的话可以直接跳过去: 准备过程 我自己是本科毕业后在老东家干了三年多,老东家算是一家"小公司"(毕竟这年头没有 BAT 或 TMD 的 title 都不好意思报出身),毕业这两年多我也没有在大厂待过,因此

CSDN日报20170320——《Java 程序员的面试经历和题库》

[程序人生]Java 程序员的面试经历和题库 作者:nuaazhaofeng 最近打算换城市了,受不了北京的雾霾了,所以准备逃离啦.所以一直在面试中,整理了下最近遇到的一些面试题,供大家参考.其中会包含一些面试的小经验,如果您是面霸,希望能给予指导.自己不是大牛,如果您是大牛,也可以忽略之.我面试的岗位是Java后端开发工程师. [Python]7行Python代码的人脸识别 作者:半吊子全栈工匠 随着去年alphago 的震撼表现,AI 再次成为科技公司的宠儿.AI涉及的领域众多,图像识别中的

双非菜鸟的Java实习面试经历..

因为比较菜,作为土著就想留在杭州(现在想想实习而已也许应该出去拼一拼的..),因此没啥互联网公司的面经(51笔试凉蘑菇街简历凉),但感觉混了这么久还是得在这里留下点什么,就写一下恒生和大华的实习面试经验吧.. 恒生-交易所事业部: 2个面试官面5个人..说实话虽然面试形式很奇怪,但压力确实小点,时间有点遥远记得不是很清楚,说下记住的 1.自我介绍(在校经历.项目,感觉这种情况下本科生面对研究生劣势很大..),会针对每个人的简历提点项目相关的问题. 2.每个人举例两个碰到过的异常 3.cookie

Java三月春招面试经历分享(没offer不是我的锅)

三月春招眼看就已经过半了,还没有找到自己心仪工作的Java开发者小伙伴,这里给大家分享一下最近去某个大家都很想去的大厂的面试经历,希望对大家跳槽找工作有帮助~ 1.说出你印象最深刻的项目? 从你担任的角色,以及你在项目中遇到的问题,如何解决,还有就是项目有哪些比较特色的闪光点! 2.你觉得90后身上具备什么素质和能力? ①:交际能力.适应环境能力.技术能力.自省能力.自控能力.意志力 ②:自尊.自立.不要好高骛远 ③:我们要想成就一件事情,如果没有较坚强的意志力是什么也干不成的.即使是你有过人的

Java到底要做到什么程度才能适应市场的需求(大佬的面试经历)

前言:从过年前就萌生出要跳槽的想法,到过年来公司从月初提出离职到~~号正式离职,上班的时间也出去面试过几家公司,后来总觉的在职找工作总是得请假,便决心离职后找工作.到3月10号找到了一家互联网公司成功应聘上,中间也经历了很多公司,有外包的.创业的.互联网的等等各种类型,也收到了很多offer,也有面试不顺序的...今天来记录一下自己面试中的问题,围绕着java到底应该具备什么样的水平才能适应现在市场的要求的主题来谈一谈.创一个小群,供大家学习交流聊天如果有对学JAVA方面有什么疑惑问题的,或者有