阿里 Java 社招面试真题 200+:缓存 + 分布式 +JVM+ 高并发 +NIO+ 框架

110 篇文章 2 订阅
63 篇文章 4 订阅

前言:

阿里可以说是互联网 java 公司的标杆了,这份面试题包含了 Java 基础(JavaSE 基础)常考知识点

这些基础知识题的答案也都还不错。除了这个还有集合 Hashtable/HashMap 等集合常考的面试题,这些问题一定要会,还有就是 JVM 知识点

JVM 包括运行区域划分/常考的 JVM 算法需要会等,除了这些就是计算机网络(TCP 的三次握手/四次挥手/http 常见状态码)(TCP 的三次握手/四次挥手/http 常见状态码/TCP 的一些重要特性/TCP/UDP 的区别等等等)

操作系统(常见的系统调度算法/select/epoll 的区别/线程进程的区别,要学会自己去理解到位)

数据库(mysql 的两种常见引擎的区别/索引的种类/索引的原理等等等)

Java 基础

  • String 类为什么是 final 的?

  • HashMap 的源码,实现原理,底层结构。

  • 反射中,Class.forName 和 classloader 的区别。

  • session 和 cookie 的区别和联系,session 的生命周期,多个服务部署时 session 管理。

  • Java 中的队列都有哪些,有什么区别。

  • Java 的内存模型以及 GC 算法。

  • Java7、Java8 的新特性。

  • Java 数组和链表两种结构的操作效率,在哪些情况下(从开头开始,从结尾开始,从中间开始),哪些操作(插入,查找,删除)的效率高。

  • Java 内存泄露的问题调查定位:jmap,jstack 的使用等等。

Java 面试题:Java 基础知识解析

Java 面试题:Java 基础知识解析


Spring 框架

  • spring 框架中需要引用哪些 jar 包,以及这些 jar 包的用途。

  • srpingMVC 的原理。

  • springMVC 注解的意思。

  • spring 中 beanFactory 和 ApplicationContext 的联系和区别。

  • spring 注入的几种方式。

  • spring 如何实现事物管理的。

  • springIOC 和 AOP 的原理。

  • spring 中循环注入的方式。

  • Spring AOP 与 IOC 的实现原理。

  • Spring 的 beanFactory 和 factoryBean 的区别。

  • Spring 的事务隔离级别,实现原理。

  • 对 Spring 的理解,非单例注入的原理?它的生命周期?循环注入的原理,aop 的实现原理,说说 aop 中的几个术语,它们是怎么相互工作的?

  • spring boot 特性,优势,适用场景等。

阿里面试题:spring 框架原理解析

阿里面试题:spring 框架原理解析


Java 多线程常见问题

  • Java 创建线程之后,直接调用 start()方法和 run()的区别。

  • 常用的线程池模式以及不同线程池的使用场景。

  • newFixedThreadPool 此种线程池如果线程数达到最大值后会怎么办,底层原理。

  • 多线程之间通信的同步问题,synchronized 锁的是对象,衍伸出和 synchronized 相关很多的具体问题,例如同一个类不同方法都有 synchronized 锁,一个对象是否可以同时访问。或者一个类的 static 构造方法加上 synchronized 之后的锁的影响。

  • 了解可重入锁的含义,以及 ReentrantLock 和 synchronized 的区别。

  • 同步的数据结构,例如 concurrentHashMap 的源码理解以及内部实现原理,为什么他是同步的且效率高?

  • atomicinteger 和 volatile 等线程安全操作的关键字的理解和使用。

  • 线程间通信,wait 和 notify。

阿里面试题:Java 多线程解析

阿里面试题:Java 多线程解析


网络通信

  • http 是无状态通信,http 的请求方式有哪些?可以自己定义新的请求方式么?

  • socket 通信,以及长连接,分包,连接异常断开的处理。

  • socket 通信模型的使用,AIO 和 NIO。

  • socket 框架 netty 的使用,以及 NIO 的实现原理,为什么是异步非阻塞?

  • 同步和异步,阻塞和非阻塞。

阿里面试题:网络通信方面解析

阿里面试题:网络通信方面解析


常用 Linux 命令

  • 常用的 linux 下的命令。

  • 大的 log 文件中,统计异常出现的次数、排序,或者指定输出多少行多少列的内容。

  • linux 下的调查问题思路:内存、CPU、句柄数、过滤、查找、模拟 POST 和 GET 请求等等场景。

  • shell 脚本。

数据库 MySql

  • MySql 的存储引擎的不同。

  • 单个索引、联合索引、主键索引。

  • Mysql 怎么分表,以及分表后如果想按条件分页查询怎么办(如果不是按分表字段来查询的话,几乎效率低下,无解)。

  • 分表之后想让一个 id 多个表是自增的,效率实现。

  • MySql 的主从实时备份同步的配置,以及原理(从库读主库的 binlog),读写分离。

  • 事物的四个特性,以及各自的特点(原子、隔离)等等,项目怎么解决这些问题。

