阿里校招 Java 后端一二面面经(Part 1)

阿里校招 Java 后端 1-5 面 + HR 面面经(Part 1)

一面 8.27(约 60 min,电话)

  1. 做过的印象最深的项目?(聊项目)
  2. MySQL 的 log 有哪些?分别是用来做什么的?(undo log,redo log,binlog)
  3. 数据库分表分库?(没实践过,扯了点水平分表和垂直分表的理论)分库分表的全局唯一 ID怎么实现?
  4. 数据库 ACID?
  5. 数据库事务的隔离级别?
  6. 慢查询的优化思路?
  7. 你做过那个项目之后,在数据库这块有怎样的提升?(扯了点外键约束相关)
  8. Java HashMap 的 put 操作底层是怎么实现的?
  9. 线程池的构造器的参数介绍一下?
  10. Locksynchronized 的区别?
  11. AtomicLong 类的底层实现原理
  12. 线程的状态
  13. 实际使用过多线程吗?(没有……)
  14. 什么情况下会发生死锁?
  15. JVM 内存的划分?
  16. Java 堆的划分?
  17. 为什么要分代?
  18. 垃圾收集器了解哪些?
  19. 哪些对象会被 JVM 垃圾回收?
  20. GC ROOTS 包括哪些?
  21. OOM 排查?(不知道……)
  22. Java 怎么利用反射获取一个类的字段?
  23. 常见的类加载器?
  24. 看过哪些框架的源码?
  25. Spring @Autowired / @Resource 的区别?
  26. Spring 依赖注入的原理
  27. Spring bean 的作用域有哪些
  28. session 和 cookie 的区别
  29. 如何识别 session(存在 cookie 里面的 session id)
  30. HTTP 报文结构
  31. HTTP 状态码
  32. Java IO 模型有哪几种?
  33. 同步 / 异步,阻塞 / 非阻塞的区别?
  34. Netty 了解吗?(不了解……)
  35. 说几个设计模式?Spring 里面使用到了哪些设计模式?
  36. Java 如何实现单例?
  37. CAP 理论?
  38. 分布式事务有哪些实现方式?(不知道……)
  39. 微服务的架构设计是怎样的?
  40. 网络安全?(随便扯了点被动攻击、主动攻击之类的,这方面懂得不多)
  41. Redis 数据类型有哪些?
  42. 未来的发展方向是怎么考虑的?
  43. 平时会写文章 / 博客吗?
  44. 有做过其他项目吗?

反问环节

  • 知识储备有哪些地方需要补全的?

二面 9.3(约 50 min,电话)

  • 二面之前的一天面试官先联系了我,出了一道题目,让我实现一个 Linux Shell 脚本的功能,然后把代码发给他。

  • 题目如下:

//评测题目: 

请用java实现以下shell脚本的功能
uniq -c 记录重复次数
cat /home/admin/logs/biz.log | grep "Login" | uniq -c | sort -nr

假设biz.log内容如下:
User11 Login
User22 Login
User11 Login
User11 22 LogOff

则输出:
User11 Login:2
User22 Login:1
  • 实际上这里有个坑,如果按这条 Shell 命令去执行,得到的结果应当是(CentOS 7):
      1 User22 Login
      1 User11 Login
      1 User11 Login
  • 原因就在于 uniq 命令是对连续出现的文本进行去重,这里两个 User11 Login 不连续,因此不会被去重。
  • 这个坑导致面试一开始的氛围比较尴尬
  • 下面进入正文

  1. 讨论这个题,面试官一直强调我的代码没有实现它给出的示例输出(明明是你的题目有坑……)。我跟他说如果把 sort 和 uniq 换个位置就能得到它的示例输出。结果面试官说:“你知道这个题是错的,你还往这个错误的方向去实现。”(WTF?这就是阿里味儿吗?i 了 i 了)
  2. 你做这个题有挑战吗?(反正是开卷做题……谈不上有什么挑战)
  3. 文件的日志行数是百万/千万级别,还有没有挑战?挑战在什么地方?(生成结果的速度,大文件排序的处理)针对这个数量级怎样去修改算法(多线程 fork-join,join 的时候会遇到什么问题?)
  4. 你自己写代码会考虑内存占用或者计算资源分配的问题吗?(不会……)
  5. 线上排查过 JVM 故障吗?看过这方面文章吗?(没有……)
  6. 数据库了解哪些?
  7. 提高慢查询性能有哪些方法?
  8. 看过开源代码吗?(看过一点 Kafka 的源码,开始说书……)
  9. 看源码有什么收获?(blabla编了一堆)
  10. 那你为什么说你读的源码不多?(给自己挖坑了……只好说大部分经历放在刷题上面了)
  11. 后面的职业发展怎么考虑的?(说想搞中间件)
  12. 为什么想搞中间件?如果你要搞这个方向,你觉得你应该要学习什么东西?
  13. 学技术这么久,有没有什么事情让你觉得很自豪?(这都啥问题……)
  14. 有写过博客或者文章吗?有没有分享过
  15. 跨专业的跨度大吗?为什么要转行?
  16. 在项目里的分工和职责?
  17. 实习期间接触到的技术栈?(除了 Java 那一套也没了……)
  18. 你的技术亮点是什么?
  19. 技术之外的方面有什么特长?

反问环节

  • 同一面

小结

  • 这一面体验是最差的,一方面通话质量不好,另一方面面试官口音比较重,再有就是他提的不少问题让我感觉无所适从……
#面经##校招##阿里巴巴##Java工程师#
全部评论

相关推荐

点赞 评论 收藏
分享
10-07 20:48
门头沟学院 Java
不敢追175女神:可能是实习上着班想到后面还要回学校给导师做牛马,看着身边都是21-25的年纪,突然emo了了
点赞 评论 收藏
分享
评论
1
18
分享
牛客网
牛客企业服务