关于java:十面阿里菜鸟蚂蚁金服天猫带回来的面试总汇

42次阅读

共计 3296 个字符,预计需要花费 9 分钟才能阅读完成。

尽管天猫,蚂蚁金,菜鸟都归属阿里旗下,但每个面试官问的问题都不一样,相同点次要在流程方面。面试开始会让自我介绍,次要业务架构和技术架构两局部。业务架构个别不会深究,但要面试官听明确,并且个别面试官会顺着问是如何依据这些业务去设计技术架构的。

大家听以下面试题,能够看看你是否能答复进去,在屏幕上或评论区里给出你的答案,家喻户晓 B 站是一个学习的网站,这里在送大家一份 BAT 大厂面试题大全,蕴含 java 根底,java 框架,java 中间件,Redis,kafka,计算机网络,并发编程,jvm,设计模式,netty 等等,总共 80 多个 PDF

面试试题

其余

  1. 什么是幂等?什么状况下须要思考幂等?你怎么解决幂等的问题?

Java 的

  1. 多个线程同时读写,读线程的数量远远大于写线程,你认为应该如何解决并发的问题?你会抉择加什么样的锁?
  2. JAVA 的 AQS 是否了理解,它是干嘛的?
  3. 除了同步关键字之外,你是怎么来保障线程平安的?
  4. 什么时候须要加挥发性关键字?它能保障线程平安吗?
  5. 线程池内的线程如果全副忙,提交一个新的工作,会产生什什么?队列全副塞满了之后,还是忙,再提交会产生什么?
  6. Tomcat 的自身的参数你⼀个别会怎么调整?
  7. 同步关键字锁住的是什么货色?在字节码中是怎么示意的?在内存中的对象上体现为什么?
  8. 期待 / 告诉 / notifyAll 的办法需不需要被蕴含在同步块中?这是为什么?
  9. ExecutorService 的你个别是怎么用的?是每个服务放一个还是一个我的项目外面放一个?有什么益处?

弹簧

  1. 你有没有⽤用过春天的 AOP?是用来干嘛的?大略会怎么应用?
  2. 如果¾一个接口有 2 个不同的实现,那么怎么来 Autowire 一个指定的实现?
  3. Spring 的申明式事务 @Transaction 注解个别写在什么地位?抛出了异样会主动回滚吗?有没有方法管制不触发回滚?
  4. 如果想在某个 Bean 的生成并拆卸结束后执行本人的逻辑,能够什么形式实现?
  5. SpringBoot 没有放到网上容器里为什么能跑 HTTP 服务?
  6. SpringBoot 中如果你想应用自定义的配置文件而不仅仅是 application.properties,应该怎么弄?
  7. SpringMVC 中 RequestMapping 能够指定 GET,POST 办法么?怎么指定?
  8. SpringMVC 如果心愿把输入的对象(例如 XXResult 或者 XXResponse)这种包装为 JSON 输入,应该怎么解决?
  9. 怎么拦挡用 SpringMVC 的异样,而后做自定义的解决,比方打日志或者包装成 JSON

MySQL 的

  1. 如果有很多数据插入 MYSQL 你会抉择什么形式?
  2. 如果查问很慢,你会想到的第一个形式是什么?索引是干嘛的?
  3. 如果建了一个单列索引,查问的时候查出 2 列,会用到这个单列索引吗?
  4. 如果建了一个蕴含多个列的索引,查问的时候只用了第一列,能不能用上这个索引?查三列呢?
  5. 接上题,如果 where 条件前面带有一个 i + 5 <100 会应用到这个索引吗?
  6. 怎么看是否用到了了某个索引?
  7. 像%aaa%会应用索引吗?像 aaa%呢?
  8. 降落,截断,删除的区别?
  9. 平时你们是怎么监控数据库的?慢 SQL 是怎么排查的?
  10. 你们数据库是否反对表情符号表情,如果不反对,如何操作?
  11. 你们的数据库单表数据量是多少?个别多大的时候开始呈现查问性能急剧下降?
  12. 查问死掉了,想要找出执行的查问过程用什么命令?找进去之后个别你会干嘛?
  13. 读写拆散是怎么做的?你认为中间件会怎么来操作?这样操作跟事务有什么关系?
  14. 分库分表有没有做过?线上的迁徙过程是怎么样的?如何确定数据是正确的?