阿里面试题:数据库反面解析:

阿里面试题:数据库反面解析:


算法 &数据结构 &设计模式

  • 使用随机算法产生一个数,要求把 1-1000W 之间这些数全部生成。(考察高效率,解决产生冲突的问题)。

  • 两个有序数组的合并排序。

  • 一个数组的倒序。

  • 计算一个正整数的正平方根。

  • 说白了就是常见的那些查找排序算法。

  • 数组和链表数据结构描述,各自的时间复杂度。

  • 二叉树遍历。

  • 快速排序。

  • BTree 相关的操作。

  • 在工作中遇到过哪些设计模式,是如何应用的。

  • hash 算法的有哪几种,优缺点,使用场景。

  • 什么是一致性 hash?

  • paxos 算法。

阿里面试题: Java 算法 &设计模式解析

阿里面试题: Java 算法

设计模式解析


分布式缓存

  • 为什么用缓存,用过哪些缓存,redis 和 memcache 的区别。

  • redis 的数据结构。

  • redis 的持久化方式,以及项目中用的哪种?为什么?

  • redis 集群的理解,怎么动态增加或者删除一个节点,而保证数据不丢失?(一致性哈希问题)

阿里面试题:分布式缓存解析

阿里面试题:分布式缓存解析


线程池、高并发、NIO

  • 分析线程池的实现原理和线程的调度过程。

  • 线程池如何调优。

  • 线程池的最大线程数目根据什么确定。

  • 动态代理的几种方式。

  • HashMap 的并发问题。

  • 了解 LinkedHashMap 的应用吗?

  • 反射的原理,反射创建类实例的三种方式是什么?

  • cloneable 接口实现原理,浅拷贝 or 深拷贝。

  • Java NIO 使用。

  • hashtable 和 hashmap 的区别及实现原理,hashmap 会问到数组索引,hash 碰撞怎么解决?

  • arraylist 和 linkedlist 区别及实现原理。

  • 反射中,Class.forName 和 ClassLoader 区别。

  • String,Stringbuffer,StringBuilder 的区别。

  • 有没有可能 2 个不相等的对象有相同的 hashcode。

  • 简述 NIO 的最佳实践,比如 netty,mina。

  • TreeMap 的实现原理。

Java 面试题:多线程并发分析

Java 面试题:多线程并发分析


JVM 相关(面试必考)

  • JVM 内存分代。

  • Java 8 的内存分代改进。

  • JVM 垃圾回收机制,何时触发 MinorGC 等操作。

  • jvm 中一次完整的 GC 流程(从 ygc 到 fgc)是怎样的,重点讲讲对象如何晋升到老年代,几种主要的 jvm 参数等。

  • 你知道哪几种垃圾收集器,各自的优缺点,重点讲下 cms,g1。

  • 新生代和老生代的内存回收策略。

  • Eden 和 Survivor 的比例分配等。

  • 深入分析了 Classloader,双亲委派机制。

  • JVM 的编译优化。

  • 对 Java 内存模型的理解,以及其在并发中的应用。

  • 指令重排序,内存栅栏等。

  • OOM 错误,stackoverflow 错误,permgen space 错误。

  • JVM 常用参数。

阿里面试:JVM 面试解析

阿里面试:JVM 面试解析


Redis&缓存相关

  • Redis 的并发竞争问题如何解决了解 Redis 事务的 CAS 操作吗?

  • 缓存机器增删如何对系统影响最小?一致性哈希的实现。

  • Redis 持久化的几种方式?优缺点是什么?怎么实现的?

  • Redis 的缓存失效策略。

  • 缓存穿透的解决办法。

  • redis 集群,高可用,原理。

  • mySQL 里有 2000w 数据,redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点数据。

  • 用 Redis 和任意语言实现一段恶意登录保护的代码,限制 1 小时内每用户 Id 最多只能登录 5 次。

  • redis 的数据淘汰策略。

阿里面试题Redis&缓存相关解析

阿里面试题:Redis&缓存相关解析


阿里面试宝典分享:

这一份阿里面试宝典,其中含括的知识点:VM、锁、高并发、反射、Spring 原理、微服务、Zookeeper、数据库、数据结构等等! 如果你刚好需要这样一份面试宝典的话!

 
小伙伴们有兴趣想了解内容和更多相关学习资料的请点赞收藏+评论转发+关注我,后面会有很多干货。

原文出处:xie.infoq.cn/article/82c0b9a96a9e032b669abd98c

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值