0
点赞
收藏
分享

微信扫一扫

【日积月累】后端刷题日志

sin信仰 2023-09-01 阅读 40

刷题日志

说说对Java的理解

  • 难度 ※
  • 薪水 ※

JAVA中抽象类和接口之间的区别

  • 难度 ※ ※
  • 薪水 ※ ※

Java中的泛型

== 和equals()的区别

在这里插入图片描述

八种基本数据类型与他们的包装类

题目
Integer i1= 40;
Integer i2 = new Integer(40);
System.out.println(i1==i2);

在一个静态方法内调用一个非静态成员为什么是非法的

静态方法与实例方法有何不同

重载与重写

深拷贝浅拷贝

面向过程与面向对象

成员变量与局部变量

------------------------------------------------------------------------------------------Spring-------------------------------------------------------------------------------------

Spring框架

  1. Spring是一个轻量级的容器框架,容器:包含并管理应用对象的生命周期,spring是桶,对象是水
  2. Spring是为了简化企业开发而生的,使得开发变得更加优雅和简洁
  3. Spring最显著的两个特点是AOP和IOC

Spring的优势

  1. Spring通过DI,AOP和消除样板式代码来简化企业级开发(Spring的IOC和AOP)
  2. Spring拥有庞大的生态,它将Spring扩展到了不同的领域,如Web服务,移动开发,REST,NOSQL等(Spring)
  3. Spring代码相对独立,污染极低(Spring)
  4. Spring独立于应用服务器,可以做到一次写,多出用 Write Once Run Anywhere(Spring)
  5. Spring的IOC容器降低了业务对象替换的复杂性,提高了组件之间的解耦(Spring的IOC)
  6. Spring的AOP允许将一些通用任务,例如安全,事务,日志等进行集中式处理。从而提供了更好的复用(Spring的AOP)
  7. Spring的ORM和DAO提供了与第三方持久层框架的良好整合,并简化了底层数据库的访问,也可通过它的核心包直接访问(Spring的ORM)
  8. Spring的高度开放性,并不强制应用完全依赖Spring,开发者可自由选用Spring框架的部分或全部(Spring)

Spring,SpringMVC,SpringBoot之间的区别

Spring是一个一站式的轻量级java开发框架,底层支撑,全栈的一个框架,针对于开发的WEB层(SpringMVC),业务层(IOC),持久层(jdbcTemplate)等都提供了多种配置和解决方案
SpringMVC是一个WEB框架,是一个基于Servlet的一个MVC框架,通过XML配置,统一开发前端视图和后端逻辑
SpringBoot是一个脚手架,并且相对于SpringMVC,SpringBoot简化路配置流程,SpringBoot更专注于单体微服务接口的开发和前端解耦。

SOFABoot,SpringBoot之间的区别

  1. SOFABoot相对于SpringBoot提供了基于Spring的上下文隔离和模块化开发能力,使得每个SOFABoot模块独立使用Spring上下文,避免不同SOFABoot模块间的冲突
  2. 增加模块并行加载和Spring Bean异步初始化能力,加速了应用的启动速度
  3. 日志空间隔离,避免中间件和应用日志绑定
  4. 增加基于SOFAArk的类隔离能力,方便解决类冲突问题
  5. 扩展SpringBoot健康检查,额外提供了Readiness Check 能力 保证应用实例安全上线
  6. 增加中间件集成管理能力,每一个SOFA中间件都是独立可插拔的组件

Spring Bean支持的作用域

  1. singleton:使用该属性创建Bean实例,IOC容器每次返回的是同一个Bean实例
  2. prototype:使用该属性创建Bean实例,IOC容器每次返回的是一个新的Bean实例
  3. request:该属性进队HTTP请求产生作用,使用该属性创建Bean实例时,每次HTTP请求都会创建一个新的Bean,适用于WebApplicationContext环境
  4. session:该属性仅用于HTTP Session ,同一个Session共享一个Bean实例,不同Session使用不同的Bean实例
  5. global-session:该属性仅用于HTTP Session,所有的Session共享一个Bean实例。

Spring容器的启动过程

  1. 进行扫描,得到所有BeanDefinition对象,并存入一个Map中
  2. 然后筛选出所有非懒加载的单例BeanDefinition创建Bean(对于多例Bean和懒加载的单例Bean则会在每次获取Bean时去创建它)
  3. 利用BeanDefiniton创建Bean就是Bean的生命周期,期间包括了BeanDefinition合并,推断构造方法,实例化,属性填充,初始化前,初始化,初始化后等步骤
  4. 单例Bean创建完之后,Spring就会发布一个容器启动事件
  5. 容器启动结束

Spring Bean的生命周期

  1. Bean定义 BeanDefinition
  2. 实例化 Instantiation
  3. 属性赋值 populate
  4. 初始化 initialization
  5. 销毁 destruction

在这里插入图片描述
总结:

  1. Bean定义
  2. Bean实例化(会有实例化前后置处理,调用postProcessorBefore/After Instantiation方法)
  3. Bean的属性注入(如果实现了相关的Aware接口,就调用相关接口,如BeanNameAware,BeanFactoryAware,BeanClassLoeader)
  4. Bean的初始化(执行initialization-method属性设置的方法,会有初始化的前后置处理,调用postProcessorBefore/After Initialization,对于单例Bean会返回给用户,放入缓存池,对于多例Bean,也会返回给用户,剩下生命周期由用户执行)
  5. Bean的销毁(执行destory-method属性设置的方法,如果实现类Disponseable接口,会调用destory方法)

参考文章:一文读懂 Spring Bean 的生命周期

Spring框架的 单例Bean是否是线程安全的

Spring框架使用了哪些设计模式

  1. 工厂模式 BeanFactory就是一种工厂模式的体现,用来创建对象实例
  2. 模板方法 解决代码重复性问题 如RestTemplate,JDBCTemplate
  3. 观察者模式 一对多的依赖关系,监听器 Spring中的listener
  4. 代理模式 Spring中AOP用到了JDK的动态代理和cglib的字节码技术
  5. 单例模式 单例Bean

SpringMVC的优点是什么

SpringMVC工作流程

SpringMVC九大内置组件

SpringBoot中的starter

Spring的事务的实现原理

Spring的事务什么时候会失效

Spring的事务隔离级别

Spring的事务传播机制

=========================================================================================================

Sring StringBuffer StringBuilder

泛型中super和extend的却别

== 和 equals的区别

重载和重写的区别

List和Set的区别

ArrayList和LinkedList的区别

深拷贝和浅拷贝

jdk1.7 1jdk1.8 的HashMap区别

HashMap的put方法

举报

相关推荐

0 条评论