前言

不论是校招还是社招都避免不了各种⾯试、笔试,如何去准备这些东⻄就显得格外重要,之前8月底阿里的人事部门打电话叫我要不要面试,当时正处于换工作的期间,于是就把简历发给阿里hr,人事审核后经过一些列面试、机试,最终顺利拿到了offer,出于未来职业规划的考量,本人手里还有其他的一些offer,还没有定下来,顺便在此分享一下我面试阿里的一些经验以及面试题总结的分享!

一、多线程

  • 多线程有什么用?
  • 线程和进程的区别是什么?
  • 一个线程的生命周期有哪几种状态?它们之间如何流转的?
  • 多线程同步有哪几种方法?
  • 线程怎样拿到返回结果?
  • 线程 yield()方法有什么用?
  • 什么是 CAS 算法?在多线程中有哪些应用。
  • ThreadLocal 是什么?有什么应用场景?
  • 为什么你应该在循环中检查等待条件?
  • 提交任务时线程池队列已满会时发会生什么?
  • Java 中 notify 和 notifyAll 有什么区别?
  • Java 中堆和栈有什么不同?
  • 你如何在 Java 中获取线程堆栈?

工作三年!全靠大佬的Java笔记,年底跳槽阿里涨了10K

二、MySQL

  • MySQL 中有哪几种锁?
  • 简述在MySQL 数据库中 MyISAM 和InnoDB 的区别
  • CHAR 和VARCHAR 的区别?
  • 如果一个表有一列定义为TIMESTAMP,将发生什么?
  • BLOB 和TEXT 有什么区别?
  • NOW()和 CURRENT_DATE()有什么区别?
  • MySQL 里记录货币用什么字段类型好
  • MySQL 数据库作发布系统的存储,一天五万条以上的增量, 预计运维三年,怎么优化?
  • 索引的底层实现原理和优化
  • 实践中如何优化 MySQL
  • 简单描述 MySQL 中,索引,主键,唯一索引,联合索引
  • SQL 注入漏洞产生的原因?如何防止?
  • 为表中得字段选择合适得数据类型
  • 对于关系型数据库而言,索引是相当重要的概念,请回答
  • SQL 语言包括哪几部分?每部分都有哪些操作关键字?
  • 完整性约束包括哪些?

工作三年!全靠大佬的Java笔记,年底跳槽阿里涨了10K

三、Java虚拟机

  • 我们开发人员编写的Java代码是怎么让电脑认识的 
  • 为什么说java是跨平台语言
  • Jdk和Jre和JVM的区别
  • 说一下 JVM由那些部分组成,运行流程是什么
  • 详细的介绍下程序计数器?(重点理解) 
  • 详细介绍下Java虚拟机栈?(重点理解)
  • 你能给我详细的介绍Java堆吗?(重点理解)
  • 能不能解释一下方法区(重点理解) 
  • 什么是JVM字节码执行引擎
  • 你听过直接内存吗?
  • 堆栈的区别是什么?
  • Java会存在内存泄漏吗?请说明为什么? 
  • 简述Java垃圾回收机制
  • GC是什么?为什么要GC
  • 垃圾回收器的原理是什么?有什么办法手动进行垃圾回收?
  • 怎么判断对象是否可以被回收?
  • 对象什么时候可以被垃圾器回收 
  • 讲一下新生代、老年代、永久代的区别
  • 为什么新生代要分Eden和两个 Survivor 区域?
  • 什么是垃圾回收器他和垃圾算法有什么区别
  • 新生代垃圾回收器和老年代垃圾回收器都有哪些?有什么区别?
  • 简述java内存分配与回收策率以及Minor GC和Major GC

  工作三年!全靠大佬的Java笔记,年底跳槽阿里涨了10K

四、Java基础

  • 什么是Java
  • jdk1.5之后的三大版本
  • Jdk和Jre和JVM的区别
  • Java语言有哪些特点
  • 什么是字节码?采用字节码的最大好处是什么
  • Java应用程序与小程序之间有那些差别?
  • Java和C++的区别

基础语法

  • Java有哪些数据类型
  • 用最有效率的方法计算 2 乘以 8
  • Math.round(11.5) 等于多少?Math.round(-11.5)等于多少
  • short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗
  • 访问修饰符 public,private,protected,以及不写(默认)时的区别

工作三年!全靠大佬的Java笔记,年底跳槽阿里涨了10K

关键字

  • &和&&的区别
  • Java 有没有 goto
  • fifinal fifinally fifinalize区别
  • this关键字的用法
  • super关键字的用法
  • static存在的主要意义
  • static应用场景
  • 在 Java 中,如何跳出当前的多重嵌套循环

面向对象

  • 面向对象和面向过程的区别
  • 面向对象的特征有哪些方面
  • 什么是多态机制?Java语言是如何实现多态的?
  • 面向对象五大基本原则是什么(可选)
  • 普通类和抽象类有哪些区别?
  • 创建一个对象用什么关键字?对象实例与对象引用有何不同?
  • 成员变量与局部变量的区别有哪些
  • 在Java中定义一个不做事且没有参数的构造方法的作用
  • 一个类的构造方法的作用是什么?若一个类没有声明构造方法,改程序能正确 执行吗?为什么?
  • 静态方法和实例方法有何不同?
  • 什么是方法的返回值?返回值的作用是什么?

工作三年!全靠大佬的Java笔记,年底跳槽阿里涨了10K

五、Java核心知识点整理

  1. JVM
  2. JAVA集合
  3. Java多线程并发
  4. Java基础
  5. spring原理
  6. 微服务
  7. Netty 与 RPC
  8. 网络
  9. 日志
  10. Zookeeper
  11. Kafka
  12. RabbitMQ
  13. Hbase
  14. MongoDB
  15. Cassandra
  16. 设计模式
  17. 负载均衡
  18. 数据库
  19. 一致性算法
  20. Java算法
  21. 数据结构
  22. 加密算法
  23. 分布式缓存
  24. Hadoop
  25. Spark
  26. Storm
  27. YARN
  28. 机器学习
  29. 云计算

工作三年!全靠大佬的Java笔记,年底跳槽阿里涨了10K

六、mybatis源码分析

  • mybatis入门
  • mybatis是什么?
  • 为什么要使用mybatis
  • 如何使用mybatis
  • 配置文件解析过程
  • 映射文件解析过程
  • mapper接口绑定过程分析
  • 出来为完成解析的节点
  • SQL持续流程
  • SQL执行入口
  • 执行代理逻辑
  • 查询语句的执行流程
  • selectOne方法分析
  • #{}占位符的解析与参数的设置过程梳理
  • 更新语句的执行过程
  • 更新语句执行过程全貌
  • 内置数据源初始化过程
  • PooledDataSource
  • 缓存类介绍
  • 一级缓存
  • 二级缓存
  • 插件机制
  • 插件机制原理
  • 植入插件逻辑
  • 实现一个分页插件

工作三年!全靠大佬的Java笔记,年底跳槽阿里涨了10K

文章到这里就结束了! 

2020马上就要过去了,上面的面试题及答案小编以及整理成文档 ,还有一些微服务、SSM、 Redis、等技术真题资料,需要领取的小伙伴可以关注公众号:麒麟改bug 领取,在这里小编祝福想去大厂面试的同学,旗开得胜,offer拿到手抽筋。