java框架常见的面试题整理

最近本人要出去找工作了,来过一过学过的框架,嘿嘿~
根据招聘需求,捋一捋框架,嘿嘿~
注:此为本人整理,整理的不规范,尽请谅解

一. SSH (了解)

设为了解,没使用过,但招聘需求包含,咱得了解了解

基于MVC开发,分为表现层、业务逻辑层、数据访问层、模块层。用于短期环境搭建结构,web应用程序开源框架,市场上流行的框架有主要有SSH和SSM,相比较于SSH,SSM现在使用更多,但例如JSP,Servlet虽然这些都过时了,但相关思想作为这些框架的基础是不可撼动的!!!

二. SSM(包含spring,spring mvc,mybatis)

第一个S:为Spring
1. Spring是一个分层的javaSE/EEfull-stack(一站式)轻量级开源框架。
2. Spring为不同的层都提供企业级解决方案:
		web层:spring mvc
		service层:spring
		dao层:JDBCTemplate
3. Spring的核心思想是IOC(控制反转)和AOP(面向切面编程)
    扩展:(万一面试官不说话,冷场多尴尬,接着说吧。)__==
	IOC : 控制反转,不是技术,而是一种设计思想,将对象的创建权交给spring进行管理,降低代码耦合
	控制:传统javaSE程序设计,是new进行创建对象,而IOC是专门的容器来创建对象,即由IOC容器来控制对象的创建。
	反转:有反转就有正转,传统应用程序是由我们自己在对象中控制去直接获取对象,而反转则是由容器来帮忙创建及注入对象
	优点:
		1. 减少代码耦合性
		2. 增加代码复用率
		3. 资源更加统一管理
		4. 维护代码方式,只需要改配置文件
		5. 提高代码测试性
	AOP:面向切面编程,是一种编程思想,横切编程思想,在程序进行时,将代码切入到指定方法或位置,在不修改原有代码情况下,对原有业务进行增强,常用来日志管理(日志扩展:标准的日志要有一个门面和一个实现,推荐门面slf4j + 实现logback),原理默认JDK代理,通过配置可改为Cglib代理
	优点:
		1. 解决代码耦合度过高
		2. 代码复用度高,易于维护
    切面:
     描述切面必须先了解以下几个概念:
		1. 目标类:需要被增强的类。
		2. 连接点:可能被增强的点,目标类中所有方法
		3. 切入点:将会被增强的点,目标类中被增强的方法
		4. 通知/增强:对切入点增强的内容(前置通知,后置通知,环绕通知,抛出异常通知,最终通知)
		5. 切面:通知和切入点的结合,一个通知对应一个切入点就是一条线,多个通知对应多个切入点形成多条线,多条线形成一个面,称为切面
第二个S:为Spring MVC
1. MVC是一种很流行的框架,通过把Model,View,Controller分离,来简化开发
2. 控制器Controller:对请求进行处理,负责选择视图。
    视图View:用户与程序交互的界面。
    模型Model:用于业务处理。
3. 是spring的一个子框架,当然拥有spring的特性,如依赖注入
第三个M:为MyBatis
1. MyBatis是一个持久层ORM框架,内部封装了JDBC。
2. 开发人员只需要关注SQL语句本身,无需关注加载驱动,创建连接,处理SQL语句等繁琐过程,可以严格控制sql执行性能,灵活度高。
3. 可通过xml或者注解的方式来完成orm映射关系配置,由执行sql的结果映射为java对象并返回。

三. SpringBoot

由Pivotal团队开发,用来简化spring应用的初始化搭建以及开发过程,使用特定的方式来进行配置(properties或yml文件)
创建独立的spring引用程序main方法运行
嵌入Tomcat无需部署war文件
简化maven配置
自动配置spring添加对应功能,starter自动化配置
springboot 来简化spring应用开发,约定大于配置,去繁从简
优点:
1. 快速创建独立运行的spring项目与主流 框架集成
2. 使用嵌入式的servlet容器,应用无需打包成war包
3. starters自动依赖于版本控制
4. 大量的自动配置简化开发,也可修改默认值
5. 准生产环境的运行监控
6. 与云计算的天然集成

三. SpringCloud

是一个含概多个子项目的开发工具集,集合了众多的开源框架
他利用了Springboot开发的便利性,实现了很多功能,如服务注册,负载均衡等
SpringCloud在整合过程中,主要针对Netfilx开源组件的封装
SpringCloud的出现真正简化了分布式架构开发
1. 使用SpringCloud Nefilx中的Eureka实现了注册中心以及服务注册与发现
2. 使用Ribbon实现服务间的负载均衡
3. 使用Feign实现服务的远程调用
4. 使用Hystrix的熔断机制来避免在微服务架构中个别服务出现异常时引起的故障蔓延
5. 使用zuul作为服务网关 进行鉴权 动态路由 负载均衡

扩展:面试官可能会让你详细的说一说eureka注册中心
答:Eureka 注册中心,微服务架构中的通讯录,它记录了服务与服务地址的映射关系,在分布式架构中,服务会被注册到这里来,有些人也说注册中心就是提供者的通讯录
作用:
1. 服务注册获取
2. 服务配置(了解,有些不支持)
3. 健康检查

扩展:框架的作用?
减少代码冗余,提高运行速度,便于维护,规范编程

这些就是小编感觉会考的框架知识了,保佑大家能面试成功,保佑自己也能通过面试,握咪脱服,愿上天保佑!

你可能感兴趣的:(java框架常见的面试题整理)