关于java:2020阿里Java面试题目大汇总看看你离阿里还有多远附答案

38次阅读

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

前言

首先说一下状况,我大略我是从去年 12 月份开始看书学习,到往年的 6 月份,始终学到看大家的面经基本上百分之 90 以上都会,我就在 5 月份开始投简历,边面试边补充基础知识等。也是有些辛苦。终于是在前不久拿到了阿里的 offer,定级 P7。当初我把我面试经验的货色整理出来分享给大家,心愿对大家有所帮忙!(文末附答案

一:阿里技术一面

  • 罕用的异样类型?
  • session
  • java 锁
  • gc 原理
  • hashmap
  • listlink arraylist 区别
  • aop 原理
  • 多线程
  • kafka 原理和容错
  • spark hadoop 原理
  • redis 同步机制
  • classLoader 机制
  • Http 协定
  • cookie 的限度
  • 如何设计一个分步式登录零碎?
  • Spring 加载过程?
  • 本人有没有写过相似 Spring 这样的 AOP 事务?
  • spring 的加载过程?
  • atomic 与 volatile 的区别?
  • Thread 的 notify()给 notifyAll()的区别?
  • notifiy()是唤醒的那一个线程?
  • Thread.sleep()唤醒当前是否须要从新竞争?
  • 单例有多少种写法? 有什么区别? 你罕用哪一种单例,为什么用这种?
  • 问一个 Thread.join()相干的问题?
  • 写一个 JAVA 死锁的列子?
  • 如何解决死锁?
  • GC 回收算法, 及实现原理?
  • HashMap 数据存储构造? key 反复了怎么办? 是如何解决的?
  • Spring AOP 的实现原理,底层用什么实现的?

我把这些都整顿成了一份文档,如下

阿里技术二面(技术原理、集体善于的我的项目)

重点是面试技术原理,以及对技术的激情和专研水平:

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

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

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

进阿里必会常识:

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

阿里面试题目领域:

  • 内存模型
  • 类加载机制
  • GC
  • JVM 调优
  • 线程池原理
  • 动静代理
  • 乐观锁乐观锁
  • 高并发问题
  • 事务隔离级别
  • 索引原理
  • 限流
  • 分库分表
  • 分布式事务提交
  • 微服务
  • dubbo 原理

最初以上所有面试题以及面试纲要我都整顿成了文档如下

还有对于大厂面试我想说的是心态真的很重要,是决定你在面试过程中施展的要害,若不能失常施展,很可能就因为一个小失误与 offer 失之交臂,所以肯定要器重起来。另外揭示一点,充沛温习,是打消你缓和的心理状态的要害,但你温习充沛了,天然面试过程中就要有底气得多,而后想要获取以上所有文档的能够关注我的公众号:前程有光 收费支付到,我只心愿这份文档能对你的面试有所帮忙,帮忙你拿下心仪的 offer

正文完
 0