Spring相关面试题
文章目录
- 请谈一下你对 spring 的理解?说一下 Spring 的核心是什么?请谈 一下你对 Spring IOC 和 和 AOP 的理解?
- 请说一下 Spring 的 的 Bean 作用域?
- 请谈一下Spring中bean对象的生命周期?
- Spring中的事务是如何实现的 ?
- 请谈一下Spring的两种事务形式?
- Spring容器启动流程是怎样的?
- Spring事务什么时候会失效?
- BeanFactory 和 ApplicationContext有什么区别?
- Spring 事务的传播行为了解吗?Spring 提供了几种事务的传播行为?
- Spring事务的隔离级别?
- 请谈一下 Spring 事务回滚机制 ?
- 说一下过滤器和 Spring 拦截器的区别 ?
- 拦截器的实现原理是什么?简单说一下拦截器用场景 ?
- 反射机制了解吗?知道 spring 中哪些用的反射吗 ?
- 使用@Autowired注解自动装配的过程是怎样的 ?
请谈一下你对 spring 的理解?说一下 Spring 的核心是什么?请谈 一下你对 Spring IOC 和 和 AOP 的理解?
(1)Spring 框架是一个轻量级的 JavaSE/JavaEE 应用开发框架,是构建企业级应用程序的一站式解决方案。
(2)Spring 是模块化的,并被分为大约 20 个模块(core、beans、context、web 等),允许我们只使用需要的部分,而不需
要引入其他部分。
(3)Spring 的两大核心内容是 IOC 和 AOP(控制翻转和面向切面编程);
谈一下 IOC(Inversion Of Control)
IOC 的意思是控制反转,它是一种设计思想,是一个重要的面向对象编程的法则;
在 Java 开发中,Ioc 可以让我们把设计好的对象交给容器控制,而不是在对象内部直接控制;
对于 spring 框架来说,就是由 spring 来负责控制对象的生命周期和对象间的关系;
谈一下 AOP
(1)AOP 被称为面向切面编程,是一种编程范式,是对面向对象编程(OOP)的一种完善。
(2)OOP 最大问题就是无法解耦组件进行开发,而 AOP 就是为了克服这个问题而出现的。
(3)AOP 将整个系统分为"核心业务逻辑"和"非核心的服务";
AOP 的关注点是系统中的“非核心服务”【权限;事务;安全;异常;日志等】;
Spring 将非核心服务封装成一个 AOP 组件,然后通过配置信息形成"核心业务和 AOP 组件"之间的调用关系,
当执行核心业务时,AOP 组件会在合适的时机进行调用
请说一下 Spring 的 的 Bean 作用域?
- singleton:在 Spring IOC 容器中仅存在一个 Bean 的实例,Bean 以单例的方式存在;
- prototype:每次从容器中调用 Bean 时,都返回一个新的实例,也就是每次调用 getBean()方法时,相当于执行了 new 对
象的操作; - request:每次 http 请求都会创建一个新的 Bean,该作用域仅适合 WebApplicationContext 环境;
- session:同一个 http session 共享一个 Bean 实例,不同 session 使用不同的 Bean 实例,该作用域仅适用
WebApplicationContext 环境; - global session:这种作用域类似于标准的 HTTP Session 作用域,不过仅仅在基于 portlet 的 web 应用中才有意义。
请谈一下Spring中bean对象的生命周期?
Spring Bean 的生命周期主要分为四个阶段,也就是:Bean 的实例化、Bean 属性赋值、初始化和 Bean 的销毁
其中前三个阶段主要实现在 AbstractAutowireCapableBeanFactory 类中 doCreateBean()方法中;
而"Bean 的销毁"则是容器关闭时;
- Spring 启动,查找并加载需要被 Spring 管理的 bean,进行 Bean 的实例化
- Bean 实例化后对将 Bean 的引入和值注入到 Bean 的属性中
- 如果 Bean 实现了 BeanNameAware 接口的话,Spring 将 Bean 的 Id 传递给 setBeanName()方法
- 如果 Bean 实现了 BeanFactoryAware 接口的话,Spring 将调用 setBeanFactory()方法,将 BeanFactory 容器实例传
入 - 如果 Bean 实现了 ApplicationContextAware 接口的话,Spring 将调用 Bean 的 setApplicationContext()方法,将
bean 所在应用上下文引用传入进来。 - 如果 Bean 实现了 BeanPostProcessor 接口,Spring 就将调用他们的 postProcessBeforeInitialization()方法。
- 如果 Bean 实现了 InitializingBean 接口,Spring 将调用他们的 afterPropertiesSet()方法。类似的,如果 bean 使
用 init-method 声明了初始化方法,该方法也会被调用 - 如果 Bean 实现了 BeanPostProcessor 接口,Spring 就将调用他们的 postProcessAfterInitialization()方法。
- 此时,Bean 已经准备就绪,可以被应用程序使用了。他们将一直驻留在应用上下文中,直到应用上下文被销毁。
- 如果 bean 实现了 DisposableBean 接口,Spring 将调用它的 destory()接口方法,同样,如果 bean 使用了 destory-
method 声明销毁方法,该方法也会被调用。
Spring中的事务是如何实现的 ?
- Spring事务底层是基于数据库事务和AOP机制的
- ⾸先对于使⽤了@Transactional注解的Bean,Spring会创建⼀个代理对象作为Bean
- 当调⽤代理对象的⽅法时,会先判断该⽅法上是否加了@Transactional注解
- 如果加了,那么则利⽤事务管理器创建⼀个数据库连接
- 并且修改数据库连接的autocommit属性为false,禁⽌此连接的⾃动提交,这是实现Spring事务⾮
常重要的⼀步 - 然后执⾏当前⽅法,⽅法中会执⾏sql
- 执⾏完当前⽅法后,如果没有出现异常就直接提交事务
- 如果出现了异常,并且这个异常是需要回滚的就会回滚事务,否则仍然提交事务
- Spring事务的隔离级别对应的就是数据库的隔离级别
- Spring事务的传播机制是Spring事务⾃⼰实现的,也是Spring事务中最复杂的
- Spring事务的传播机制是基于数据库连接来做的,⼀个数据库连接⼀个事务,如果传播机制配置为
需要新开⼀个事务,那么实际上就是先建⽴⼀个数据库连接,在此新数据库连接上执⾏sql
请谈一下Spring的两种事务形式?
1.Spring 提供了 “编程式事务” 和 “基于 AOP 方式的声明式事务”
2.Spring 编程式事务管理高层的抽象主要包括三个接口
PlatformTransactionManager:事务管理器
TransactionDefinition:事务定义信息(包括事务的隔离、传播机制等);
TransactionStatus:事务具体运行状态;
其中 Spring 为不同的持久化框架提供了不同事务管理器 PlatformTransactionManager 的接口实现;
比如
使用 Spring JDBC 或 Mybatis 进行持久化数据时的 DataSourceTransactionManager;
使用 Hibernate 进行持久化数据时的 HibernateTransactionManager;
使用 JPA 进行持久化数据时的 JpaTransactionManager;
同时,Spring 可以使用 TransactionTemplate 进行编程式的事务控制;
Spring 基于 AOP 的声明式事务又有三种方式
- 基于 TransactionProxyFactoryBean 的方式
- 基于基于 AspectJ 的方式
- 基于注解方式
Spring容器启动流程是怎样的?
- 在创建Spring容器,也就是启动Spring时:
- ⾸先会进⾏扫描,扫描得到所有的BeanDefinition对象,并存在⼀个Map中
Spring中什么时候@Transactional会失效
Spring容器启动流程是怎样的
25 - 然后筛选出⾮懒加载的单例BeanDefinition进⾏创建Bean,对于多例Bean不需要在启动过程中去进
⾏创建,对于多例Bean会在每次获取Bean时利⽤BeanDefinition去创建 - 利⽤BeanDefinition创建Bean就是Bean的创建⽣命周期,这期间包括了合并BeanDefinition、推断
构造⽅法、实例化、属性填充、初始化前、初始化、初始化后等步骤,其中AOP就是发⽣在初始化
后这⼀步骤中 - 单例Bean创建完了之后,Spring会发布⼀个容器启动事件
- Spring启动结束
- 在源码中会更复杂,⽐如源码中会提供⼀些模板⽅法,让⼦类来实现,⽐如源码中还涉及到⼀些
BeanFactoryPostProcessor和BeanPostProcessor的注册,Spring的扫描就是通过
BenaFactoryPostProcessor来实现的,依赖注⼊就是通过BeanPostProcessor来实现的 - 在Spring启动过程中还会去处理@Import等注解
Spring事务什么时候会失效?
Spring事务的原理是Aop,进行了切面的增强,那么失效的根本原因是这个AOP不起作用了!
常见的情况有如下几种
1.发生自调用,类里面使用this调用本类的方法(this通常省略),此时这个this对象不是
代理类,而是UserService对象本身!
解决方法很简单,让那个this变成UserService的代理类即可。
2.方法不是public的,@Transaction只能用于public的方法上,否则事务不会生效,如果用在public的方法上,可以开启AspectJ代理模式。
3.数据库不支持事务
4.没有被spring管理
5.异常被吃掉,事务不会回滚(或者抛出的异常没有被定义,默认为RuntimeException)
BeanFactory 和 ApplicationContext有什么区别?
BeanFactory和ApplicationContext是Spring的两大核心接口,都可以当做Spring的容器。其中
ApplicationContext是BeanFactory的子接口。
依赖关系
BeanFactory:是Spring里面最底层的接口,包含了各种Bean的定义,读取bean配置文档,管理bean
的加载、实例化,控制bean的生命周期,维护bean之间的依赖关系。
ApplicationContext接口作为BeanFactory的派生,除了提供BeanFactory所具有的功能外,还提供了
更完整的框架功能:
继承MessageSource,因此支持国际化。
统一的资源文件访问方式。
提供在监听器中注册bean的事件。
同时加载多个配置文件。
载入多个(有继承关系)上下文 ,使得每一个上下文都专注于一个特定的层次,比如应用的web
层。
加载方式
BeanFactroy采用的是延迟加载形式来注入Bean的,即只有在使用到某个Bean时(调用getBean()),才
对该Bean进行加载实例化。这样,我们就不能发现一些存在的Spring的配置问题。如果Bean的某一个
属性没有注入,BeanFacotry加载后,直至第一次使用调用getBean方法才会抛出异常。
ApplicationContext,它是在容器启动时,一次性创建了所有的Bean。这样,在容器启动时,我们就可
以发现Spring中存在的配置错误,这样有利于检查所依赖属性是否注入。 ApplicationContext启动后预
载入所有的单实例Bean,通过预载入单实例bean ,确保当你需要的时候,你就不用等待,因为它们已经
创建好了。
相对于基本的BeanFactory,ApplicationContext 唯一的不足是占用内存空间。当应用程序配置Bean较
多时,程序启动较慢。
创建方式
BeanFactory通常以编程的方式被创建,ApplicationContext还能以声明的方式创建,如使用
ContextLoader。
注册方式
BeanFactory和ApplicationContext都支持BeanPostProcessor、BeanFactoryPostProcessor的使用,
但两者之间的区别是:BeanFactory需要手动注册,而ApplicationContext则是自动注册。
Spring 事务的传播行为了解吗?Spring 提供了几种事务的传播行为?
- REQUIRED:表示如果当前存在一个事务,则加入该事务,否则将新建一个事务;
- REQUIRES_NEW:表示不管是否存在事务,都创建一个新的事务,原来的挂起,新的执行完毕,继续执行老的事务;
- SUPPORTS:表示如果当前存在事务,就加入该事务;如果当前没有事务,那就不使用事务;
- NOT_SUPPORTED: 表示不使用事务;如果当前存在事务,就把当前事务暂停,以非事务方式执行;
- MANDATORY:表示必须在一个已有的事务中执行,如果当前没有事务,则抛出异常;
- NEVER:表示以非事务方式执行,如果当前存在事务,则抛出异常;
- NESTED:这个是嵌套事务;如果当前存在事务,则在嵌套事务内执行;如果当前不存在事务,则创建一个新的事务;
嵌套事务使用数据库中的保存点来实现,即嵌套事务回滚不影响外部事务,但外部事务回滚将导致嵌套事务回滚;
Spring事务的隔离级别?
隔离级别是指若干个并发的事务之间的隔离程度。TransactionDefinition 接口中定义了五个表示隔离级别的常量:
- ISOLATION_DEFAULT:默认的
这是默认值,表示使用底层数据库的默认隔离级别。对大部分数据库而言,通常这值就是 ISOLATION_READ_COMMITTED。 - ISOLATION_READ_UNCOMMITTED:未提交读
该隔离级别表示一个事务可以读取另一个事务修改但还没有提交的数据。
该级别不能防止脏读、不可重复读和幻读,因此很少使用该隔离级别。 - ISOLATION_READ_COMMITTED:已提交读
该隔离级别表示一个事务只能读取另一个事务已经提交的数据。
该级别可以防止脏读,这也是大多数情况下的推荐值。 - ISOLATION_REPEATABLE_READ:可重复读
该隔离级别表示一个事务在整个过程中可以多次重复执行某个查询,并且每次返回的记录都相同。
该级别可以防止脏读、不可重复读。 - ISOLATION_SERIALIZABLE:序列化
所有的事务依次逐个执行,这样事务之间就完全不可能产生干扰;
也就是说,该级别可以防止脏读、不可重复读以及幻读。
但是这将严重影响程序的性能。通常情况下也不会用到该级别。
请谈一下 Spring 事务回滚机制 ?
默认情况下,Spring 只有在抛出的异常是运行时异常(“非检查型”)时才回滚该事务;
也就是抛出的异常为 RuntimeException 的子类(Errors 也会导致事务回滚);
而抛出非运行时异常(检查型)则不会导致事务回滚;
但是,我们可以明确的配置抛出哪些异常时回滚事务,包括 checked 异常。也可以定义哪些异常抛出时不回滚事务。
说一下过滤器和 Spring 拦截器的区别 ?
拦截器和过滤器都是 AOP 编程思想的体现,都能实现权限检查、日志记录等。
拦截器是基于反射实现,更准确的说是通过 jdk 的动态代理实现; 过滤器是基于函数回调。
拦截器不依赖于 Servlet 容器,过滤器依赖于 Servlet 容器,它属于 Servlet 规范规定的。
拦截器只能对 Controller 请求起作用,过滤器则可以对几乎所有的请求起作用。
拦截器可以访问 controller 上下文的对象(如 service 对象、数据源等),过滤器则不可以访问.
拦截器可以深入的方法前后、异常抛出前后等,并且可以重复调用; 过滤器只在 Servlet 前后起作用,并且只在初始化
时被调用一次.
Java 中的拦截器是基于 Java 反射机制实现的,更准确的划分,应该是基于 JDK 实现的动态代理;
它依赖于具体的接口,在运行期间动态生成字节码。
使用场景:日志记录、权限检查、性能监控、通用行为
拦截器的实现原理是什么?简单说一下拦截器用场景 ?
Java 中的拦截器是基于 Java 反射机制实现的,更准确的划分,应该是基于 JDK 实现的动态代理;
它依赖于具体的接口,在运行期间动态生成字节码。
使用场景:
1、日志记录:记录请求信息的日志,以便进行信息监控、信息统计、计算 PV(Page View)等。
2、权限检查:比如登录检查,进入处理器之前检查是否登录,如果没有直接返回到登录页面;
3、性能监控:有时候系统在某段时间莫名其妙的慢,可以通过拦截器在进入处理器之前记录开始时间,
在处理完后记录结束时间,从而得到该请求的处理时间(如果有反向代理,如 apache 可以自动记录);
4、通用行为:读取 cookie 得到用户信息并将用户对象放入请求,从而方便后续流程使用;
反射机制了解吗?知道 spring 中哪些用的反射吗 ?
- 反射是 JAVA 语言提供一套在运行期动态获得类中信息的 API。
- 通过反射,可以在运行期动态的获得类中的属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性(包括私
有的方法和属性)
通过反射,可以在运行期动态的创建类的对象。
通过反射,可以在运行期动态的执行类中的方法。
Spring 通过反射创建对象,并将对象放到 spring ioc 容器中。
Spring 的拦截器也是基于反射实现的。
使用@Autowired注解自动装配的过程是怎样的 ?
使用@Autowired注解来自动装配指定的bean。在使用@Autowired注解之前需要在Spring配置文件进
行配置,<context:annotation-config />。
在启动spring IoC时,容器自动装载了一个AutowiredAnnotationBeanPostProcessor后置处理器,当
容器扫描到@Autowied、@Resource或@Inject时,就会在IoC容器自动查找需要的bean,并装配给该
对象的属性。在使用@Autowired时,首先在容器中查询对应类型的bean:
如果查询结果刚好为一个,就将该bean装配给@Autowired指定的数据;
如果查询的结果不止一个,那么@Autowired会根据名称来查找;
如果上述查找的结果为空,那么会抛出异常。解决方法时,使用required=false。
相关文章:
Spring相关面试题
文章目录请谈一下你对 spring 的理解?说一下 Spring 的核心是什么?请谈 一下你对 Spring IOC 和 和 AOP 的理解?请说一下 Spring 的 的 Bean 作用域?请谈一下Spring中bean对象的生命周期?Spring中的事务是如何实现的 &…...
操作符详解(上篇)
前言小伙伴们大家好,随着对c的不断学习今天我们将来学习操作符。在初始c语言中也介绍过操作符但也只是点到即可,今天我们将详细了解操作符。操作符分类:算术操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号…...
采样电路的3个组成部分
采样电路的使用实际上是电路的一个闭环控制过程,也可以理解为一个负反馈过程,采集的信号被传送到主控制芯片进行调整。今天就来为您介绍一下采样电路的三个组成部分分析!一起来看看吧! 这里的采样实际上分为电流采样、电压采样、…...
ffmpeg硬解码与软解码的压测对比
文章目录ffmpeg硬解码与软解码的压测一、基本知识二、压测实验1. 实验条件及工具说明2. 压测脚本3. 实验数据结果ffmpeg硬解码与软解码的压测 一、基本知识 本文基于intel集显进行压测 软解码:cpu对视频进行解码硬解码:显卡或者多媒体处理芯片对视频进…...
操作符——“C”
各位CSDN的uu们你们好呀,今天,总算是要到我们的操作符啦,在C语言中,操作符是一个极为复杂的东西,下面,就让我们进入操作符的世界吧 算术操作符 移位操作符 位操作符 赋值操作符 单目操作符 关系操作符…...
YSP的UI界面设计
文章目录一、准备工作二、UI设计1.QPushButton:三、遇到的bug一、准备工作 1.MSVC和MinGW上编译的项目,不能用另一个编译器进行编译 2.若要使用MSVC编译器,需要下载对应版本的VS 见此篇:https://blog.csdn.net/Copperxcx/article…...
干货 | 什么是磁传感器?最常用的磁传感器类型及应用
1、什么是磁传感器?磁传感器通常是指将磁场的大小和变化转换成电信号。磁场,以地球磁场(地磁)或磁石为例的磁场是我们熟悉但不可见的现象。将不可见的磁场转化为电信号,以及转化为可见效应的磁传感器一直以来都是研究的主题。从几十年前使用电…...
操作符(运算符)详解
🚀🚀🚀大家觉不错的话,就恳求大家点点关注,点点小爱心,指点指点🚀🚀🚀 目录 🐰算数操作符: - * / % 🐰移位操作符&#x…...
【LeetCode每日一题】【2023/2/9】1797. 设计一个验证系统
文章目录1797. 设计一个验证系统方法1:哈希表代码总体1797. 设计一个验证系统 LeetCode: 1797. 设计一个验证系统 中等\color{#FFB800}{中等}中等 你需要设计一个包含验证码的验证系统。每一次验证中,用户会收到一个新的验证码,这个验证码在…...
计算机图形学:改进的中点BH算法
作者:非妃是公主 专栏:《计算机图形学》 博客地址:https://blog.csdn.net/myf_666 个性签:顺境不惰,逆境不馁,以心制境,万事可成。——曾国藩 文章目录专栏推荐专栏系列文章序一、改进缘由二、…...
【SQL开发实战技巧】系列(六):从执行计划看NOT IN、NOT EXISTS 和 LEFT JOIN效率,记住内外关联条件不要乱放
系列文章目录 【SQL开发实战技巧】系列(一):关于SQL不得不说的那些事 【SQL开发实战技巧】系列(二):简单单表查询 【SQL开发实战技巧】系列(三):SQL排序的那些事 【SQL开发实战技巧…...
十分钟利用环信WebIM-vue3-Demo,打包上线一个即时通讯项目【含音视频通话】
这篇文章无废话,只教你如果接到即时通讯功能需求,十分钟利用环信WebIM-vue3-Demo,打包上线一个即时通讯项目【包含音视频通话功能】。 写这篇文章是因为,结合自身情况,以及所遇到的有同样情况的开发者在接到即时通讯&a…...
pandas——DataFrame基本操作(二)【建议收藏】
pandas——DataFrame基本操作(二) 文章目录pandas——DataFrame基本操作(二)一、实验目的二、实验原理三、实验环境四、实验内容五、实验步骤1.修改数据2.缺失值3.合并1.concat合并2.使用append方法合并3.使用merge进行合并4.使用…...
PostgreSQL查询引擎——General Expressions Grammar之restricted expression
General expressions语法规则定义在src/backend/parser/gram.y文件中,其是表达式语法的核心。有两种表达式类型:a_expr是不受限制的类型,b_expr是必须在某些地方使用的子集,以避免移位/减少冲突。例如,我们不能将BETWE…...
从某种程度上来看,产业互联网是一次对于互联网的弥补和修正
如果对当下我们正在经历的这样一个时代进行一次定义的话,我更加愿意将其划归到产业互联网的范畴里。可能有人会说,这与产业互联网并无联系,因为从本质上来看,当下我们所经历的这样一个时代,其实是与互联网并没有太多联…...
【C#Unity题】1.委托和事件在使用上的区别是什么?2.C#中 == 和 Equals 的区别是什么?
1.委托和事件在使用上的区别是什么? 委托和事件是C#中的重要概念,通俗来讲,委托是一个可以指向特定方法的指针,可以将委托分配给不同的脚本,使它们能够完成不同的任务。而事件则是一种使用委托实现的通知机制ÿ…...
FFmpeg5.0源码阅读——内存池AVBufferPool
摘要:FFmpeg中大多数数据存储比如AVFrame,AVPacket都是通过AVBufferRef管理的,而承载数据的结构为AVBuffer。本文主要通过FFmpeg源码来分析下FFmpeg中AVBuffer相关的实现。 关键字:AVBuffer、AVBufferPool、AVBufferPool 1. AVBufferRef 1.…...
Python学习------起步7(字符串的连接、删除、修改、查询与统计、类型判断及字符串字母大小写转换)
目录 前言: 1.字符串的连接 join() 函数 2.字符串的删除&取代 replace()函数 3.字符串的修改&切割 (1)strip() 函数 (2)lstrip()函数 和 rstrip()函数 (3)split()函数-->…...
雪花算法snowflake
snowflake中文的意思是 雪花,雪片,所以翻译成雪花算法。它最早是twitter内部使用的分布式环境下的唯一ID生成算法。在2014年开源。雪花算法产生的背景当然是twitter高并发环境下对唯一ID生成的需求,得益于twitter内部高超的技术,雪…...
Part 4 描述性统计分析(占比 10%)——上
文章目录【后续会持续更新CDA Level I&II备考相关内容,敬请期待】【考试大纲】【考试内容】【备考资料】1、统计基本概念1.1、统计学的含义及应用1.1.1、统计学的含义1.2.1、统计学的应用1.2、统计学的基本概念1.2.1、数据及数据的分类1.2.2、总体和样本1.2.3、…...
Linux系统安全:安全技术和防火墙
目录 一、安全技术 1、安全技术 2、防火墙分类 二、防火墙 1、iptables五表五链 2、黑白名单 3、iptables基本语法 4、iptables选项 5、控制类型 6、隐藏扩展模块 7、显示扩展模块 8、iptables规则保存 9、自定义链使用 一、安全技术 1、安全技术 ①入侵检测系统…...
【干货】Python:turtle库的用法
【干货】Python:turtle库的用法1. turtle库概述2. turtle库与基本绘图2.1 导入库的三种方式2.1.12.1.22.1.32.2 窗体函数2.2 画笔状态函数2.2.1 seed(s)2.2.2 random()2.2.3 randint(a, b)2.2.4 getrandbits(k)2.2.5 randrange(start, stop[ , step])2.2.6 uniform(…...
信息安全与网络安全有什么区别?
生活中我们经常会听到要保障自己的或者企业的信息安全。那到底什么是信息安全呢?信息安全包含哪些内容?与网络安全又有什么区别呢?今天我们就一起来详细了解一下。什么叫做信息安全?信息安全定义如下:为数据处理系统建…...
花了5年时间,用过市面上95%的工具,终于找到这款万能报表工具
经常有粉丝问我有“哪个报表工具好用易上手?”或者是“有哪些适合绝大多数普通职场人的万能报表工具?” 从这里我大概总结出了大家选择报表工具最期望满足的3点: (1)简单易上手:也就是所谓的学习门槛要低…...
ESP32S3系列--SPI主机驱动详解(一)
一、目的SPI是一种串行同步接口,可用于与外围设备进行通信。ESP32S3自带4个SPI控制器外设,其中SPI0/SPI1内部专用,共用一组信号线,通过一个仲裁器访问外部Flash和PSRAM;SPI2/3各自使用一组信号线;开发者可以使用SPI2/3控制外部SPI…...
2023开工开学火热!远行的人们,把淘特箱包送上顶流
春暖花开,被疫情偷走的三年在今年开学季找补回来了。多个数据反馈,居民消费意愿大幅提升。在淘特上,开工开学节点就很是明显:1月30日以来,淘特箱包品类甚至远超2022年双11,成为开年“第一爆品”。与此同时&…...
Intel x86_64 PMU简介
文章目录前言一、性能监控概述二、CPUID information三、架构性能监控3.1 架构性能监控 Version 13.1.1 架构性能监控 Version 1 Facilities3.1.2 预定义的体系结构性能事件3.1.3 cmask demo测试参考资料前言 Intel 64 和 IA-32 架构提供了 PMU(Performance Monito…...
Vue (2)
文章目录1. 模板语法1.1 插值语法1.2 指令语法2. 数据绑定3. 穿插 el 和 data 的两种写法4. MVVM 模型1. 模板语法 root 容器中的代码称为 vue 模板 1.1 插值语法 1.2 指令语法 图一 : 简写 : v-bind: 是可以简写成 : 的 总结 : …...
ESP8266 + STC15基于AT指令通过TCP通讯协议获取时间
ESP8266 + STC15基于AT指令通过TCP通讯协议获取时间 如果纯粹拿32位的ESP8266模块给8位的单片机仅供授时工具使用,有点大材小用了。这里不讨论这个拿esp8266来单独开发使用。本案例只是通过学习esp8266 AT指令功能来验证方案的可行性。 🔖STC15 单片机采用的是:STC15F2K60S…...
谈谈Spring中Bean的生命周期?(让你瞬间通透~)
目录 1.Bean的生命周期 1.1、概括 1.2、图解 2、代码示例 2.1、初始化代码 2.2、初始化的前置方法和后置方法(重写) 2.3、Spring启动类 2.4、执行结果 2.5、经典面试问题 3.总结 1.Bean的生命周期 1.1、概括 Spring中Bean的生命周期就是Bean在…...
哪种语言的网站 做seo更好/百度百科入口
指针的偏移值是多少取决于指针的类型: int a 10; char c A;int *p; char *p2;p &a; p2 &c;//p (自身运算)之后再加1 printf("a的地址的打印:%p\n",p); //p (自身加1运算)之后再下一步 …...
廊坊建站模板系统/品牌推广运营策划方案
cmd下tracter //路由追踪//服务开关net start PPTVServicenet stop Spooler输入“ipconfig /release”,按“Enter”键,将释放IP地址。输入“ipconfig /renew” ,按“Enter”键,将重新获取IP地址。在所在的网络中使用net view命令…...
浙江广厦建设职业技术学院招生网站/长尾关键词爱站网
1、确认系统已经安装了SSH。rpm –qa | grep opensshyum install ssh -y ##安装SSH协议2、生成秘钥对ssh-keygen -t rsa -P ##直接回车生成的密钥对:id_rsa和id_rsa.pub,默认存储在用户的目录下 如:/home/oldboy/.ssh。 如下࿱…...
网站广告推送怎么做/官方正版清理优化工具
一、八大排序 排序也称排序算法(Sort Algorithm),排序是将一组数据,依指定的顺序进行排列的过程。 排序分类 总体对比 1 冒泡排序 基本思想 冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后&…...
终身免费网站建设/网络营销的营销理念
切片 概述 切片是程序员对数组对象的抽象,在Go里面,数组长度是不可变的,这样会造成我们使用集合的时候比较笨重,只有在固定的场所才可以使用。 Go提供了一种较为灵活的数组,我们可以理解为动态数组,他对比…...
wordpress EDD Alipay/关键词seo排名公司
在亚马逊云科技,有着这么一群人,他们经常被认为只会写代码,而不善言辞。但这只是大家对他们的误解。他们的工作不仅需要懂开发、善沟通,还需要能够dive deep用户的需求。他们就是亚马逊云科技的 Software Dev Engineer!…...