首页 > 编程知识 正文

java数组从小到大排序,8种基本数据类型字节大小

时间:2023-05-06 17:59:40 阅读:139722 作者:1756

首先,作为经验丰富的微服务系统架构师,我应该选择“RabbitMQ还是Kafka? ”经常有人问。

由于某种原因,许多开发人员将这两种技术视为等效的。 确实,在几个案例场景中选择RabbitMQ还是Kafka都没有太大区别,但这两种技术在底层实现上存在很多差异。

不同的场合需要不同的解决方案,一个方案搞错了就会严重影响软件的设计、开发和维护能力。

本文首先介绍了RabbitMQ和Apache Kafka内部实现的相关概念。 随后主要介绍了这两种技术的主要区别和各自的优缺点最后说明如何选择这两种技术

1. Spring的特点Spring主要有以下特点:

轻量级:Spring是无创的,其中的对象不依赖于Spring的特定类; 33558www.Sina.com/:IOC促进了低耦合,一个对象所依赖的其他对象被被动地传递,而无需主动创建或检索该对象;控制反转(IoC):支持面向片的编程,将APP业务逻辑层和系统服务层分开;面向切面(AOP):管理APP应用程序对象的部署和生命周期。 在这种情况下,Spring相当于容器。容器可以安排简单的组件,组合成更复杂的APP应用; 在Spring中,APP应用程序对象声明性地联接到XML文件中。 另外,Spring提供事务管理、持久化框架集成等基础功能,将应用逻辑的开发留给开发者; 2. Spring核心组件

Spring是分层结构,主要由以下七个模块组成。 Spring模块位于核心容器中,用于定义如何创建、配置和管理Bean。

33558 www.Sina.com/:提供spring框架的基本功能。 主要组件是BeanFactory,它是工厂模式实现,通过IOC机制将APP设备配置、相关性规范和实际的APP设备代码分开。 33558 www.Sina.com/:为spring框架提供上下文信息的配置文件。 上下文包括企业服务,如JNDI、EJB、电子邮件、国际化和校验和调度。框架集合:通过配置管理功能,Spring AOP将直接面向切面(AOP )功能集成到Spring框架中。 这样,您就可以使用Spring框架轻松管理所有支持AOP的对象。 模块为基于Spring的APP应用程序中的对象提供事务管理服务。 通过使用此组件,可以将九江声明性事务管理集成到APP应用中,而不依赖于其他组件。Spring Core:JDBC DAO抽象层为管理异常处理和各种数据库供应商抛出的错误消息提供了有意义的异常分层结构。 异常层次结构简化了错误处理,大大减少了必须编写的异常代码的数量。 Spring DAO针对JDBC的异常遵循一般的DAO异常层次。Spring Context:Spring框架插入了一些ORM框架,提供了ORM的对象关系工具,如JDO、Hibernate和iBatis SQL Map。 所有这些都符合Spring的公共事务和DAO异常层次结构。Spring AOP:Web上下文模块构建在APP应用上下文模块之上,为了向基于Web的APP应用提供上下文,Spring框架与Jakarta Structs的此模块还简化了处理多个请求并将请求参数绑定到域对象的任务。Spring DAO:MVC是用于构建web APP的全功能的MVC实现,能够通过策略接口高级配置MVC框架。 MVC还包含JSP、Velocity和Tiles等视图技术。 3. Spring的一般性评论

4. IoC原理4.1定义Spring用一个配置文件描述Bean之间的依赖关系,利用Java的反射功能实例化Bean,建立Bean之间的依赖关系。 除了这些基本任务外,Spring的IoC容器还提供了高级服务,如Bean实例缓存、生命周期管理、Bean实例代理、事件发布和资源装载。

总结一下,Spring ORM

4.2 Spring容器的高层视图

