java架构面试锦集:开源框架+并发+数据结构+大企必备面试题

开源框架篇

Spring

解释AOP模块

解释JDBC抽象和DAO模块。

解释对象/关系映射集成模块。

解释WEB 模块。

Spring配置文件

什么是Spring IOC 容器?

IOC的优点是什么?

ApplicationContext通常的实现是什么?

一个Spring的应用看起来象什么?

什么是Spring的依赖注入?

有哪些不同类型的IOC(依赖注入)方式?

什么是Spring beans?

一个 Spring Bean 定义 包含什么?

如何给Spring 容器提供配置元数据?

你怎样定义类的作用域?

解释Spring支持的几种bean的作用域。

Spring框架中的单例bean是线程安全的吗?

解释Spring框架中bean的生命周期。

哪些是重要的bean生命周期方法? 你能重载它们吗?

什么是Spring的内部bean?

在 Spring中如何注入一个java集合?

什么是bean装配?

什么是bean的自动装配?

解释不同方式的自动装配 。

Spring工作机制及为什么要用?

说说AOP和IOC的概念以及在spring中是如何应用的?

Spring的事物有几种方式?谈谈spring事物的隔离级别和传播行为?

Spring的优点和缺点?

有几种不同类型的自动代理?

什么是织入。什么是织入应用的不同点?

解释基于XML Schema方式的切面实现。

解释基于注解的切面实现

MyBatis

Mybatis比IBatis比较大的几个改进是什么?

什么是MyBatis的接口绑定,有什么好处?

接口绑定有几种实现方式,分别是怎么实现的?

什么情况下用注解绑定,什么情况下用xml绑定?

MyBatis实现一对一有几种方式?具体怎么操作的?

MyBatis实现一对多有几种方式,怎么操作的?

MyBatis里面的动态Sql是怎么设定的?用什么语法?

IBatis和MyBatis在核心处理类分别叫什么?

IBatis和MyBatis在细节上的不同有哪些?

讲下MyBatis的缓存

MyBatis(IBatis)的好处是什么?

SpringMVC

SpringMvc的控制器是不是单例模式,如果是,有什么问题,怎么解决?

SpingMvc中的控制器的注解一般用那个,有没有别的注解可以替代?

@RequestMapping注解用在类上面有什么作用?

怎么样把某个请求映射到特定的方法上面?

如果在拦截请求中,我想拦截get方式提交的方法,怎么配置?

如果在拦截请求中,我想拦截提交参数中包含"type=test"字符串,怎么配置?

在拦截的方法里面得到从前台传入的参数,怎么得到?

如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象?

SpringMvc中函数的返回值是什么?

SpringMvc怎么处理返回值的?

SpringMVC怎么样设定重定向和转发的?

SpringMvc用什么对象从后台向前台传递数据的?

SpringMvc中有个类把视图和数据都合并的一起的,叫什么?

怎么样把ModelMap里面的数据放入Session里面?

SpringMvc怎么和AJAX相互调用的?

当一个方法向AJAX返回特殊对象,譬如Object,List等,需要做什么处理?

SpringMvc里面拦截器是怎么写的?

讲下SpringMvc的执行流程

手写SpringMVC框架

并发篇

什么是原子操作?在Java Concurrency API中有哪些原子类(atomic classes)?

Java Concurrency API中的Lock接口(Lock interface)是什么?对比同步它有什么优势?

什么是Executors框架?

什么是阻塞队列?如何使用阻塞队列来实现生产者-消费者模型?

什么是Callable和Future?

什么是FutureTask?

什么是并发容器的实现?

Executors类是什么?

数据结构篇

写出正确的链表算法,并实现LRU缓存淘汰算法

讲解ArrayList与LinkedList源码解析及应用场景

队列:线程池中有限资源请求队列排队功能的实现原理

栈:用户界面的前进跳转及回退机制如何实现?

HashMap 的实现原理是什么?

Java容器结构是什么?

谈谈树和二叉树的基本概念,以及huffman编码的手写实现?

如何理解二叉排序树及二叉平衡树原理及手写实现?

讲讲红黑树旋转理论及其应用?

如何存储微博、微信等社交网络中的好友关系?

如何规划从首都到全国各大城市的最快网络?

工程管理中如何寻找一种最快完成工程的方法?

排序算法的实现总结及性能对比,应用场景

索引算法:海量数据中快速查找某个数据是如何实现?

拓扑排序:如何确定代码源文件的编译依赖关系?

二分查找算法:猜数字游戏给我们留下的思考?

B+树:MySql数据库索引是如何实现的?

字符串匹配:你面试中经常被问到的String,它的字符匹配算法密码?

贪心算法:图片压缩中的Huffman算法如何用贪心算法进行实现?

大企必备面试题篇

HashMap底层执行原理

hashtable和ConcurrentHashMap如何实现线程安全?

jvm的内存布局,垃圾回收机制

类加载机制里的,双亲委派模型

阐述事务的隔离级别和传播属性

高并发下,如何做到安全的修改同一行数据?

A服务调用B服务多接口,响应时间最短方案

A系统给B系统转100块钱,如何实现?

动态代理的几种实现方式及优缺点

多线程下读概率远远大于写概率,如何解决并发问题?

按线程池内部机制,当提交新任务时,有哪些异常要考虑?

@Transaction注解一般写在什么位置?如何控制其回滚?

说说Spring的IOC容器初始化流程?

说说springboot启动机制

Redis高性能的原因大概可以讲一些?

你是怎么控制缓存的更新?(被动方式/主动方式/增量/全量)?

浅析Http和https的三次握手有什么区别

谈谈Session/cookie机制,如何实现会话跟踪?

什么是一致性hash?

MQ有可能发生重复消费,如何避免,如何做到幂等?

如何做限流策略,令牌桶和漏斗算法的使用场景?

总结

文章篇幅较长这些面试题主要是熟练自己的对框架的理解和应用还有源码阅读能力,数据结构与算法以及实际开发出现问题的总结能力,也算是一个面试重点,经验的积累也是面试成功一个重要因素,所以我们不要成为码农,而要成为一个优秀的程序员这才是我们努力的方向,做好规划,努力学习,记录总结。养成这样的习惯。

发布了91 篇原创文章 · 获赞 5 · 访问量 8117

猜你喜欢

转载自blog.csdn.net/yunduo1/article/details/104416442
今日推荐