JVM

  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 的异样有没有遇到过?个别你猜想会在什么状况下被触发?如何指定一个线程的堆栈大小?个别你们写多少?

Linux 的命令

  1. 日志特地大只想看最初 100 行怎么弄弄?如果想始终看日志的继续输入,用什么命令?
  2. 如果日志一边输入,一边想实时看到有没有某个关键字应该怎么弄?
  3. grep 的如果疏忽大小写应该怎么弄?正则表达式呢?
  4. VIM 往下一行是什么键?往下 30 行呢?跳到文件开端一行是什么?跳回来是什么?向后搜寻是什么?
  5. 如果有个文本文件,按空格作为列的分隔符,如果想统计第三列外面的每个单词的呈现次数应该怎么弄?
  6. 如果把下面的呈现次数排个序应该怎么弄?想依照数字自身的程序而不是字符串的顺序排列怎么弄?
  7. Linux 的环境变量是以什么作为分隔符的?环境变量通过什么命令设置?
  8. 给某个文件权设置限比方设置为 64 是用什么命令?这个 6 是什么意思?
  9. Linux 的上面如果想看某个过程的资源占用状况是怎么看的?零碎负载大略指的什么意思?你们线上零碎负载个别多少?如果一个 4 核机器,你认为多少负荷是比拟失常的?下面命令外面按一下 1 会产生什么?
  10. 顶部命令外面,有时候所有过程的 CPU 使用率加起来超过 100%是怎么回事?
  11. 还有哪些查看零碎性能或者供你发现问题的命令?你个别是看哪个参数?
  12. 想看某个过程关上了哪些网络连接是什么命令?外面连贯的状态你比较关心哪几种?– 偏题
  13. 有没有做过的 Linux 零碎参数方面的优化,大略优化过什么?
  14. 零碎参数外面有个叫做积压的能够用来干什么?
  15. 查看网络连接发现好多 TIME WAIT 可能是什么起因?对你的利用会有什么影响?你会抉择什么样的形式来缩小这些 TIME WAIT
  16. 可否介绍一下 TCP 三次握手的过程,如果当初有个网络程序,你用第三方的库来发送数据,你狐疑这个库发送的数据有问题,那么怎么来验证?tcpdump 的导出的文件你个别是怎么剖析的?
  17. 的 KeepAlive 是用来干什么的?这样的益处是什么?

Redis – 开发

  1. 缓存穿透能够介绍一下么?你认为应该如何解决这个问题
  2. 你是怎么触发缓存更新的?(比方设置超时工夫(被动形式),比方更新的时候被动更新)?如果是被动的形式如何管制多个入口同时触发某个缓存更新?
  3. 你们用的 Redis 来做什么?为什么不必其余的 KV 存储例例如 Memcached 的,卡桑德拉等?
  4. 你们用什么 Redis 的客户端?Redis 的高性能的起因大略能够讲一些?
  5. 你相熟哪些 Redis 的的数据结构?zset 是干什么的?和设置有什么区别?
  6. Redis 的 hash,存储和获取的具体命令叫什么名字?
  7. LPOP 和 BLPOP 的区别?
  8. Redis 的的有一些蕴含 SCAN 关键字的命令是干嘛的?SCAN 返回的数据量是固定的吗?
  9. Redis 的中的 Lua 中有没有应用过?能够用来做什么?为什么能够这么用?
  10. Redis 的的管道是用来干什么的?– 运维
  11. Redis 的长久化大略有几种形式?AOF 和 RDB 的区别是什么?AOF 有什么优缺点吗?
  12. Redis Replication 的大抵流程是什么?bgsave 这个命令的执行过程?– 偏题
  13. 如果有很多 KV 数据要存储到 Redis,然而内存不足,通过什么形式能够缩减内存?为什么这样能够放大内存?
  14. Redis 中 List,HashTable 都用到了 ZipList,为什么会抉择它?

监控,稳定性

  1. 业务日志是通过什么形式来收集的?
  2. 线上机器如何监控?采纳什么开源产品或者自研的产品?它是分钟级的还是秒级的?
  3. 如果让你来想方法收集一个 JAVA 后端利用的性能数据,你会在意哪些方面? 你会抉择什么样的工具、思路来收集?
  4. 个别你调用第三方的时候会不会监控调用状况?

明天阿里的面试题就差不多到这里了,视频前的你答上来了吗?

正文完
 0