前言
年前由于公司问题,不得已离职然后找工作,在这里记录下面试过程中的一些题,因为我记性又不好,所以赶紧记录下,这样以后还可以再来看一下。先简单介绍下个人情况:普通二本,毕业三年,坐标上海,面试Java,自我定位中级。具体面试的公司就不说明了,这里把印象比较深的面试题给记录下。
Num1
- Spring是干什么的,为什么会有这个框架?(What,Why)
- 说下Spring的IOC和AOP,实际中用过AOP没,怎么用的,IOC的底层通过什么实现的?什么是反射?为什么有反射?有没有实际写过反射的例子?
- Spring的事务机制的一些属性,传播机制,隔离级别等;
- 分布式了解不?分布式理论晓得不?CAP相关?
- dubbo说一下,dubbo的实现原理?
- Spring boot用过没,和Spring区别有哪些?Spring Cloud用过没,原理?Spring Cloud和Dubbo区别?适用场景说下。
- 数据库的优化做过哪些?Mysql的索引,B+树能简单说下么?
- HashMap的实现原理。
项目相关:
- 在公司都是负责哪些模块,该模块做什么,用哪些技术;项目组多少人,担任的职位;公司的开发流程,需求的评审怎么做。两家公司的开发流程各有什么优缺点,有什么可以改进的;
- 各项目组之间如何对接工作,与其他对接的项目组或部门,对接中有什么问题,如何解决的;
- 有没有带过团队,有没有带过新人。带新人/团队都是做什么,有什么问题,如何解决。
Num2
- 在公司负责什么模块,该模块是做什么的?
- 如果进行sql优化,从哪几个方面进行着手?
- 了解dubbo协议和hession协议么?
- 前端的一些问题(前端的基本都不会了)
- rocketmq适用过程中遇到过什么问题,怎么解决的,为什么会出现这些问题?
- redis适用时遇到过什么问题,如何解决的。
- jdk8的一些特性。
- dubbo的一些属性,@reference注解的一些主要参数说下。
Num3
- Spring的HTTP请求一个完整的请求流程,如何请求到一个具体的方法;
- Spring MVC哪些常用注解,@PathVarible与@RequestParam区别;
- 集合框架说下,Set/Map/List相关说下,HashMap实现原理,ArrayList实现原理;
- Spring FactoryBean作用,具体工作中哪里用到过;
- Mybatis常用标签,namespace作用,resultType与resultMap区别,添加对象之后如何获取id;Mybatis缓存说下;
- 内部类的几种形式,静态内部类和匿名内部类区别;
- 消息队列适用场景,有哪几种消息类型,点对点与订阅发布区别;
- 项目如何发布,maven相关说下,maven命令,maven发布流程,ependencies与dependencyManagement的区别;pom常用标签,打包类型除了常用的war,jar,还有什么;
- Spring如何加载一个bean,A引用B,B引用A,Spring如何加载这两个bean;
- http协议说下,握手机制说下,restful各个请求类型区别;
- 最大并发量多少,并发相关问题及解决方式;
- 用过哪些git命令;
Num4
- 用过哪些git命令,git cherry-pick,git rebase用过没;
- 个人技术方面的优势/劣势;
- synchronized使用过没,底层如何实现的;
- redis实际中用在了哪些地方,适用于哪些场景?遇到过什么问题?
- Spring的aop及ioc说一下;
- mybatis的缓存说下;
- dubbo实现原理,接口如何反射到具体的实现上,如何实现 一个接口多个实现;
- Thread/Runnable区别,Thread的wait/sleep区别;
- HashMap的put过程,ConcurrentHashMap的简单实现;锁的一些分类,什么是可重入锁,哪些是可重入锁;
- volatile说一下;
- Dubbo与Zookeeper关系,如何注册到Zookeeper,实现原理?Zookeeper多节点,负载均衡怎么做?
- 线程池相关,线程池的几个属性,创建方式;
- 数据结构掌握的如何,红黑树/平衡树/B树区别,实现原理简单说下,HashMap中红黑树如何保持平衡;
- 接触过最大并发量,如何处理并发;
- redis是单线程还是多线程,单线程的话如何保证每秒10万+次操作;
- 分布式简单说下;