关于面试:非常全面阿里巴巴Java面试题及答案2020年6月份

2次阅读

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

一、阿里技术一面

  1. Java IO 流的层次结构?
  2. 请说出罕用的异样类型?
  3. SKU 的全称是什么,SKU 与 SPU 的区别及关系?
  4. FileInputStream 在应用完当前,不敞开流,想二次应用能够怎么操作?
  5. 设计一个分步式登录零碎?
  6. Spring 加载过程?
  7. 本人有没有写过相似 Spring 这样的 AOP 事务?
  8. Java 中 try..catch 敞开流的语法糖?
  9. 如何设计一个秒杀零碎?要思考什么?
  10. 有没有遇到进线上 GC,呈现的症状是什么样的,怎么解决的?
  11. spring 的加载过程?
  12. atomic 与 volatile 的区别?
  13. Thread 的 notify 给 notifyAll 的区别?
  14. notifiy 是唤醒的那一个线程?
  15. Thread.sleep 唤醒当前是否须要从新竞争?
  16. 单例有多少种写法? 有什么区别? 你罕用哪一种单例,为什么用这种?
  17. 问一个 Thread.join 相干的问题?
  18. 商品相干模块零碎怎么设计数据模型?
  19. 写一个 JAVA 死锁的列子?
  20. 如何解决死锁?
  21. GC 回收算法, 及实现原理?
  22. HashMap 数据存储构造? key 反复了怎么办? 是如何解决的?
  23. Spring AOP 的实现原理,底层用什么实现的?

二、阿里技术二面

电话面试次要考查 3 块内容:

  1. Java 的相干基础知识,开源框架的原理,JVM,多线程,高并发,中间件等;
  2. 之前我的项目经验,使用的技术,遇到的问题,如何解决,集体有什么播种和成长;
  3. 对于技术的激情(平时是否看些技术书籍,逛论坛,写博客,写源代码或程序等);

三、JAVA 开发技术面试可能问到的问题

  1. 咱们次要考核的是网络 nio 分布式数据库高并发大数据
  2. 自定义表格的实现?
  3. 动静表单设计?
  4. in-jvm(必考)以及 jmm 缓存模型如何调优?
  5. 罕用的 RPC 框架
  6. nio 和 io
  7. 并发编程,设计模式
  8. 地图组件?
  9. hashmap 有什么破绽会导致他变慢?
  10. 如何给 hashmap 的 key 对象设计他的 hashcode?
  11. 泛型通配符? 在什么状况下应用?
  12. 后端方面:redis? 分布式框架 dubbo(阿里巴巴开源框架)? 设计模式?
  13. 场景式的问题: 秒杀, 能列出常见的排队、验证码、库存扣减形式对系统高并发的影响?
  14. 能依据理论的须要构建缓存构造进步进步网站的访问速度,纯熟应用 ehcache、oscache,理解 memcache。
  15. 理解基于 dns 轮询的负载平衡,纯熟配置 web 服务器实现负载平衡,程序级能综合应用基于 hash 或取模等伎俩实现软负载。
  16. 相熟分布式数据库设计和优化技术,纯熟应用 mysql、oracle、SqlServer 等支流数据库,相熟 hadoop hbase mangodb redis ehcache、oscache memcache。对于大数据量的数据库解决采纳分表分库、数据库读写拆散、建设缓存等伎俩优化性能。
  17. 熟练掌握 lucene,能基于 lucene 开发大型的搜索引擎,并能用 lucene 来改善和优化数据库的 like 查问。

四、JAVA 方向技术考察点 (补充):

  1. 把握 Java 编程语言,蕴含 io/nio/socket/multi threads/collection/concurrency 等性能的应用;
  2. 熟练掌握 jvm(sun hotspot 和 ibm j9)内存模型、gc 垃圾回收调优等技能;
  3. 精通 JVM,JMM,MVC 架构,纯熟应用 struts2。
  4. 纯熟应用 spring、struts、ibatis 构建利用零碎。
  5. 纯熟应用 Servlet,jsp,freemark 等前端技术。
  6. 纯熟应用 axis 搭建基于 SOAP 协定的 WebService 服务接口。
  7. 纯熟应用 MAVEN 构建我的项目工程。
  8. 纯熟应用 tomcat 等 web 服务。
  9. 纯熟应用 mysql 等关系型数据库,相熟 mysql 集群搭建。
  10. 纯熟应用 redis 等 NOSQL 技术。
  11. 相熟 tcp、http 协定。
  12. 相熟 nginx、haproxy 等配置。
  13. 相熟 javascript、ajax 等技术。
  14. 相熟支流分布式文件系统 FastDFS 等。
  15. 相熟 JMS,可纯熟应用 ActiveMQ。
  16. 底层计算机了解内存治理 / 数据挖掘零碎
  17. 可靠性和可用性如何了解~
  18. jsp 和 sever lap 比照
  19. 数据库到界面,字符集转化
  20. 基栈
  21. jvm 优化 cup 高的时候如果剖析和监控
  22. java curb 突出细节问题
  23. 分布式缓存文档如何分流
  24. 迁徙数据库垂直宰割
  25. 高并发如何解决前端高并发应用层
  26. LB 设计 load balance
  27. 负载平衡
  28. 防网络攻击
  29. 数据日志事件监控后告诉
  30. 数据库事务实现的底层机制
  31. 字符串空格输出的网络攻击
  32. Quartz 框架的底层原理
  33. 数据库同步中不通过数据库引擎间接读日志等形式同步数据

