java面试题

/**
		 * 
		 * 
		 * 	Spring
		 * 	SpingBoot
		 * 		SpringApplication注解的作用
		 * 
		 * 	SpringMVC
		 * 		SpringMVC处理流程
		 * 	Mybatis
		 * 	Mysql
		 * 		基本语法:
		 * 			DDL
		 * 			DQL
		 * 			存储过程,存储函数
		 * 			触发器
		 * 			索引
		 * 			视图
		 * 		数据库系统核心知识点:
		 * 			SQL优化
		 * 			数据库设计三范式
		 * 			事务:
		 * 				原子性: 所有的事务提交要么全部成功,要么失败全部回滚
		 * 				一致性: 数据库在事务执行前后都保持一致性状态,在一致性状态下,所有事务对一个数据的读取都是相同的
		 * 				隔离性 : 每个事务但是独立运行的,一个事务所作的修改在提交之前其他事务是不可见的
		 * 				持久性: 事务一旦提交,则所作的修改则永远保存到数据库当中
		 * 			存储引擎:
		 * 				innoDB
		 * 			隔离级别:
		 * 				
		 * 		 面试题:
		 * 			权限设计最少几张表,如何设计
		 * 			
		 * 	基础:
		 * 		面向对象
		 * 		设计模式
		 * 			单例模式,代理模式,工厂模式,装饰器模式
		 * 		集合
		 * 		java8新特性
		 * 		线程
		 * 		String类常用方法
		 * 		List如何去重
		 * 		常用异常
		 * 	
		 * 
		 * 
		 * 
		 * 
		 * 什么是Spring框架?
		 * 		Spring是一个轻量级的框架,使用Spring可以提高开发人员的效率以及系统的可维护性,
		 * 		他是多个模块的集合,使用这些模块可以很方便协助我们进行开发
		 *	
		 *		核心技术    Ioc Di aop 验证
		 *		测试
		 *		数据访问
		 *		web支持
		 *		集成
		 *		语言
		 * 列举一些重要的Spring模块?	
		 * 		Core : ioc di实现,其他模块都依赖这个模块
		 * 		Aspects:  为 AspectJ 提供集成
		 * 		Jdbc: 数据源集成
		 * 		Aop: 面向切面实现
		 * 		Jms: java消息服务
		 * 		ORM: 用于集成 Hibrenate 、 Mtbatis 等 ORM 框架
		 * 		Web: 为创建web服务提供支持
		 * 		Test: 提供对 JUnit 、 TestNG 等测试框架的支持
		 * 
		 * 什么是IOC? 如何实现的?
		 * 		Ioc是Spring框架的核心模块、Ioc是控制反转, 将创建对象交给 Spring创建、管理,销毁,创建的对象是单例的、然后使用 Di依赖注入将对象注入到
		 * 		属性当中,其实现方式是工厂模式加反射
		 * 		Di依赖注入分为 set注入和 构造注入
		 * 
		 * 什么是AOP? 有哪些AOP的概念?
		 * 		Aop是面向切面,将与业务逻辑无关的,业务模块有公共调用的逻辑( log ,事务, 权限  )封装起来,降低代码的重复性,降低代码之间的偶合性,
		 * 			有利于未来的扩展和维护
		 * 		实现方式是拦截器加代理模式, 默认使用的是 JDK 动态代理,jdk动态代理是基于接口的,当代理的类没有实现接口的时候,转而使用CGlib代理代理,
		 * 		CGlib动态代理是基于子类的,为代理对象动态创建子类调用
		 * 		Aspects提供了对 AspectJ 框架的集成,AspectJ是Java生态系统中最完整的Aop实现的框架,
		 * 
		 * 		jointpoint : 连接点
		 * 		Advice: 通知类型
		 * 		目标对象: 代理的对象
		 * 		AOP代理: 代理加强
		 * 		织入:将增强对象添加目标对象中,创建一个被增强的对象
		 * 
		 * AOP 有哪些应用场景?
		 * 		Log
		 * 		事务
		 * 		权限
		 * 		监控
		 * 		缓存
		 * 
		 * 有哪些AOP Advice通知的类型?
		 * 		前置通知,后置通知,返回通知、环绕通知,异常通知
		 * 
		 * AOP 有哪些实现方式?
		 * 		静态代理: 在编译阶段生成代理类, 被称为编译时增强
		 * 		动态代理: 运行时在内存中代理生成代理类,被称为运行时增强
		 * 			jdk动态代理: 基于接口代理
		 * 			CGlib动态代理: 基于子类 
		 * 
		 * 谈谈你对CGLib的理解?
		 *		jdk动态代理是基于接口,所以被代理的类必须实现接口,而CGlib代理是基于子类的不需要实现接口,子类还是动态创建的,弥补了jdk动态代理的不足,
		 *		由于CGlib基于子类,所以他不能代理final修饰的类
		 * 
		 * Spring AOP和AspectJ AOP有什么区别?
		 * 		SpringAop 是运行时增强,基于动态代理 ,  AspectJ 是编译时增强,是基于字节码操作
		 * 		SpringAop 默认集成了AsprctJ AOP, AsprctJ功能更加强大,SpringAop更加简单
		 * 		当面向切面比较多的时候,建议使用AspectJ,他比SpringAop快很多

		 * Spring中的bean的作用域有哪些?
		 * 		singleton: 唯一bean实例,Spring中bean默认是单例的
		 * 		prototype: 每次请求都会创建一个bean实列
		 * 		request: 每次Http请求都会创建一个bean, 该bean只在当前http request内有效
		 *		session: 每次请求都会创建一个bean, 该bean只在当前http session内有效
		 *		global-session 全局session作用域,Spring5已废弃
		 * 
		 * Spring中的单例bean的线程安全问题了解吗?
		 * 	 Spring中bean是存在线程安全问题的,当有多个线程操作一个对象时,对这个对象的非静态成员变量操作是存在线程安全问题的,
		 * 	 解决方法: 将可变的成员变量放到 ThreadLocal中
		 * 
		 * Spring中的bean生命周期?
		 * 		实例化 -> 属性赋值 -> 初始化 -> 销毁
		 * Spring当中使用到的设计模式
		 * 	 工厂模式
		 * 	 代理模式(jdk代理,CGlib动态代理)
		 * 	 单例模式
		 * 	 ioc
		 * 
		 * 说说自己对于Spring MVC的了解?
		 *   MVC是一种设计模式, SpringMVC是一款优秀的MVC框架, 他将代码结构分为三层, 
		 *   	model: 负责数据的访问
		 *   	controller 接受请求,调用业务类,配发页面
		 *   	view: 负责视图展示
		 * 
		 * Spring MVC的工作原理了解嘛?
		 * 		1. 客户端发起请求到前端控制器(DispatcharServlet),
		 * 		2、 前端控制器调用处理映射器,找到对应的handler并返回给DispatcharServlet
		 * 		3、 前端控制器调用处理器适配,适配器调用执行handler,返回madelandview给DispatcharServlet
		 * 		4、DispatcharServlet调用ViewResolver视图解析
		 * 		5、视图渲染,返回给前端
		 * 
		 * Spring框架中用到了哪些设计模式?
		 * 		Aop使用了代理模式
		 * 		Bean 使用了单例模式
		 * 		Spring使用工厂模式通过beanFactory和ApplicationContext 创建Bean
		 * 		模板方法模式: jdbcTemplate,hibernateTemplate等以Template结尾对数据库操作的类使用了模板方法模式
		 * 		适配器模式: AOP 的通知使用了适配器模式,  SpringMVC 也使用了适配器模式
		 * 		包装器模式: 数据源,可以根据用户的需求不同切换不同的数据源
		 * 
		 * @Component和@Bean的区别是什么?
		 *		@Component 使用在类上面
		 *		@Bean 使用在方法上面
		 * 
		 * 将一个类声明为Spring的bean的注解有哪些?
		 * 	@Component
		 * 	@Service
		 * 	@Controller
		 * 	@Repository
		 * 
		 * Spring事务管理的方式有几种?
		 * 	编程式事务管理: 在代码中硬编码,不推荐使用,
		 * 	声明式事务管理: 在yml中或xml中配置 ,使用注解即可管理
		 * 
		 * Spring事务中的隔离级别有哪几种?
		 * 	
		 * Spring事务中有哪几种事务传播行为?
		 * 
		 * 
		 * Bean Factory和ApplicationContext有什么区别?
		 * 	 Bean Factory是IOC容器,使用懒加载
		 *   ApplicationContext是应用上下文, 在初始化应用上下文时就实例化所有的bean,可以指定延迟加载
		 * 
		 * 如何定义bean的范围?
		 * 		使用@Scope 定义bean的作用域, 默认是单例的
		 * 
		 * 可以通过多少种方式完成依赖注入?
		 * 		接口注入 、 构造器注入 、 set注入
		 * 
		 * 什么是SpringBoot?
		 * 		SpringBoot 简化了使用 Spring 开发, 简化了配置,提供了各种启动器,集成了tomcat,简化了maven配置
		 * 
		 * 为什么使用SpringBoot?
		 * 		独立运行
		 * 		简化配置
		 * 		自动配置
		 * 		抛弃了xml配置,使用yml配置
		 * 		应用监控
		 * 
		 * Spring、Spring MVC和SpringBoot有什么区别?
		 *		SpringMVC提供了一种分离式的方法来开发web应用,实现MVC设计模式
		 *		Spring 的核心是ioc,控制反转,将创建、管理对象交给Spring管理, 提供了整合其他框架的接口, 例如: 数据源,message,web、jdbc,ORM、 JUnit等
		 *		SpringBoot简化Spring开发,简化了配置、使用自动配置
		 * 
		 * SpringBoot自动配置的原理?
		 * 
		 * 
		 * 
		 * Spring Boot的核心注解是哪些?他主由哪几个注解组成的?
		 * 		SpringBootConfiguration
		 * 		EnableAutoConfiguration
		 * 		ComponentScan
		 * 
		 * SpringBoot的核心配置文件有哪几个?他们的区别是什么?
		 * 什么是Spring Boot Starter?有哪些常用的?
		 * spring-boot-starter-parent有什么作用?
		 * 如何自定义Spring Boot Starter?
		 * 为什么需要spring-boot-maven-plugin?
		 * SpringBoot 打成jar和普通的jar有什么区别?
		 * 如何使用Spring Boot实现异常处理?
		 * SpringBoot 实现热部署有哪几种方式?
		 * Spring Boot中的监视器是什么?
		 * Spring Boot 可以兼容老 Spring 项目吗?
		 * 什么是Spring Security?核心功能?
		 * Spring Security的原理?
		 * Spring Security基于用户名和密码的认证模式流程?
		 * 什么是日志系统和日志门面?分别有哪些框架?
		 * 日志库中使用桥接模式解决什么问题?
		 * 在日志配置时会考虑哪些点?
		 * 对Java日志组件选型的建议?
		 * 对日志架构使用比较好的实践?
		 * 对现有系统日志架构的改造建议?
		 * 
		 *
		 * 
		 * 
		 * 
		 * 
		 * 
		 * 
		 * 
		 * 
		 * 
		 * 	
		 * 活动发布系统
		 * 问卷系统前台
		 * 		回答问题: 扫描生成的二维码回答问卷
		 * 		广告投放: 对广告进行投放
		 * 问卷系统后台
		 * 		登录: 使用 SpringSecurity 实现认证、授权,并登录基础之上新增AD自动登录,如果登录AD失败跳转到登录页面
		 * 	    问题一栏: 对问题基础信息进行分页展示,分页使用layui组件,根据不同条件进行问题一览查询,以弹框的形式展示事业所查询页面
		 * 		问题做成: 添加问题,添加问题回答时间区间、预计完成时间、种别和问题内容。可以根据全社通用模板和事业所过去问题生成是模板进行问题添加,也可以自定义问题,问题类型主要有
		 * 				选择类型(可以是单选、多选题)、文本类型、评价类型(数字)、时间类型
		 * 		问题详细: 对做成的问题进行详细的展示,手机页面格式预览
		 * 		二维码生成: 对做成的问题生成一个二维码,可以使用手机扫描二维码进行答题
		 * 		问题印刷: 将问题以打印的格式展示到页面
		 * 		回答结果: 回答问题的个人信息进行展示
		 * 		回答结果详细: 回答问题的个人信息以及问题和答案的详细展示
		 * 		回答结果分析: 对问题回答情况生成饼图进行数据分析
		 * 		活动信息: 从活动发布系统中获取数据到问卷系统,并将他们联系起来
		 * 		使用 Druid实现动态数据源切换
		 * 		使用logback实现sql日志读写分离输出到文件
		 * 
		 * 		
		 * 
		 *  	
		 *  
		 *  
		 *  	
		 * 
		 * 
		 * 
		 * 
		 * 
		 */
		

SpringMVC常见面试题总结(超详细回答)_spring mvc面试_张维鹏的博客-优快云博客

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值