Java 面试应该看些什么
最近看到一篇文章很nice,在此记录下 ❥(^_-)
本文将会从6个方面去介绍 Java 方向的高频面试点。
Java 语言基础
基础语法:抽象类和接口的区别、Java 中的泛型是怎么实现的、怎样判断两个 Java 对象是相等的等等类似的问题
容器相关的面试:List、Set、Map三者的区别、ArrayList和LinkedList 之间的区别、ArrayList的扩容机制、HashMap是线程安全的吗?为什么呢?、HashTable是线程安全的吗?它是怎样实现线程安全的?、JDK1.8之前和之后,HashMap的底层实现发生了哪些变化呢?、我需要一个线程安全的Map,你会选择使用什么?为什么?你是从哪些方面考虑的呢?
并发编程相关的面试:谈一谈Java中的锁机制、你用过哪些并发容器,说一说它们的特性、Java提供了一些原子类,它们都是以Atomic开头,你知道它们是怎么实现的吗?、线程池的参数以及每个参数的含义,它们对线程池产生怎样的影响、JDK中提供了哪几类线程池,它们各自有什么样的适用场合?
JVM相关的面试:谈一谈JVM中内存区域是怎样划分的,每一块内存区域中存储的是什么、JVM垃圾回收有几种方式,谈一谈你是怎样理解的、类加载器和类加载过程
MySQL 相关的知识点面试
MySQL一共提供了四种事务隔离级别,说一说它们各自的优缺点。我们平时使用的是哪一种事务隔离级别呢?为什么?(先搞清楚你现在用的是哪个版本的MySQL)
谈一谈你对事务的理解,我们日常的工作中在什么情况下需要使用事务?怎样在MySQL中开启和提交事务?
你理解索引吗?它是怎样构造的?索引具有哪些特性(你能说出来几种)?(这里需要特别注意,需要先说清楚你使用的是哪一种存储引擎)
你遇到过慢查询吗?是怎样定位慢查询的?又是怎样优化的呢?
Redis相关的知识点面试
我们常说Redis是单进程单线程的,但是它为什么还会这么快呢?你知道这是为什么吗?(从Redis IO模型的角度出发去解释)
Redis支持哪些数据结构,你平时都是怎样使用的?
Redis的过期机制是怎样实现的?
Redis支持哪两种持久化机制,它们各自有哪些优缺点?
Kafka相关的知识点面试
把Kafka中的名词解释一下,例如:Topic、Partition、Consumer、Producer、Group等等
你平时在工作中是怎样使用Kafka的?
Kafka的容灾机制
对于丢失消息、重复发送、重复消费这样的问题,你有怎样的解决办法?
Spring相关的知识点面试
Spring中的bean作用域与生命周期
我不清楚Spring中的IOC和AOP是什么,你能给我说清楚吗?
谈一谈Spring容器启动的过程
对于SpringBoot和SpringCloud来说,一定要能说清楚框架特性,例如SpringBoot中的配置文件是怎样加载的,规则是怎样的?自动配置是怎么实现的?等等;SpringCloud中提供了哪些组件,Eureka、Zuul、Ribbon、Feign、Hystrix,它们是什么,起到了什么样的作用,简单的说一说它们各自的实现原理与特性。
项目相关的知识点面试
不要在简历上写的太过详细,简单写一写这个项目是什么、包含什么样的功能、你在其中是个怎样的角色
你做的工作中有什么样的亮点吗?体现在哪些方面呢?(例如:性能优化或者重构),没有的话问题也不大
最核心的点,要能够说清楚这个项目的故事,项目的背景、框架技术选型、开发过程、开发周期、上线、运维等等,这个要提前花大量的时间准备好
面试官可能会对你的业务作出一些临时修改,并让你重新设计或者优化,这个考察的难度比较高,可以适当的准备
最后,不同的面试官有不同的喜好和擅长的地方,多去面试,掌握面试技巧非常重要。祝各位同学学习进步,工作顺利,都能找到一份称心如意的刚工作!
作者:张勤一
链接:https://www.imooc.com/article/295672
来源:慕课网
本文原创发布于慕课网 ,转载请注明出处,谢谢合作