五、我的项目局部

  1. 缓存的应用,如果当初须要实现一个简略的缓存,供搜寻框中的 ajax 异步申请调用,应用什么构造?
  2. 内存中的缓存不能始终存在,用什么算法定期将搜寻权重较低的 entry 去掉?
  3. TCP 如何保障安全性
  4. 红黑树的问题,B+ 数
  5. JDK1.8 中对 HashMap 的加强,如果一个桶上的节点数量过多,链表 + 数组的构造就会转换为红黑树。
  6. 我的项目中应用的单机服务器,如果将它部署成分布式服务器?
  7. MySQL 的常见优化形式、定为慢查问
  8. 手写一个线程平安的单例模式

六、进阿里必会常识:

  1. 算法和数据结构数组、链表、二叉树、队列、栈的各种操作(性能,场景)
  2. 二分查找和各种变种的二分查找
  3. 各类排序算法以及复杂度剖析(快排、归并、堆)
  4. 各类算法题(手写)
  5. 了解并能够剖析工夫和空间复杂度。
  6. 动静布局(口试回回有。。)、贪婪。
  7. 红黑树、AVL 树、Hash 树、Tire 树、B 树、B+ 树。
  8. 图算法(比拟少,也就两个最短门路算法了解吧)
  9. 计算机网络 OSI7 层模型(TCP4 层)每层的协定
  10. url 到页面的过程
  11. HTTPhttp/https 1.0、1.1、2.0
  12. get/post 以及幂等性
  13. http 协定头相干
  14. 网络攻击(CSRF、XSS)
  15. TCP/IP 三次握手、四次挥手
  16. 拥塞管制(过程、阈值)
  17. 流量管制与滑动窗口
  18. TCP 与 UDP 比拟
  19. 子网划分(个别只有口试有)
  20. DDos 攻打
  21. (B)IO/NIO/AIO 三者原理,各个语言是怎么实现的
  22. Netty
  23. Linux 内核 select poll epoll
  24. 数据库(最多的还是 mysql,Nosql 有 redis)索引(包含分类及优化形式,生效条件,底层构造)
  25. sql 语法(join,union,子查问,having,group by)
  26. 引擎比照(InnoDB,MyISAM)
  27. 数据库的锁(行锁,表锁,页级锁,意向锁,读锁,写锁,乐观锁,乐观锁,以及加锁的 select sql 形式)
  28. 隔离级别,顺次解决的问题(脏读、不可反复读、幻读)
  29. 事务的 ACID
  30. B 树、B+ 树
  31. 优化(explain,慢查问,show profile)
  32. 数据库的范式。
  33. 分库分表,主从复制,读写拆散。
  34. Nosql 相干(redis 和 memcached 区别之类的,如果你相熟 redis,redis 还有一堆要问的)
  35. 操作系统:过程通信 IPC(几种形式),与线程区别
  36. OS 的几种策略(页面置换,过程调度等,每个外面有几种算法)
  37. 互斥与死锁相干的
  38. linux 常用命令(问的时候都会给具体某一个场景)
  39. Linux 内核相干(select、poll、epoll)
  40. 编程语言(这里只说 Java):把我之后的面通过一遍,Java 感觉笼罩的就差不多了,不过上面还是分个类。
  41. Java 根底(面向对象、四个个性、重载重写、static 和 final 等等很多货色)
  42. 汇合(HashMap、ConcurrentHashMap、各种 List,最好联合源码看)
  43. 并发和多线程(线程池、SYNC 和 Lock 锁机制、线程通信、volatile、ThreadLocal、CyclicBarrier、Atom 包、CountDownLatch、AQS、CAS 原理等等)
  44. JVM(内存模型、GC 垃圾回收,包含分代,GC 算法,收集器、类加载和双亲委派、JVM 调优,内存透露和内存溢出)
  45. IO/NIO 相干
  46. 反射和代理、异样、Java8 相干、序列化
  47. 设计模式(罕用的,jdk 中有的)
  48. Web 相干(servlet、cookie/session、Spring)

七、面试技巧

1、答非所问:

感觉到答案说进去对方会不待见的时候,能够这么做:有关联性的答非所问,留神强调本人的想法,争取让面试官可能共情,比方深圳的房价能够引人共情、电商相干的大平台、稳固、有回升空间等。

2、面试的状态很重要:

两个例子,上月一个胜利 offer 的候选人,非互联网背景,公司也不是一线的,然而面试时体现出对阿里很强烈的趣味,HR 预先顺便向咱们提到,对这位候选人印象很粗浅;

另一位明天刚挂的候选人,两轮技术都是一举拿下,最初 HR 面挂了,HR 给咱们的反馈是,候选人刚从本人的守业公司到职,貌似情绪很高涨,对本人也没什么想法。

综上所述,面试时既不要气宇轩昂,过于被动,也不要过于夸大,而是在于展示本人对一个不错机会的尊重和争取,让面试官感觉你对他们,对这个岗位有很大的趣味。

答案获取,请关注公众号【不止于编程】,回复:阿里巴巴面试

近 300 页文档,图文并茂,还请你点个赞????

正文完
 0