/**
*
*
* 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日志读写分离输出到文件
*
*
*
*
*
*
*
*
*
*
*
*
*/
java面试题
于 2023-03-13 17:16:10 首次发布
2484





