阿里巴巴java面试题及答案(2020年6月份)

aishangjava aishangjava     2022-12-01     249

关键词:

本月去面试了阿里的Java研发岗位,并且成功拿到了offer!

今天为大家整理了阿里巴巴最新的Java面试题以及参考答案,文中涉及大量Java面试知识点和相关试题。

博主已经把以下这些Java面试知识点和相关试题及参考答案整理成了一份PDF的文档,并且已经上传到百度云了,文末附文档的百度云链接,大家自行获取即可。

技术图片

一、阿里技术一面

  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给我们的反馈是,候选人刚从自己的创业公司离职,貌似情绪很低落,对自己也没什么想法。

综上所述,面试时既不要唯唯诺诺,过于被动,也不要过于夸张,而是在于展现自己对一个不错机会的尊重和争取,让面试官觉得你对他们,对这个岗位有很大的兴趣。

八、注意事项

1、阿里比绝大部分公司更看重情怀和梦想

阿里的八字箴言:乐观、聪明、皮实、自省

2、阿里里面的HR都是懂业务的,会结合对候选人的判断和业务的把控进行筛选,不要忽悠他们.......

相信自己,没有做不到的,只有想不到的。

PDF文档百度云链接:

链接: https://pan.baidu.com/s/1plWDz9aJJs14PyXzW0AraA

提取码: d5ej

java面试题及答案2020java最新面试题及答案2020一(代码片段)

java最新面试题及答案20201.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?一个“.java”源文件里面可以包含多个类,但是只允许有一java最新面试题及答案个public类,并且类名必须和文件名一致。每... 查看详情

java面试题及答案2020,java面试题汇总,java最新面试题及答案2020四

java最新面试题及答案2020面试题汇总之并发锁并发,锁1.volatile关键字,Lock并发编程中:原子性问题,可见性问题,有序性问题。volatile关键字能保证可见性,字能禁止指令重排序,但是不能保证原子性。可见性只能保证每次读取... 查看详情

java面试题及答案2020java最新面试题及答案2020一(代码片段)

java最新面试题及答案20201.一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?一个“.java”源文件里面可以包含多个类,但是只允许有一java最新面试题及答案个public类,并且类名必须和文件名一致。每... 查看详情

java面试题及答案2020_java面试题答案1(代码片段)

java面试题及答案2020持续更新。。本文收集了一些经典的Java面试题及其答案1、面向对象的特征有哪些方面?答:面向对象的特征主要有以下几个方面:抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象... 查看详情

2022年腾讯,阿里,美团等android高频面试题及答案,知识脉络整理(代码片段)

前言这篇文章非常的干!覆盖了安卓面试的大多数知识点,值得收藏反复查看!安逸久了就容易迷失方向,多看看高质量的面试题找找差距,然后查漏补缺!##问题区:1.Activity的启动过程,AMS、PMS... 查看详情

java程序员面试题大全含答案(2018--2019)

java程序员面试题大全含答案(2018--2019)1、10道经典java面试题_实习生必问!2、15个Java线程并发面试题和答案3、15个高级Java多线程面试题及回答4、2018年java分布式相关最新面试题5、2018最新java技术面试题与答案6、4个Spring常见面... 查看详情

阿里p7面试题及答案

Java多线程线程池的原理,为什么要创建线程池?线程的生命周期,什么时候会出现僵死进程;什么实现线程安全,如何实现线程安全;创建线程池有哪几个核心参数?如何合理配置线程池的大小?synchronized、volatile区别、synchroni... 查看详情

java面试题及答案,pymysql连接mysqlport

为什么阿里巴巴的持久层抛弃hibernate,采用MyBatis框架?原因大概有以下4点:尤其是需要处理大量数据或者大并发情况的网站服务,这也阿里选择MyBatis的原因。MyBatis整体架构不多讲,先看目录图MyBatis源码笔记... 查看详情

2021最新阿里java高级面试题及答案,大厂面试题汇总(代码片段)

什么是数据脱敏先来看看什么是数据脱敏?数据脱敏也叫数据的去隐私化,在我们给定脱敏规则和策略的情况下,对敏感数据比如手机号、银行卡号等信息,进行转换或者修改的一种技术手段,防止敏感数据... 查看详情

java最新面试题及答案2020(二十四)

java最新面试题2020一面手撕twosum代码,手撕归并排序,还有一个题忘了,我记得是用hashmap做讲一下Java垃圾回收分代回收各种算法Java内存结构Java堆存哪些数据讲一下四种引用Java语言的特性抽象,多态项目中一个模块具体实现hashm... 查看详情

java面试题及答案2020,java理论知识总结(代码片段)

异步复制MySQL的复制默认是异步的,主从复制至少需要两个MYSQL服务,这些MySQL服务可以分布在不同的服务器上,也可以在同一台服务器上。MySQL主从异步复制是最常见的复制场景。数据的完整性依赖于主库BINLOG的不丢... 查看详情

21年最新python面试题及答案汇总详解(上)(代码片段)

Python面试你做准备了吗?下面小千整理了一套2021年最新Python常见面试题目,及Python面试题目答案汇总。希望能够帮助到大家。21年最新Python面试题及答案汇总详解(上)1、列表(list)和元组(tuple)有什么区别?在我每一次... 查看详情

android面试题及答案整理(2022年最新android面试题大全带答案)(代码片段)

Android面试题及答案(2022年最新Android面试题大全带答案),发现网上很多Android面试题整理都没有答案,所以花了很长时间搜集,本套Android面试题大全,Android面试题大汇总,有大量经典的Android面试题以... 查看详情

java面试题及答案2020,安卓java编程软件app

一面(一个半小时)首先自我介绍了解Web层开发?数据库索引了解么?聚簇索引,非聚簇索引?索引分类?了解数据库都由哪些引擎?分别有什么区别和使用场景?了解分布式?高可用?... 查看详情

java面试题及答案2020,java最新面试题汇总

java面试题及答案2020三面、四面-2019/11/12合并N个有序数组,每个数组的长度为M,合并为N*M的有序数组,时间复杂度要求最低逻辑题:想象一个地球表面,飞机可以从机场正着飞,也可以逆着飞,每个飞机的油最多能飞半圈,飞机... 查看详情

java面试题及答案2020,java最新面试题汇总

java面试题及答案2020三面、四面-2019/11/12合并N个有序数组,每个数组的长度为M,合并为N*M的有序数组,时间复杂度要求最低逻辑题:想象一个地球表面,飞机可以从机场正着飞,也可以逆着飞,每个飞机的油最多能飞半圈,飞机... 查看详情

数据结构面试题及答案讲解:二叉树专题(上)(代码片段)

数据结构面试题及答案讲解:二叉树专题(上)本节目标1、求二叉树的最大深度。(2018年腾讯面试题)2、判断一个二叉树是否是高度平衡的二叉树。(2020年字节跳动面试真题)3、根据一棵树的前序遍历与中序遍历构造二叉树... 查看详情

java面试题及答案2020_java面试题答案1(代码片段)

java面试题及答案2020持续更新。。本文收集了一些经典的Java面试题及其答案1、面向对象的特征有哪些方面?答:面向对象的特征主要有以下几个方面:抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象... 查看详情