今天下午接到阿里面试官的面试电话,这位哥们花费将近一个小时跟我唠叨,让小弟不胜感激,在这过程中收获挺大的,也知道了自己的很多不足,心里也有了一个奋斗的目标,特此记录一下阿里社招电话一面,面试官问到的一些问题,问题不分先后,因为问题有点多,想到哪个就记录哪个:
- 描述一下 Java8 哪些新特性?你是如何使用 Stream 流操作的?
- HashMap 和 HashSet 的底层实现原理
- Mybatis 如何防止 sql 穿透
- JVM 的内存模型
- 类加载机制
- Java 有那些同步机制?说一下 volatile 关键字
- Spring 的 PostProcessor 接口起到什么作用
- Spring 如何实现事务
- 如何在 Bean 对象中获取 ApllicationContext 上下文对象?
- Mysql 索引类型有多少种
- Mysql 索引的使用与优化
- Mybatis 是如何执行 sql 语句的
- JDBC 获取数据库连接的大概过程(从 getConnection 开始)
- PreparedStatement 和 Statement 区别
- Mybatis 的一些 API 接口,比如 SqlSession、sessionFactory 等等
- 动态代理有哪些?JDK 动态代理和 cglib 有什么不同?
- 为什么用 Spring data JPA 而不用 Mybatis(主要针对我的项目来问的)
- 请描述一下从浏览器输入一行请求 url 开始,SpringMVC 的整个处理过程
- 请求是先 Filter 还是先经过 Servlet?Servlet 处理完后,还会经过 Filter 吗?
- Java 线程有几种状态
- 说一下 sleep() 和 wait() 方法的区别
- 如何唤醒处于睡眠状体的线程
- 如何释放处于等待中的线程
- Executor 创建的线程池,有哪几种类型?
- Executor 创建线程池的构造方法的参数都有哪些?
- corePoolSize = 5,maximumPoolSize = 10,那么现在有4个任务同时进来,这时会创建几条线程?如果还没处理完又进来2个任务,此时又会创建几条线程还是不会创建?
- 还有哪些最原生最简单使用多线程的方法?
- new 一个对象都经历了那几个过程?(考反射)
- Java 的异常有哪几种?Throwble 的子类有哪些?
- 请问是不是每次连接数据库都创建一个连接?线程池你都有哪些了解?有接触过哪些线程池?
- 数据库联表查询时,左连接和右连接的区别
- 说说 Mysql 的四种事务隔离级别
- 你是通过什么方式进行学习的?
总结:面试过程中的问题都很随机,也很有针对性,主要看你的项目所涉及到的,以及你的回答继续深入提问的,面试官可能会根据你现在的回答情况,信手拈来问你这个回答涉及到的下一个问题。