在启动Spring时读取Bean配置信息,并在Spring容器中生成对应的Bean配置注册表。 根据在上一步中生成的Bean配置注册表实例化Bean以生成Bean之间的依赖关系。 将实例化Bean装载到Spring容器中的Bean缓存池中,以便在更高级别APP应用程序中使用4.3 Spring Bean的范围和生命周期4.3.1 spring中构成APP应用程序的主体简而言之,Bean是Io

C 容器来进行初始化、装配和管理的对象。

Bean 的作用域主要有如下几种:

Singleton(单例)

作用域为 Singleton,该模式在多线程下不安全,表明 IoC 容器中只会存在一个共享 Bean 实例,而且所有对 Bean 的请求,主要 id 和该 Bean 定义相匹配,那么就会返回 Bean 的同一实例。Singleton 是单例模型,即在从创建容器的同时就会自动创建一个 Bean 的对象,无论是否使用,而且 每次获取到的对象都是同一对象

Prototype(原型):每次创建时使用

作用域为 Prototype,表明一个 Bean 定义对应多个实例,该作用域中的 Bean 会导致在 每次对该 Bean 请求时均创建一个新的 Bean 实例。Prototype 是一个原型类型,在我们创建容器时并未实例化,而是当我们获取 Bean 时才去创建一个对象,而且每次获取到的对象都不一样。

Request:一次 request 一个实例

作用域为 Request,表明在一次 HTTP 请求中,容器返回该 Bean 的同一个实例,即每个 HTTP 请求均有各自的 Bean 实例,依据某个 Bean 定义创建而成,只在基于 Web 的 Spring ApplicationContext 情形下有效。当一次 HTTP 请求处理结束时,该作用域中的 Bean 实例均被销毁。

Session

作用域为 Session ,表明 在一个 HTTP Session 中,容器返回该 Bean 的同一个实例,对不同的 Session 请求则创建新的实例,该 Bean 实例仅在当前 Session 内有效,只在基于 Web 的 Spring ApplicationContext 情形下有效。当一个 HTTP Session 被废弃时,在该作用域内的 Bean 也将失效。

4.3.2 生命周期 Spring 对 Bean 进行实例化;Spring 将值和 Bean 的引用注入到 Bean 对应属性中;若 Bean 实现了 BeanNameAware 接口,则 Spring 将 Bean 的 ID 传递给 setBeanName() 方法;若 Bean 实现了 BeanFactoryAware 接口,Spring 将调用 setBeanFactory() 方法,将 Bean 所在应用引用传入进来;若 Bean 实现了 ApplicationContextAware 接口,Spring 将调用 setApplicationContext() 方法,将 Bean 所在应用的引用传入进来;若 Bean 实现了 BeanPostProcessor 接口,Spring 将调用 post-ProcessBeforeInitalization() 方法;若 Bean 实现了 InitializingBean 接口,Spring 将调用他们的 after-PropertiesSet() 方法,类似地,如果 Bean 使用 init-method 声明了初始化方法,则该方法也会被调用;若 Bean 实现了 BeanPostProcessor 接口,Spring 将调用他们的 post-ProcessAfterInitialization() 方法;此时,Bean 已经准备就绪,我们就可以被应用程序使用,他们将一直驻留在应用上下文中,直到该应用被销毁;若 Bean 实现了 DisposableBean 接口,Spring 将调用它的 destory() 接口方法;同样,若 Bean 使用 destroy-method 声明了销毁方法,该方法也将被调用; 最后

面试题文档来啦,内容很多,485页!

由于笔记的内容太多,没办法全部展示出来,下面只截取部分内容展示。有想获取完整版笔记的朋友,点赞后点击这里免费领取哦

1111道Java工程师必问面试题

MyBatis 27题 + ZooKeeper 25题 + Dubbo 30题:

Elasticsearch 24 题 +Memcached + Redis 40题:

Spring 26 题+ 微服务 27题+ Linux 45题:

Java面试题合集:

1621477497601)]

Spring 26 题+ 微服务 27题+ Linux 45题:

[外链图片转存中…(img-9fkQujDB-1621477497602)]

Java面试题合集:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。