目录
前言
不论是校招还是社招都避免不了各种⾯试、笔试,如何去准备这些东⻄就显得格外重要,之前8月底阿里的人事部门打电话叫我要不要面试,当时正处于换工作的期间,于是就把简历发给阿里hr,人事审核后经过一些列面试、机试,最终顺利拿到了offer,出于未来职业规划的考量,本人手里还有其他的一些offer,还没有定下来,顺便在此分享一下我面试阿里的一些经验以及面试题总结的分享!
一、多线程
- 多线程有什么用?
- 线程和进程的区别是什么?
- 一个线程的生命周期有哪几种状态?它们之间如何流转的?
- 多线程同步有哪几种方法?
- 线程怎样拿到返回结果?
- 线程 yield()方法有什么用?
- 什么是 CAS 算法?在多线程中有哪些应用。
- ThreadLocal 是什么?有什么应用场景?
- 为什么你应该在循环中检查等待条件?
- 提交任务时线程池队列已满会时发会生什么?
- Java 中 notify 和 notifyAll 有什么区别?
- Java 中堆和栈有什么不同?
- 你如何在 Java 中获取线程堆栈?
二、MySQL
- MySQL 中有哪几种锁?
- 简述在MySQL 数据库中 MyISAM 和InnoDB 的区别
- CHAR 和VARCHAR 的区别?
- 如果一个表有一列定义为TIMESTAMP,将发生什么?
- BLOB 和TEXT 有什么区别?
- NOW()和 CURRENT_DATE()有什么区别?
- MySQL 里记录货币用什么字段类型好
- MySQL 数据库作发布系统的存储,一天五万条以上的增量, 预计运维三年,怎么优化?
- 索引的底层实现原理和优化
- 实践中如何优化 MySQL
- 简单描述 MySQL 中,索引,主键,唯一索引,联合索引
- SQL 注入漏洞产生的原因?如何防止?
- 为表中得字段选择合适得数据类型
- 对于关系型数据库而言,索引是相当重要的概念,请回答
- SQL 语言包括哪几部分?每部分都有哪些操作关键字?
- 完整性约束包括哪些?
三、Java虚拟机
- 我们开发人员编写的Java代码是怎么让电脑认识的
- 为什么说java是跨平台语言
- Jdk和Jre和JVM的区别
- 说一下 JVM由那些部分组成,运行流程是什么
- 详细的介绍下程序计数器?(重点理解)
- 详细介绍下Java虚拟机栈?(重点理解)
- 你能给我详细的介绍Java堆吗?(重点理解)
- 能不能解释一下方法区(重点理解)
- 什么是JVM字节码执行引擎
- 你听过直接内存吗?
- 堆栈的区别是什么?
- Java会存在内存泄漏吗?请说明为什么?
- 简述Java垃圾回收机制
- GC是什么?为什么要GC
- 垃圾回收器的原理是什么?有什么办法手动进行垃圾回收?
- 怎么判断对象是否可以被回收?
- 对象什么时候可以被垃圾器回收
- 讲一下新生代、老年代、永久代的区别
- 为什么新生代要分Eden和两个 Survivor 区域?
- 什么是垃圾回收器他和垃圾算法有什么区别
- 新生代垃圾回收器和老年代垃圾回收器都有哪些?有什么区别?
- 简述java内存分配与回收策率以及Minor GC和Major GC
四、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 有没有 goto
- fifinal fifinally fifinalize区别
- this关键字的用法
- super关键字的用法
- static存在的主要意义
- static应用场景
- 在 Java 中,如何跳出当前的多重嵌套循环
面向对象
- 面向对象和面向过程的区别
- 面向对象的特征有哪些方面
- 什么是多态机制?Java语言是如何实现多态的?
- 面向对象五大基本原则是什么(可选)
- 普通类和抽象类有哪些区别?
- 创建一个对象用什么关键字?对象实例与对象引用有何不同?
- 成员变量与局部变量的区别有哪些
- 在Java中定义一个不做事且没有参数的构造方法的作用
- 一个类的构造方法的作用是什么?若一个类没有声明构造方法,改程序能正确 执行吗?为什么?
- 静态方法和实例方法有何不同?
- 什么是方法的返回值?返回值的作用是什么?
五、Java核心知识点整理
- JVM
- JAVA集合
- Java多线程并发
- Java基础
- spring原理
- 微服务
- Netty 与 RPC
- 网络
- 日志
- Zookeeper
- Kafka
- RabbitMQ
- Hbase
- MongoDB
- Cassandra
- 设计模式
- 负载均衡
- 数据库
- 一致性算法
- Java算法
- 数据结构
- 加密算法
- 分布式缓存
- Hadoop
- Spark
- Storm
- YARN
- 机器学习
- 云计算
六、mybatis源码分析
- mybatis入门
- mybatis是什么?
- 为什么要使用mybatis
- 如何使用mybatis
- 配置文件解析过程
- 映射文件解析过程
- mapper接口绑定过程分析
- 出来为完成解析的节点
- SQL持续流程
- SQL执行入口
- 执行代理逻辑
- 查询语句的执行流程
- selectOne方法分析
- #{}占位符的解析与参数的设置过程梳理
- 更新语句的执行过程
- 更新语句执行过程全貌
- 内置数据源初始化过程
- PooledDataSource
- 缓存类介绍
- 一级缓存
- 二级缓存
- 插件机制
- 插件机制原理
- 植入插件逻辑
- 实现一个分页插件
文章到这里就结束了!
2020马上就要过去了,上面的面试题及答案小编以及整理成文档 ,还有一些微服务、SSM、 Redis、等技术真题资料,需要领取的小伙伴可以 点我 免费领取 ,在这里小编祝福想去大厂面试的同学,旗开得胜,offer拿到手抽筋。