写点什么

阿里巴巴面试经验!Java 高级面试指南手册程序员必备系列

作者:阿里、莫言
  • 2024-03-17
    湖南
  • 本文字数:1846 字

    阅读完需:约 6 分钟

怀揣着对大厂的梦想,小王本想在工作两至三年的时间内能进入大厂,奈何竞争是如此激烈。而且进入大厂并不容易,曾经一度被腾讯、京东、美团等大厂刷下来,甚至有些公司连面试机会都没给。就是趁过年疫情期间,狠狠复习了一把,程序员小王下定决心,向阿里发起“总攻”。


在这次面试阿里之前,程序员小王在去年年底到今年 4 月份这段时间不断的查缺补漏,把大部分时间都花在了学习技术上面,去看阿里招聘网站上的岗位需求是什么,Mysql 不好就狂刷 Mysql,Redis 不够深就扎进去学......


后面终于在三次阿里内部开发岗位面试之后,敲定了“Java 开发”的岗位,定级 P6.



天猫团队面试题(3 轮技术面+HR 面)


======================


阿里面试技术题:


  • 自我介绍呗

  • 项目介绍呗(先自己介绍项目,然后再聊天)

  • junit 用法,before,beforeClass,after,afterClass 的执行顺序

  • 分布式锁

  • nginx 的请求转发算法,如何配置根据权重转发

  • 用 hashmap 实现 redis 有什么问题(死锁,死循环,可用 ConcurrentHashmap)

  • 线程的状态

  • 线程的阻塞的方式

  • sleep 和 wait 的区别

  • hashmap 的底层实现

  • 一万个人抢 100 个红包,如何实现(不用队列),如何保证 2 个人不能抢到同一个红包,可用分布式锁

  • Java 内存模型,垃圾回收机制,不可达算法

  • 两个 Integer 的引用对象传给一个 swap 方法在方法内部交换引用,返回后,两个引用的值是否会发现变化

  • AOP 的底层实现,动态代理是如何动态,假如有 100 个对象,如何动态的为这 100 个对象代理?

  • 是否用过 maven install、 maven test、git(make install 是安装本地 jar 包)

  • Tomcat 的各种配置,如何配置 docBase

  • Spring 的 bean 配置的几种方式

  • Web.xml 的配置

  • Spring 的监听器

  • Zookeeper 的实现机制,有缓存,如何存储注册服务的

  • IO 会阻塞吗?readLine 是不是阻塞的

  • 用过 Spring 的线程池还是 java 的线程池?

  • 字符串的格式化方法(20,21 这两个问题问的太低级了)

  • 时间的格式化方法

  • 定时器用什么做的

  • 线程如何退出结束

  • java 有哪些锁?乐观锁,悲观锁,synchronized,可重入锁,读写锁,用过 reentrantlock 吗?reentrantlock 与 synmchronized 的区别

  • ThreadLocal 的使用场景

  • Java 的内存模型,垃圾回收机制

  • 为什么线程执行要调用 start 而不是直接 run(直接 run,跟普通方法没什么区别,先调 start,run 才会作为一个线程方法运行)

  • qmq 消息的实现机制(qmq 是去哪儿网自己封装的消息队列)

  • 遍历 hashmap 的三种方式

  • JVM 的一些命令

  • memcache 和 redis 的区别

  • Mysql 的行级锁加在哪个位置

  • ConcurrentHashmap 的锁是如何加的?是不是分段越多越好

  • myisam 和 innodb 的区别(innodb 是行级锁,myisam 是表级锁)

  • MySQL 其他的性能优化方式

  • Linux 系统日志在哪里看

  • 如何查看网络进程?

  • 统计一个整数的二进制表示中 bit 为 1 的个数

  • JVM 内存模型,java 内存模型



阿里面试题(共 5 面)


==============


阿里一面:


  • 自我介绍、自己做的项目和技术领域

  • 说一下 sync 的底层实现,锁优化,和 lock 的对比

  • 讲一下 JVM 参数调优详细过程

  • 为什么这么设置?好处是什么?描述 gc 场景,如何去分析 gc 日志?

  • redis 数据结构,使用场景,微博场景使用 redis 如何去设计用户关系?

  • 线程池参数设定,为什么这么设定,作用?7 大参数

  • spring 的循环依赖如何解决?为什么要三级缓存?

  • 优先级队列的底层原理?


阿里二面:


  • 自我介绍一下吧

  • 聊项目

  • 结合你项目问你如何设计,提出漏洞,你怎么解决?如何改进,万一挂了?加一台机器有没有问题?如果我非要不出问题怎么办?

  • 高并发下单扣库存场景如何设计

  • rocketMQ 架构设计原理

  • Dubbo 框架实现原理

  • 最近读了什么书?平时怎么学习?

  • 常用的负载均衡,该怎么用,你能说下吗?


阿里三面:


  • 这一面主要问项目,给你的压力感比较强

  • 结合项目问,为什么这么设计?让你去优化,你怎么优化,引导你用一个合理的更好的方式去优化,数据库的设计等

  • 在公司做了什么事情,各个系统业务线都是做什么的,你的绩效,手写算法链表反转?


阿里四面:


  • JVM 的主要组成部分及其作用?

  • JVM 运行时数据区包含哪些?

  • JVM 垃圾回收机制,何时触发 MinorGC 等操作

  • JVM 的垃圾回收算法:

  • JVM 调优的工具?

  • 常用的 JVM 调优参数?

  • 堆栈的区别?

  • 详细介绍一下 CMS 垃圾回收器?

  • 怎么判断对象是否可以被回收?

  • 新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么区别?

  • java 类加载过程?

  • 把你知道的中间件都说一下吧(瞬间懵了一下)


HR 面:


  • 为什么来阿里?

  • 之前没考虑过阿里吗?

  • 毕业这么久了,你觉得自己最大的改变是什么?

  • 用一句话总结一下自己


一点简历方面的小建议


==============


资料获取:戳我即可获取!!


简历尽量写好一些,项目经验突出:


  • 自己的知识广度和深度

  • 自身的优势

  • 项目的复杂性和难度以及指标

  • 自己对于项目做的贡献或者优化












资料获取:戳我即可获取!!

用户头像

公粽号【编程资料库】 2024-03-06 加入

还未添加个人简介

评论

发布
暂无评论
阿里巴巴面试经验!Java高级面试指南手册程序员必备系列_Java_阿里、莫言_InfoQ写作社区