阿里巴巴 java 1+2+3+hr面
阿里数据技术与产品部门 1面+2面+3面面筋
1面(48分钟):基础+项目
自我介绍,项目介绍,遇到的最大困难是什么?怎么解决的?你觉得你能怎么优化这个项目?
1)讲一下JVM
2)讲一下JVM的分代回收以及具体算法
3)将一下JVM的垃圾收集器,G1和CMS有啥区别?
4)讲一下一个变量从产生到结束所经历的过程,讲一下字符串常量的过程?
5)将一下线程安全问题产生的原因?
6)讲一下乐观锁和悲观锁
7)乐观锁是怎么保证一致性的
8)Integer和int有啥区别,integer中有哪些特殊的函数?
9)讲一下数据库的隔离等级
10)说一下MVCC
11)说一聚簇索引和非聚簇索引的有什么不同
2面(1h):主要聊项目,基础问得不多
主要怼项目,你做过哪些项目,用过哪些技术?你为什么读研?了解哪些框架?你觉得对你技术提升最高的是哪一件事情,提升了你哪一方面的技术?
1)讲一下Spring AOP和IOC的底层实现
2)说一下hashcode的作用?HashMap的底层实现?HashMap和HashTable的区别
3)说一下concurrentHashMap和hashTable在性能上的区别?以及这种差异形成的原因
4)讲一下堆以及堆排序
5)说一下B+tree和二叉搜索树的区别?说一下二叉搜索树和AVL树、红黑树之间的差别
6)给你两个文件(字符串形式的)如何找出他们之间的不同地方?
7)你刚刚说的能怎么优化?
8)知道倒排索引嘛
3面(35分钟):总共四个问题(其实是两个)
1. 给你50亿行字符串,机器4G内存(只能一台机器),找出重复次数最多的那行字符串?(以行为单位,每行不超过10个字符)
2. 一个圆上三个点形成钝角的概率是多少?
3. 假如两个点和圆心形成的圆心角已经是直角,那么第三个和这两个点形成钝角的概率是多少?(接上一题)
4. 快速排序的平均复杂多少?最坏情况是什么?(这个题估计就是缓和一下尴尬的气氛)
吐槽一下三面:本来说好的是机试,但是下午临时打电话过来直接就面了,就这么四个题,面试官普通话也说不标准,很难懂他说的是啥!哎。。。无语
HR面(40分钟):
1)对数据技术与产品部有什么了解?
2)你更愿意从事算法还是开发方面的工作?
3)聊了聊论文
4)聊了聊读研的事儿?
5)讲一讲你遇到过的最大困哪
6)有女朋友嘛?(我老实说了有,然后hr就和我说阿里招聘的时候,一方可能会受另一方影响比较大,哎感觉凉凉)
HR面带给我的恐惧感是最强的,虽然hr态度很好,但是阿里巴巴HR面刷人是最多的,所以也没抱太大期望,已经走到了这一步,已经没有什么遗憾了,也认清了自己和大佬们的差距。
PS:HR没有给口头offer,也没有问期望薪资,八成是凉得不能再凉了。
记录下阿里的招聘之路与诸位牛油共勉!
作者: 团子s1
来源:牛客网(http://www.nowcoder.com)
原文链接:阿里巴巴 java 1+2+3+hr面

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
反射与动态代理原理
反射与动态代理原理 1 关于反射反射最大的作用之一就在于我们可以不在编译时知道某个对象的类型,而在运行时通过提供完整的”包名+类名.class”得到。注意:不是在编译时,而是在运行时。功能:•在运行时能判断任意一个对象所属的类。•在运行时能构造任意一个类的对象。•在运行时判断任意一个类所具有的成员变量和方法。•在运行时调用任意一个对象的方法。说大白话就是,利用Java反射机制我们可以加载一个运行时才得知名称的class,获悉其构造方法,并生成其对象实体,能对其fields设值并唤起其methods。应用场景:反射技术常用在各类通用框架开发中。因为为了保证框架的通用性,需要根据配置文件加载不同的对象或类,并调用不同的方法,这个时候就会用到反射——运行时动态加载需要加载的对象。特点:由于反射会额外消耗一定的系统资源,因此如果不需要动态地创建一个对象,那么就不需要用反射。另外,反射调用方法时可以忽略权限检查,因此可能会破坏封装性而导致安全问题。2 动态代理为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在两者之间起到中介的作...
- 下一篇
TypeScript基础入门 - 函数 - 可选参数和默认参数
转载 TypeScript基础入门 - 函数 - 可选参数和默认参数 项目实践仓库 https://github.com/durban89/typescript_demo.git tag: 1.2.0 为了保证后面的学习演示需要安装下ts-node,这样后面的每个操作都能直接运行看到输出的结果。 npm install -D ts-node 后面自己在练习的时候可以这样使用 npx ts-node 脚本路径 函数 可选参数和默认参数 TypeScript里的每个函数参数都是必须的。 这不是指不能传递 null或undefined作为参数,而是说编译器检查用户是否为每个参数都传入了值。 编译器还会假设只有这些参数会被传递进函数。 简短地说,传递给一个函数的参数个数必须与函数期望的参数个数一致。如下实例演示 function buildName(firstName: string, lastName: string) { return firstName + ' ' + lastName } // 错误演示 buildName("firstName") // 错误演示 buildNam...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8编译安装MySQL8.0.19
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池