精华内容
下载资源
问答
  • 量感:大和小,宽和窄,厚和薄,轻重 弱光泽就是静态的,反之就是动态的,体现主要以面料和图案为主 直线感轮廓,曲线感轮廓 ...阳光型,量感小,偏曲线,感性元素,偏静态的风格 新锐型,动感,直线型,小量感



    量感:大和小,宽和窄,厚和薄,轻重





    弱光泽就是静态的,反之就是动态的,体现主要以面料和图案为主

    直线感轮廓,曲线感轮廓

    比较硬挺的面料就会有直线感,光滑一点,柔软一点就是曲线感



    图案复杂,视觉跳跃性,鲜艳就是动态的,反之就是静态


    戏剧型,大量感,偏一点点直,服装偏动态,面度轮廓清晰,成熟

    自然型,中大量感,偏直线感,偏静


    古典型,面部均衡,规整,均衡,中量感



    浪漫型,中大量感,曲线感,偏动感,材质偏魅度,适合华丽感

    阳光型,量感小,偏曲线,感性元素,偏静态的风格


    新锐型,动感,直线型,小量感

    展开全文
  • Spring面试题集锦(精选)

    千次阅读 2019-11-30 19:06:53
    Spring框架的目标是使得Java EE应用程序的开发更加简捷,通过使用POJO为基础的编程模型促进良好的编程风格。 2.Spring有哪些优点? 轻量级:Spring在大小和透明性方面绝对属于轻量级的,基础版本的Spring框架大约...

    点击上方“Coder编程”,选择“置顶公众号”

    技术文章第一时间送达!

    以下来自网络收集,找不到原文出处。此次主要为了面试收集,希望对大家有所帮助~~~~

    Spring面试题集锦(精选)

    1.什么是Spring?

    Spring是一个开源的Java EE开发框架。Spring框架的核心功能可以应用在任何Java应用程序中,但对Java EE平台上的Web应用程序有更好的扩展性。Spring框架的目标是使得Java EE应用程序的开发更加简捷,通过使用POJO为基础的编程模型促进良好的编程风格。

    2.Spring有哪些优点?

    • 轻量级:Spring在大小和透明性方面绝对属于轻量级的,基础版本的Spring框架大约只有2MB。

    • 控制反转(IOC):Spring使用控制反转技术实现了松耦合。依赖被注入到对象,而不是创建或寻找依赖对象。

    • 面向切面编程(AOP):Spring支持面向切面编程,同时把应用的业务逻辑与系统的服务分离开来。

    • 容器:Spring包含并管理应用程序对象的配置及生命周期。

    • MVC框架:Spring的web框架是一个设计优良的web MVC框架,很好的取代了一些web框架。

    • 事务管理:Spring对下至本地业务上至全局业务(JAT)提供了统一的事务管理接口。

    • 异常处理:Spring提供一个方便的API将特定技术的异常(由JDBC, Hibernate, 或JDO抛出)转化为一致的、Unchecked异常。

    3. Spring 事务实现方式有哪些?

    • 编程式事务管理:这意味着你可以通过编程的方式管理事务,这种方式带来了很大的灵活性,但很难维护。

    • 声明式事务管理:这种方式意味着你可以将事务管理和业务代码分离。你只需要通过注解或者XML配置管理事务。

    4.Spring框架的事务管理有哪些优点?

    • 它为不同的事务API(如JTA, JDBC, Hibernate, JPA, 和JDO)提供了统一的编程模型。

    • 它为编程式事务管理提供了一个简单的API而非一系列复杂的事务API(如JTA). 它支持声明式事务管理。

    • 它可以和Spring 的多种数据访问技术很好的融合。

    5.spring事务定义的传播规则

    • PROPAGATION_REQUIRED: 支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。

    • PROPAGATION_SUPPORTS: 支持当前事务,如果当前没有事务,就以非事务方式执行。

    • PROPAGATION_MANDATORY: 支持当前事务,如果当前没有事务,就抛出异常。

    • PROPAGATION_REQUIRES_NEW: 新建事务,如果当前存在事务,把当前事务挂起。

    • PROPAGATION_NOT_SUPPORTED: 以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。

    • PROPAGATION_NEVER: 以非事务方式执行,如果当前存在事务,则抛出异常。

    • PROPAGATION_NESTED:如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则进行与PROPAGATION_REQUIRED类似的操作。

    6.Spring 事务底层原理

    • 划分处理单元——IoC

    由于spring解决的问题是对单个数据库进行局部事务处理的,具体的实现首先用spring中的IoC划分了事务处理单元。并且将对事务的各种配置放到了ioc容器中(设置事务管理器,设置事务的传播特性及隔离机制)。

    • AOP拦截需要进行事务处理的类

    Spring事务处理模块是通过AOP功能来实现声明式事务处理的,具体操作(比如事务实行的配置和读取,事务对象的抽象),用TransactionProxyFactoryBean接口来使用AOP功能,生成proxy代理对象,通过TransactionInterceptor完成对代理方法的拦截,将事务处理的功能编织到拦截的方法中。读取ioc容器事务配置属性,转化为spring事务处理需要的内部数据结构(TransactionAttributeSourceAdvisor),转化为TransactionAttribute表示的数据对象。

    • 对事务处理实现(事务的生成、提交、回滚、挂起)

    spring委托给具体的事务处理器实现。实现了一个抽象和适配。适配的具体事务处理器:DataSource数据源支持、hibernate数据源事务处理支持、JDO数据源事务处理支持,JPA、JTA数据源事务处理支持。这些支持都是通过设计PlatformTransactionManager、AbstractPlatforTransaction一系列事务处理的支持。为常用数据源支持提供了一系列的TransactionManager。

    • 结合

    PlatformTransactionManager实现了TransactionInterception接口,让其与TransactionProxyFactoryBean结合起来,形成一个Spring声明式事务处理的设计体系。

    7. Spring的单例实现原理

    Spring框架对单例的支持是采用单例注册表的方式进行实现的,而这个注册表的缓存是HashMap对象,如果配置文件中的配置信息不要求使用单例,Spring会采用新建实例的方式返回对象实例。

    8. 有哪些不同类型的IOC(依赖注入)?

    • 构造器依赖注入:构造器依赖注入在容器触发构造器的时候完成,该构造器有一系列的参数,每个参数代表注入的对象。

    • Setter方法依赖注入:首先容器会触发一个无参构造函数或无参静态工厂方法实例化对象,之后容器调用bean中的setter方法完成Setter方法依赖注入。

    • 注解注入:基于@Autowired的自动装配,默认是根据类型注入,可以用于构造器、字段、方法注入。

    9. 你推荐哪种依赖注入?构造器依赖注入还是Setter方法依赖注入?

    你可以同时使用两种方式的依赖注入,最好的选择是使用构造器参数实现强制依赖注入,使用setter方法实现可选的依赖关系。

    10.简述一下Spring框架?

    概念

    • Spring致力于Java EE应用的各种解决方案,是一款轻量级框架,大大简化了Java企业级开发,提供了强大、稳定的功能。

    • Spring主要有两个目标:一是让先有技术更易于使用,二是促进良好的编程习惯(或者称为最佳实践)

    优点

    • 轻量级:Spring在大小和透明性方面绝对属于轻量级的,基础版本的Spring框架大约只有2MB

    • 控制反转(IOC):Spring使用控制反转技术实现了松耦合。依赖被注入到对象,而不是创建或寻找依赖对象。

    • 方便解耦,简化开发:Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理

    • AOP编程的支持:Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能

    • 声明式事务的支持:只需要通过配置就可以完成对事务的管理,而无需手动编程

    • 方便集成各种优秀框架:Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts2、Hibernate、MyBatis、Quartz等)的直接支持

    • 降低JavaEE API的使用难度:Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低

    11.简单介绍一下Spring七大模块?

    • Spring Core:Core封装包是框架的最基础部分,提供IOC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。

    • Spring Context:构建于Core封装包基础上的 Context封装包,提供了一种框架式的对象访问方法,有些象JNDI注册器。Context封装包的特性得自于Beans封装包,并添加了对国际化(I18N)的支持(例如资源绑定),事件传播,资源装载的方式和Context的透明创建,比如说通过Servlet容器。

    • Spring DAO:DAO (Data Access Object)提供了JDBC的抽象层,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。并且,JDBC封装包还提供了一种比编程性更好的声明性事务管理方法,不仅仅是实现了特定接口,而且对所有的POJOs(plain old Java objects)都适用。

    • Spring ORM:ORM 封装包提供了常用的“对象/关系”映射APIs的集成层。其中包括JPA、JDO、Hibernate 和 iBatis 。利用ORM封装包,可以混合使用所有Spring提供的特性进行“对象/关系”映射,如前边提到的简单声明性事务管理。

    • Spring AOP:Spring的 AOP 封装包提供了符合AOP Alliance规范的面向方面的编程实现,让你可以定义,例如方法拦截器(method-interceptors)和切点(pointcuts),从逻辑上讲,从而减弱代码的功能耦合,清晰的被分离开。而且,利用source-level的元数据功能,还可以将各种行为信息合并到你的代码中。

    • Spring Web:Spring中的 Web 包提供了基础的针对Web开发的集成特性,例如多方文件上传,利用Servlet listeners进行IOC容器初始化和针对Web的ApplicationContext。当与WebWork或Struts一起使用Spring时,这个包使Spring可与其他框架结合。

    • Spring Web MVC:Spring中的MVC封装包提供了Web应用的Model-View-Controller(MVC)实现。Spring的MVC框架并不是仅仅提供一种传统的实现,它提供了一种清晰的分离模型,在领域模型代码和Web Form之间。并且,还可以借助Spring框架的其他特性。

    12. Spring中的设计模式

    spring中常用的设计模式达到九种,我们举例说明:

    第一种:简单工厂

    又叫做静态工厂方法(StaticFactory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。

    第二种:工厂方法(Factory Method)

    通常由应用程序直接使用new创建新的对象,为了将对象的创建和使用相分离,采用工厂模式,即应用程序将对象的创建及初始化职责交给工厂对象。一般情况下,应用程序有自己的工厂对象来创建bean.如果将应用程序自己的工厂对象交给Spring管理,那么Spring管理的就不是普通的bean,而是工厂Bean。

    第三种:单例模式(Singleton)

    保证一个类仅有一个实例,并提供一个访问它的全局访问点。
    spring中的单例模式完成了后半句话,即提供了全局的访问点BeanFactory。但没有从构造器级别去控制单例,这是因为spring管理的是是任意的java对象。

    第四种:适配器(Adapter)

    在Spring的Aop中,使用的Advice(通知)来增强被代理类的功能。Spring实现这一AOP功能的原理就使用代理模式(1、JDK动态代理。2、CGLib字节码生成技术代理。)对类进行方法级别的切面增强,即,生成被代理类的代理类, 并在代理类的方法前,设置拦截器,通过执行拦截器重的内容增强了代理方法的功能,实现的面向切面编程。

    第五种:包装器(Decorator)

    在我们的项目中遇到这样一个问题:我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库。我们以往在spring和hibernate框架中总是配置一个数据源,因而sessionFactory的dataSource属性总是指向这个数据源并且恒定不变,所有DAO在使用sessionFactory的时候都是通过这个数据源访问数据库。但是现在,由于项目的需要,我们的DAO在访问sessionFactory的时候都不得不在多个数据源中不断切换,问题就出现了:如何让sessionFactory在执行数据持久化的时候,根据客户的需求能够动态切换不同的数据源?我们能不能在spring的框架下通过少量修改得到解决?是否有什么设计模式可以利用呢?首先想到在spring的applicationContext中配置所有的dataSource。这些dataSource可能是各种不同类型的,比如不同的数据库:Oracle、SQL Server、MySQL等,也可能是不同的数据源:比如apache 提供的org.apache.commons.dbcp.BasicDataSource、spring提供的org.springframework.jndi.JndiObjectFactoryBean等。然后sessionFactory根据客户的每次请求,将dataSource属性设置成不同的数据源,以到达切换数据源的目的。
    spring中用到的包装器模式在类名上有两种表现:一种是类名中含有Wrapper,另一种是类名中含有Decorator。基本上都是动态地给一个对象添加一些额外的职责。

    第六种:代理(Proxy)

    为其他对象提供一种代理以控制对这个对象的访问。从结构上来看和Decorator模式类似,但Proxy是控制,更像是一种对功能的限制,而Decorator是增加职责。
    spring的Proxy模式在aop中有体现,比如JdkDynamicAopProxy和Cglib2AopProxy。

    第七种:观察者(Observer)

    定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
    spring中Observer模式常用的地方是listener的实现。如ApplicationListener。

    第八种:策略(Strategy)

    定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。

    第九种:模板方法(Template Method)

    定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
    Template Method模式一般是需要继承的。这里想要探讨另一种对Template Method的理解。spring中的JdbcTemplate,在用这个类时并不想去继承这个类,因为这个类的方法太多,但是我们还是想用到JdbcTemplate已有的稳定的、公用的数据库连接,那么我们怎么办呢?我们可以把变化的东西抽出来作为一个参数传入JdbcTemplate的方法中。但是变化的东西是一段代码,而且这段代码会用到JdbcTemplate中的变量。怎么办?那我们就用回调对象吧。在这个回调对象中定义一个操纵JdbcTemplate中变量的方法,我们去实现这个方法,就把变化的东西集中到这里了。然后我们再传入这个回调对象到JdbcTemplate,从而完成了调用。这可能是Template Method不需要继承的另一种实现方式吧。

    13.ApplicationContext与BeanFactory的区别

    两者都是通过xml配置文件加载bean,ApplicationContextBeanFacotry相比,提供了更多的扩展功能,但其主要区别在于后者是延迟加载,如果Bean的某一个属性没有注入,BeanFacotry加载后,直至第一次使用调用getBean方法才会抛出异常;而ApplicationContext则在初始化自身是检验,这样有利于检查所依赖属性是否注入;所以通常情况下我们选择使用ApplicationContext。

    BeanFactroy采用的是延迟加载形式来注入Bean的,即只有在使用到某个Bean时(调用getBean()),才对该Bean进行加载实例化,这样,我们就不能发现一些存在的Spring的配置问题。而ApplicationContext则相反,它是在容器启动时,一次性创建了所有的Bean。这样,在容器启动时,我们就可以发现Spring中存在的配置错误。

    BeanFactoryApplicationContext都支持BeanPostProcessorBeanFactoryPostProcessor的使用,但两者之间的区别是:BeanFactory需要手动注册,而ApplicationContext则是自动注册

    14. 如何理解IoC和DI?

    IOC:
    IOC就是控制反转,通俗的说就是我们不用自己创建实例对象,这些都交给Spring的bean工厂帮我们创建管理。这也是Spring的核心思想,通过面向接口编程的方式来是实现对业务组件的动态依赖。这就意味着IOC是Spring针对解决程序耦合而存在的。在实际应用中,Spring通过配置文件(xml或者properties)指定需要实例化的java类(类名的完整字符串),包括这些java类的一组初始化值,通过加载读取配置文件,用Spring提供的方法(getBean())就可以获取到我们想要的根据指定配置进行初始化的实例对象。

    • 优点:IOC或依赖注入减少了应用程序的代码量。它使得应用程序的测试很简单,因为在单元测试中不再需要单例或JNDI查找机制。简单的实现以及较少的干扰机制使得松耦合得以实现。IOC容器支持勤性单例及延迟加载服务。

    ** DI:DI—Dependency** Injection,即“依赖注入”:组件之间依赖关系由容器在运行期决定,形象的说,即由容器动态的将某个依赖关系注入到组件之中。依赖注入的目的并非为软件系统带来更多功能,而是为了提升组件重用的频率,并为系统搭建一个灵活、可扩展的平台。通过依赖注入机制,我们只需要通过简单的配置,而无需任何代码就可指定目标需要的资源,完成自身的业务逻辑,而不需要关心具体的资源来自何处,由谁实现。

    15.介绍一下AOP相关术语?

    • 切面(Aspect):被抽取的公共模块,可能会横切多个对象。在Spring AOP中,切面可以使用通用类(基于模式的风格) 或者在普通类中以 @AspectJ 注解来实现。

    • 连接点(Join point):指方法,在Spring AOP中,一个连接点 总是 代表一个方法的执行。

    • 通知(Advice):在切面的某个特定的连接点(Join point)上执行的动作。通知有各种类型,其中包括“around”、“before”和“after”等通知。许多AOP框架,包括Spring,都是以拦截器做通知模型, 并维护一个以连接点为中心的拦截器链。

    • 切入点(Pointcut):切入点是指 我们要对哪些Join point进行拦截的定义。通过切入点表达式,指定拦截的方法,比如指定拦截add、search

    • 引入(Introduction):(也被称为内部类型声明(inter-type declaration))。声明额外的方法或者某个类型的字段。Spring允许引入新的接口(以及一个对应的实现)到任何被代理的对象。例如,你可以使用一个引入来使bean实现 IsModified 接口,以便简化缓存机制。

    • 目标对象(Target Object):被一个或者多个切面(aspect)所通知(advise)的对象。也有人把它叫做 被通知(adviced) 对象。既然Spring AOP是通过运行时代理实现的,这个对象永远是一个 被代理(proxied) 对象。

    • 织入(Weaving):指把增强应用到目标对象来创建新的代理对象的过程。Spring是在运行时完成织入。

    切入点(pointcut)和连接点(join point)匹配的概念是AOP的关键,这使得AOP不同于其它仅仅提供拦截功能的旧技术。切入点使得定位通知(advice)可独立于OO层次。例如,一个提供声明式事务管理的around通知可以被应用到一组横跨多个对象中的方法上(例如服务层的所有业务操作)。

    AOP相关术语

    16.你是如何理解Spring AOP?

    概念

    面向切面编程。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。

    核心思想
    可以在不修改源代码的前提下,对程序进行增强

    实现原理
    Spring框架的AOP技术底层也是采用的代理技术,所谓的动态代理就是说 AOP 框架不会去修改字节码,而是在内存中临时为方法生成一个 AOP 对象,这个 AOP 对象包含了目标对象的全部方法,并且在特定的切点做了增强处理,并回调原对象的方法 。Spring AOP 中的动态代理主要有两种方式, JDK 动态代理和 CGLIB 动态代理 。

    • JDK 动态代理:通过反射来接收被代理的类,并且要求被代理的类必须实现一个接口 。JDK 动态代理的核心是 InvocationHandler 接口和 Proxy 类 。

    • CGLIB动态代理:如果目标类没有实现接口,那么 Spring AOP 会选择使用 CGLIB 来动态代理目标类 。CGLIB ( Code Generation Library ),是一个代码生成的类库,可以在运行时动态的生成某个类的子类,注意, CGLIB 是通过继承的方式做的动态代理,因此如果某个类被标记为 final ,那么它是无法使用 CGLIB 做动态代理的。

    17. Spring中有哪些增强处理,区别?

    • 前置增强:org.springframework.aop.BeforeAdvice代表前置增强,表示在目标方法整形前实施增强

    • 后置增强:org.springframework.aop.AfterReturningAdvice代表后置增强,表示在目标方法执行后实施增强

    • 环绕增强:org.springframework.aop.MethodInterceptor代表环绕增强,表示在目标方法执行前后实施增强

    • 异常抛出增强 :org.springframework.aop.ThrowsAdvice代表抛出异常增强,表示在目标方法抛出异常后实施增强

    • 引介增强:org.springframework.aop.IntroductionInterceptor代表引介增强,表示在目标类中添加一些新的方法和属性

    18. Spring中支持的Bean作用域有哪些?

    支持如下五种不同的作用域

    • Singleton(默认):在Spring IOC容器中仅存在一个Bean实例,Bean以单实例的方式存在。

    • Prototype:一个bean可以定义多个实例

    • Request:每次HTTP请求都会创建一个新的Bean。该作用域仅适用于WebApplicationContext环境。

    • Session:一个HTTP Session定义一个Bean。该作用域仅适用于WebApplicationContext环境.

    • GolbalSession:同一个全局HTTP Session定义一个Bean。该作用域同样仅适用于WebApplicationContext环境.

    19.如何定义bean的作用域?

    Spring中创建一个bean的时候,我们可以声明它的作用域。只需要在bean定义的时候通过scope属性定义即可。例如,当Spring需要产生每次一个新的bean实例时,应该声明beanscope属性为prototype。如果每次你希望Spring返回一个实例,应该声明beanscope属性为singleton

    20.说一说Spring框架中的bean的生命周期?

    • Spring容器读取XML文件中bean的定义并实例化bean。

    • Spring根据bean的定义设置属性值。

    • 如果该Bean实现了BeanNameAware接口,Spring将bean的id传递给setBeanName()方法。

    • 如果该Bean实现了BeanFactoryAware接口,Spring将beanfactory传递给setBeanFactory()方法。

    • 如果任何bean BeanPostProcessors 和该bean相关,Spring调用postProcessBeforeInitialization()方法。

    • 如果该Bean实现了InitializingBean接口,调用Bean中的afterPropertiesSet方法。如果bean有初始化函数声明,调用相应的初始化方法。

    • 如果任何bean BeanPostProcessors 和该bean相关,调用postProcessAfterInitialization()方法。

    • 如果该bean实现了DisposableBean,调用destroy()方法。

    21.哪些是最重要的bean生命周期方法,是否能重写它们?

    有两个重要的bean生命周期方法。

    • 第一个是setup方法,该方法在容器加载bean的时候被调用。

    • 第二个是teardown方法,该方法在bean从容器中移除的时候调用。
      bean标签有两个重要的属性(init-method 和 destroy-method),你可以通过这两个属性定义自己的初始化方法和析构方法。
      Spring也有相应的注解:@PostConstruct@PreDestroy

    22.有几种不同类型的自动代理?

    BeanNameAutoProxyCreator
    DefaultAdvisorAutoProxyCreator
    Metadata autoproxying

    23. 什么是Spring的内部bean?

    当一个bean仅被用作另一个bean的属性时,它能被声明为一个内部bean,为了定义inner bean,在Spring 的 基于XML的 配置元数据中,可以在 或 元素内使用 元素,内部bean通常是匿名的,它们的Scope一般是prototype。

    24. Spring中自动装配的方式有哪些?

    • no:不进行自动装配,手动设置Bean的依赖关系。

    • byName:根据Bean的名字进行自动装配。

    • byType:根据Bean的类型进行自动装配。

    • constructor:类似于byType,不过是应用于构造器的参数,如果正好有一个Bean与构造器的参数类型相同则可以自动装配,否则会导致错误。

    • autodetect:如果有默认的构造器,则通过constructor的方式进行自动装配,否则使用byType的方式进行自动装配。

    说明:自动装配没有自定义装配方式那么精确,而且不能自动装配简单属性(基本类型、字符串等),在使用时应注意。

    25.你可以在Spring中注入null或空字符串吗?

    完全可以。

    26. 不同版本的 Spring Framework 有哪些主要功能?

    VersionFeature
    Spring 2.5发布于 2007 年。这是第一个支持注解的版本。
    Spring 3发布于 2009 年。它完全利用了 Java5 中的改进,并为 JEE6 提供了支持。
    Spring 4.0发布于 2013 年。这是第一个完全支持 JAVA8 的版本。。

    27.spring DAO 有什么用?

    Spring DAO 使得 JDBC,Hibernate 或 JDO 这样的数据访问技术更容易以一种统一的方式工作。这使得用户容易在持久性技术之间切换。它还允许您在编写代码时,无需考虑捕获每种技术不同的异常。

    28. 列举 Spring DAO 抛出的异常。

    spring-data-access-exception

    29. spring JDBC API 中存在哪些类?

    • JdbcTemplate

    • SimpleJdbcTemplate

    • NamedParameterJdbcTemplate

    • SimpleJdbcInsert

    • SimpleJdbcCall

    30.Spring AOP and AspectJ AOP 有什么区别?

    Spring AOP 基于动态代理方式实现;AspectJ 基于静态代理方式实现。
    Spring AOP 仅支持方法级别的 PointCut;提供了完全的 AOP 支持,它还支持属性级别的 PointCut。

    推荐

    https://www.processon.com/i/5cd53c2fe4b01941c8cf1c21(ProcessOn是一个在线作图工具的聚合平台~)

    文末

    欢迎关注个人微信公众号:Coder编程
    欢迎关注Coder编程公众号,主要分享数据结构与算法、Java相关知识体系、框架知识及原理、Spring全家桶、微服务项目实战、DevOps实践之路、每日一篇互联网大厂面试或笔试题以及PMP项目管理知识等。更多精彩内容正在路上~

    文章收录至
    Github: https://github.com/CoderMerlin/coder-programming
    Gitee: https://gitee.com/573059382/coder-programming
    欢迎关注并star~

    微信公众号
    展开全文
  • IIT公司于1988年推出一个用于电子电路仿真和设计的EDA工具软件Electronics Work Bench(电子工作台,简称EWB),以界面形象直观、操作方便、分析功能强大、易学易用而得到迅速推广使用。 1996年IIT推出了EWB5.0版本...

    Multisim模拟电路仿真

    本章Multisim10电路仿真软件,讲解使用Multisim进行模拟电路仿真的基本方法。
    目录

    1. Multisim软件入门

    2. 二极管电路

    3. 基本放大电路

    4. 差分放大电路

    5. 负反馈放大电路

    6. 集成运放信号运算和处理电路

    7. 互补对称(OCL)功率放大电路

    8. 信号产生和转换电路

    9. 可调式三端集成直流稳压电源电路

    13.1 Multisim用户界面及基本操作
    在这里插入图片描述
    13.1.1 Multisim用户界面
    在众多的EDA仿真软件中,Multisim软件界面友好、功能强大、易学易用,受到电类设计开发人员的青睐。Multisim用软件方法虚拟电子元器件及仪器仪表,将元器件和仪器集合为一体,是原理图设计、电路测试的虚拟仿真软件。
    Multisim来源于加拿大图像交互技术公司(Interactive Image Technologies,简称IIT公司)推出的以Windows为基础的仿真工具,原名EWB。
    IIT公司于1988年推出一个用于电子电路仿真和设计的EDA工具软件Electronics Work Bench(电子工作台,简称EWB),以界面形象直观、操作方便、分析功能强大、易学易用而得到迅速推广使用。
    1996年IIT推出了EWB5.0版本,在EWB5.x版本之后,从EWB6.0版本开始,IIT对EWB进行了较大变动,名称改为Multisim(多功能仿真软件)。
    IIT后被美国国家仪器(NI,National Instruments)公司收购,软件更名为NI Multisim,Multisim经历了多个版本的升级,已经有Multisim2001、 Multisim7、 Multisim8、Multisim9 、Multisim10等版本,9版本之后增加了单片机和LabVIEW虚拟仪器的仿真和应用。
    下面以Multisim10为例介绍其基本操作。图13.1-1是Multisim10的用户界面,包括菜单栏、标准工具栏、主工具栏、虚拟仪器工具栏、元器件工具栏、仿真按钮、状态栏、电路图编辑区等组成部分。

    图13.1-1 Multisim10用户界面
    菜单栏与Windows应用程序相似,如图13.1-2所示。

    图13.1-2 Multisim菜单栏
    其中,Options菜单下的Global Preferences和Sheet Properties可进行个性化界面设置,Multisim10提供两套电气元器件符号标准:
    ANSI:美国国家标准学会,美国标准,默认为该标准,本章采用默认设置;
    DIN:德国国家标准学会,欧洲标准,与中国符号标准一致。

    工具栏是标准的Windows应用程序风格。
    标准工具栏:
    视图工具栏:
    图13.1-3是主工具栏及按钮名称,图13.1-4是元器件工具栏及按钮名称,图13.1-5是虚拟仪器工具栏及仪器名称。

    图13.1-3 Multisim主工具栏

    图13.1-4 Multisim元器件工具栏

    图13.1-5 Multisim虚拟仪器工具栏

    项目管理器位于Multisim10工作界面的左半部分,电路以分层的形式展示,主要用于层次电路的显示,3个标签为:
    Hierarchy:对不同电路的分层显示,单击“新建”按钮将生成Circuit2电路;
    Visibility:设置是否显示电路的各种参数标识,如集成电路的引脚名;
    Project View:显示同一电路的不同页。
    13.1.2 Multisim仿真基本操作
    Multisim10仿真的基本步骤为:

    1. 建立电路文件
    2. 放置元器件和仪表
    3. 元器件编辑
    4. 连线和进一步调整
    5. 电路仿真
    6. 输出分析结果
      具体方式如下:
    7. 建立电路文件
      具体建立电路文件的方法有:
      打开Multisim10时自动打开空白电路文件Circuit1,保存时可以重新命名
      菜单File/New
      工具栏New按钮
      快捷键Ctrl+N
    8. 放置元器件和仪表
      Multisim10的元件数据库有:主元件库(Master Database),用户元件库(User Database),合作元件库(Corporate Database),后两个库由用户或合作人创建,新安装的Multisim10中这两个数据库是空的。
      放置元器件的方法有:
      菜单Place Component
      元件工具栏:Place/Component
      在绘图区右击,利用弹出菜单放置
      快捷键Ctrl+W
      放置仪表可以点击虚拟仪器工具栏相应按钮,或者使用菜单方式。
      以晶体管单管共射放大电路放置+12V电源为例,点击元器件工具栏放置电源按钮(Place Source),得到如图13.1-6所示界面。

    图13.1-6 放置电源
    修改电压值为12V,如图13.1-7所示。

    图13.1-7 修改电压源的电压值
    同理,放置接地端和电阻,如图13.1-8所示。

    图13.1-8 放置接地端(左图)和电阻(右图)
    图13.1-9为放置了元器件和仪器仪表的效果图,其中左下角是函数信号发生器,右上角是双通道示波器。

    图13.1-9 放置元器件和仪器仪表
    3. 元器件编辑
    (1)元器件参数设置
    双击元器件,弹出相关对话框,选项卡包括:
    Label:标签,Refdes编号,由系统自动分配,可以修改,但须保证编号唯一性
    Display:显示
    Value:数值
    Fault:故障设置,Leakage漏电;Short短路;Open开路;None无故障(默认)
    Pins:引脚,各引脚编号、类型、电气状态
    (2)元器件向导(Component Wizard)
    对特殊要求,可以用元器件向导编辑自己的元器件,一般是在已有元器件基础上进行编辑和修改。方法是:菜单Tools/ Component Wizard,按照规定步骤编辑,用元器件向导编辑生成的元器件放置在User Database(用户数据库)中。
    4. 连线和进一步调整
    连线:
    (1)自动连线:单击起始引脚,鼠标指针变为“十”字形,移动鼠标至目标引脚或导线,单击,则连线完成,当导线连接后呈现丁字交叉时,系统自动在交叉点放节点(Junction);
    (2)手动连线:单击起始引脚,鼠标指针变为“十”字形后,在需要拐弯处单击,可以固定连线的拐弯点,从而设定连线路径;
    (3)关于交叉点,Multisim10默认丁字交叉为导通,十字交叉为不导通,对于十字交叉而希望导通的情况,可以分段连线,即先连接起点到交叉点,然后连接交叉点到终点;也可以在已有连线上增加一个节点(Junction),从该节点引出新的连线,添加节点可以使用菜单Place/Junction,或者使用快捷键Ctrl+J。
    进一步调整:
    (1)调整位置:单击选定元件,移动至合适位置;
    (2)改变标号:双击进入属性对话框更改;
    (3)显示节点编号以方便仿真结果输出:菜单Options/Sheet Properties/Circuit/Net Names,选择Show All;
    (4)导线和节点删除:右击/Delete,或者点击选中,按键盘Delete键。

    图13.1-10是连线和调整后的电路图,图13.1-11是显示节点编号后的电路图。

    图13.1-10 连线和调整后的电路图

          (a)显示节点编号对话框                 (b)显示节点编号后的电路图
    

    图13.1-11 电路图的节点编号显示
    5.电路仿真
    基本方法:
    按下仿真开关,电路开始工作,Multisim界面的状态栏右端出现仿真状态指示;
    双击虚拟仪器,进行仪器设置,获得仿真结果

    图13.1-12是示波器界面,双击示波器,进行仪器设置,可以点击Reverse按钮将其背景反色,使用两个测量标尺,显示区给出对应时间及该时间的电压波形幅值,也可以用测量标尺测量信号周期。

    图13.1-12 示波器界面(右图为点击Reverse按钮将背景反色)

    1. 输出分析结果
      使用菜单命令Simulate/Analyses,以上述单管共射放大电路的静态工作点分析为例,步骤如下:
      菜单Simulate/Analyses/DC Operating Point
      选择输出节点1、4、5,点击ADD、Simulate

    图13.1-13 静态工作点分析

    13.2 二极管及三极管电路13.2.1 二极管参数测试仿真实验
    半导体二极管是由PN结构成的一种非线性元件。典型的二极管伏安特性曲线可分为4个区:死区、正向导通区、反向截止区、反向击穿区,二极管具有单向导电性、稳压特性,利用这些特性可以构成整流、限幅、钳位、稳压等功能电路。
    半导体二极管正向特性参数测试电路如图13.2-1所示。表13.2-1是正向测试的数据,从仿真数据可以看出:二极管电阻值不是固定值,当二极管两端正向电压小,处于“死区”,正向电阻很大、正向电流很小,当二极管两端正向电压超过死区电压,正向电流急剧增加,正向电阻也迅速减小,处于“正向导通区”。

    图13.2-1 二极管正向特性测试电路

    表13.2-1 二极管正向特性仿真测试数据
    Rw
    10%
    20%
    30%
    50%
    70%
    90%
    Vd/mV
    299
    496
    544
    583
    613
    660
    Id/mA
    0.004
    0.248
    0.684
    1.529
    2.860
    7.286
    rd=Vd/Id(欧姆)
    74750
    2000
    795
    381
    214
    90.58

    半导体二极管反向特性参数测试电路如图13.2-2所示。

    图13.2-2 二极管反向特性测试电路
    表13.2-2是反向测试的数据,从仿真数据可以看出:二极管反向电阻较大,而正向电阻小,故具有单向特性。反向电压超过一定数值(VBR),进入“反向击穿区”,反向电压的微小增大会导致反向电流急剧增加。
    表13.2-2 二极管反向特性仿真测试数据
    Rw
    10%
    30%
    50%
    80%
    90%
    100%
    Vd/mV
    10000
    30000
    49993
    79982
    80180
    80327
    Id/mA
    0
    0.004
    0.007
    0.043
    35
    197
    rd=Vd/Id(欧姆)

    7.5E6
    7.1E6
    1.8E6
    2290.9
    407.8

    13.2.2 二极管电路分析仿真实验
    二极管是非线性器件,引入线性电路模型可使分析更简单。有两种线性模型:
    (1)大信号状态下的理想二极管模型,理想二极管相当于一个理想开关;
    (2)正向压降与外加电压相比不可忽略,且正向电阻与外接电阻相比可以忽略时的恒压源模型,即一个恒压源与一个理想二极管串联。
    图13.2-3是二极管实验电路,由图中的电压表可以读出:二极管导通电压Von = 0.617V; 输出电压Vo = -2.617V。

    图13.2-3二极管实验电路(二极管为IN4148)
    利用二极管的单向导电性、正向导通后其压降基本恒定的特性,可实现对输入信号的限幅,
    图13.2-4(a)是二极管双向限幅实验电路。V1和V2是两个电压源,根据电路图,上限幅值为:V1+Von,下限幅值为:–V2–Von。在Vi的正半周,当输入信号幅值小于(V1+Von)时,D1、D2均截止,故Vo = Vi;当Vi大于(V1+Von)时,D1导通、D2截止,Vo = V1+Von≈4.65V;在Vi的负半周,当|Vi| < V2+Von时,D1、D2均截止,Vo = Vi;当|Vi| >(V2+Von)时,D2导通、D1截止,Vo = -(V2+Von)≈ -2.65V。图13.2-4(b)是二极管双向限幅实验电路的仿真结果,输出电压波形与理论分析基本一致。

    (a)二极管双向限幅仿真电路 (b)输出电压波形
    图13.2-4 二极管双向限幅实验电路
    13.2.3 三极管特性测试
    选择虚拟晶体管特性测试仪(IV-Analysis)XIV1,双击该图标,弹出测试仪界面,进行相应设置,如图13.2-5所示,点击Sim_Param按钮,设置集射极电压的起始范围、基极电流的起始范围,以及基极电流增加步数Num_Steps(对应特性曲线的根数),单击仿真按钮,得到一簇三极管输出特性曲线。
    右击其中的一条曲线,选择show select marts,则选中了某一条特性曲线,移动测试标尺,则在仪器界面下部可以显示对应的基极电流、集射极电压、集电极电流。根据测得的和值,可以计算出该工作点处的直流电流放大倍数,根据测得的和,可以计算出交流电流放大倍数。

    图13.2-5 用晶体管特性测试仪测量三极管特性
    13.3 单管基本放大电路13.3.1 共射放大电路仿真实验
    放大是对模拟信号最基本的处理,图13.3-1是单管共射放大电路(NPN型三极管)的仿真电路图。

    图13.3-1 单管共射放大电路(NPN型三极管)
    进行直流工作点分析,采用菜单命令Simulate/Analysis/DC Operating Point,在对话框中设置分析节点及电压或电流变量,如图13.3-2所示。图13.3-3是直流工作点分析结果。

    图13.3-2 直流工作点分析对话框

    图13.3-3 直流工作点分析结果
    当静态工作点合适,并且加入合适幅值的正弦信号时,可以得到基本无失真的输出,如图13.3-4所示。

    图13.3-4 单管共射放大电路输入输出波形
    但是,持续增大输入信号,由于超出了晶体管工作的线性工作区,将导致输出波形失真,如图13.3-5(a)所示,图13.3-5(b)是进行傅里叶频谱分析的结果,可见输出波形含有高次谐波分量。

    (a)输出波形失真 (b)傅里叶频谱分析结果
    图13.3-5 增大输入后的失真输出波形及其频谱分析结果
    静态工作点过低或者过高也会导致输出波形失真,如图13.3-6所示,由于基极电阻过小,导致基极电流过大,静态工作点靠近饱和区,集电极电流也因此变大,输出电压,大的集电极电流导致整个电路的输出电压变小,因此从输出波形上看,输出波形的下半周趋于被削平了,属于饱和失真。

    图13.3-6 减小Rb后的失真输出波形

    13.3.2 场效应管放大电路仿真实验

    1. 场效应管的转移特性
      场效应管的转移特性指漏-源电压固定时,栅-源电压对漏极电流的控制特性,即 ,按照图13.3-7搭建N沟道增强型场效应管转移特性实验电路,单击Multisim10 菜单“Simulate/Analyses/DC Sweep…”选择直流扫描分析功能,在弹出的对话框“Analysis Parameters”中设置所要扫描的直流电源,并设置起始和终止值、步长值,在“Output”选项卡中选择节点2的电压V[2]为分析节点,由于源极电阻,所以电压V[2]的数值等于源极电流,也等于漏极电流。由图13.3-7(b)可知,N沟道增强型场效应管2N7002的开启电压V。

    (a)仿真电路 (b)转移特性仿真结果
    图13.3-7 场效应管转移特性直流扫描分析
    2. 场效应管共源放大电路
    图13.3-8是场效应管共源放大电路仿真实验电路图,调整电阻和构成的分压网络可以改变,从而改变电压放大倍数。此外,改变电阻、也可改变输出电压。

    (a)仿真电路 (b)输入和输出电压波形
    图13.3-8 场效应管共源放大电路仿真
    13.4 放大电路指标测量13.4.1 输入电阻测量
    万用表可以测量交直流电压、交直流电流、电阻、电路中两个节点之间的分贝损耗,不需用户设置量程,参数默认为理想参数(比如电流表内阻为0),用户可以修改参数。点击虚拟仪器万用表(Multimeter),接入放大电路的输入回路,本例中将万用表设置为交流,测得的是有效值(RMS值)。由于交流输入电阻要在合适的静态工作点上测量,所以直流电源要保留。
    由图13.4-1可见,测得输入回路的输入电压有效值为3.536mV,电流为2.806μA,输入电阻。
    在实验室中进行的实物电路的输入电阻测量要采用间接测量方法,这是因为实际的电压表、电流表都不是理想仪器,电流表内阻不是0,而电压表内阻不是无穷大。

    (a) 输入电阻测量电路

    (b)电压、电流测量结果
    图13.4-1 放大电路输入电阻测量电路图
    13.4.2 输出电阻的测量
    采用外加激励法,将信号源短路,负载开路,在输出端接电压源,并测量电压、电流,如图13.4-2所示。
    由图13.4-2可见,测得输出回路的激励电压有效值为707.106mV,电流为517.861μA,输出电阻。

    (a)输出电阻测量

    (b)电压、电流测量结果
    图13.4-2 放大电路输出电阻测量电路图

    13.4.3 幅频特性的测量
    可以用示波器测量放大电路的增益,以电阻分压式共射放大电路为例,图13.4-3(a)是测量电压放大倍数的电路图,图13.4-3(b)是示波器输出波形。
    移动测试标尺可以读出输入输出波形幅值,进而计算出电压放大倍数,但是,可以发现,标尺处于不同位置计算出的结果不同,仅可作为估计值,此外,输出波形与输入波形相比,存在一定相移,不是理想的反相,即发生了相移,相移大小与频率有关,这就是该放大电路的相频特性。
    除了用示波器进行放大倍数测量的方法。还有两种方法:扫描分析法和波特仪测量法。

    (a) (b)
    图13.4-3 分压式共射放大电路放大倍数的测量

    1. 扫描分析法
      由菜单Simulate/Analyses/AC Analysis,弹出AC Analysis(交流分析)对话框,如图13.4-4所示,选项卡Frequency Parameters中设置Start frequency(起始频率,本例设为1Hz)、Stop frequency(终止频率,本例设为10GHz)、Sweep type(扫描方式,本例设为Decade,十倍频扫描)、Number of points per decade(每十倍频的采样点数,默认为10)、Vertical scale(纵坐标刻度,默认是Logarithmic,即对数形式,本例选择Linear,即线性坐标,更便于读出其电压放大倍数)。
      在Output选项卡中选择节点5的电压V[5]为分析变量,按下Simulate(仿真)按钮,得到图13.4-4(b)所示的频谱图,包括幅频特性和相频特性两个图。
      在幅频特性波形图的左侧,有个红色的三角块指示,表明当前激活图形是幅频特性,为了详细获取数值信息,按下工具栏的Show/Hide Cursors按钮,则显示出测量标尺和数据窗口,移动测试标尺,则可以读取详细数值,如图(c)和(d)所示。同理,可激活相频特性图形,进行相应测量。

    (a)AC Analysis对话框 (b)被分析节点的幅频和相频特性

    (c) 用测试标尺读取详细数值 (d)频响数据
    图13.4-4 扫描分析法进行放大电路幅频特性测量
    2. 波特仪测量法
    波特仪(Bode Plotter)也称为扫频仪,用于测量电路的频响(幅频特性、相频特性),将波特仪连接至输入端和被测节点,如图13.4-5(a)所示,双击波特仪,获得频响特性,图13.4-5(b)是幅频响应,图13.4-5(c)是相频响应。

    (a)波特仪测试频响电路图

    (b)幅频特性测试结果

    (c)相频特性测试结果
    图13.4-5 扫描分析法进行放大电路幅频特性测量
    波特仪的面板设置:
    (1)Mode:模式选择,点击Magnitude获得幅频响应曲线,选择Phase获得相频响应曲线;
    (2)水平和垂直坐标:点击Log选择对数刻度,点击Lin选择线性刻度;
    (3)起始范围:F文本框内填写终了值及单位,I文本框内填写起始值及单位。
    13.5 差动放大电路13.5.1 差动放大电路仿真电路
    直接耦合是多级放大的重要级间连接方式,对直流信号、变化缓慢的信号只能用直接耦合,但随之而来的是零点漂移问题,影响电路的稳定,解决这个问题的一个办法是采用差动放大电路,在电子设备中常用差动放大电路放大差摸信号,抑制温度变化、电源电压波动等引起的共模信号。
    图13.5-1是差动放大电路仿真电路,是由两个相同的共射放大电路组成的,当开关J1拨向左侧时,构成了一个典型的差动放大电路,调零电位器Rw用来调节Q1、Q2管的静态工作点,使得输入信号为0时,双端输出电压(即电阻RL上的电压)为0。
    当开关J1拨向右侧时,构成了一个具有恒流源的差动放大电路,用恒流源代替射极电阻Re,可以进一步提高抑制共模信号的能力。
    差动放大电路的输入信号既可以是交流信号,也可以是直流信号。图13.5-1中,输入信号由函数发生器提供,函数发生器(Function Generator)可以产生正弦波、三角波、矩形波电压信号,可设置的参数有:频率、幅值、占空比、直流偏置,频率范围很宽(0.001pHz~1000THz)。
    差动放大电路需要一正一负两个电压源,实际中不存在负的电压源,将正极接地,则电压源的负极可以提供负的电压,因此,按照图中的接法可以提供正负电压源。
    差动放大电路有两个输入端和两个输出端,因此电路组态有双入双出、双入单出、单入双出、单入单出4种,凡是双端输出,差摸电压放大倍数与单管情况下相同,凡是单端输出,差摸电压放大倍数为单管情况下的一半。

    图13.5-1 差动放大电路仿真电路
    13.5.2 差动放大电路的调零
    调零是指差动放大器输入端不接入信号,调整电路参数使两个输出端达到等电位。
    图13.5-2中是调整电位器Rw,使节点3和节点4的电压相同,这时可认为左右两侧的电路已经对称,调零工作完成。
    图中的电压读数也是两个三极管的集电极静态工作电压。

    图13.5-2 差动放大电路的调零
    13.5.3 差动放大电路的静态工作点
    采用菜单命令Simulate/Analysis/DC Operating Point,选择节点仿真可以获得静态工作点指标,下面采用另一种方法,将电流表和电压表接入仿真电路,获得更直观的静态工作点测量结果,如图13.5-3所示。

    图13.5-3 差动放大电路的静态工作点测量
    13.5.4 差模增益和共模增益测量

    1. 差模电压增益
      双端输入双端输出情况下的差摸电压放大倍数是输出端电压差除以输入端电压差。
      为获得较大电压增益,将仿真电路的参数进行一些调整,测量电路如图13.5-4所示。
      函数发生器设置为输出正弦波,频率1kHz,幅值5mV,“+”端和“-”端接入差动放大电路的两个输入端,COM端接地。
      用电压表测量输入端的电压差,注意双击电压表,将测量模式(Mode)改为交流(AC)模式。
      由图中测量数据,输入端电压差为7.071mV,输出端电压差为308.991mV,双入双出模式时的差摸电压增益为。
      当开关J1拨向右侧时,以恒流源代替射极电阻,则差摸电压增益增加到。
      仿真可发现,负载电阻RL对增益值影响很大,此外,调零电阻Rw、基极电阻Rb1、Rb2、集电极电阻Rc1、Rc2均有影响。

    图13.5-4 双入双出差动放大电路的差摸增益测量

    1. 共模电压增益
      将两输入端短接,COM端接地,构成共模输入方式,如图13.5-5所示。
      调整输入信号频率为1kHz,幅值为1mV,在负载电阻两端接万用表,测得输出电压为6pV左右,“皮”的数量级为10-12,几乎为零。可见,差动放大电路对共模信号有很强的抑制效果。

    图13.5-5 双入双出差动放大电路的共摸增益测量
    13.6 集成运放电路
    由分立元件构成的电路具有电子设计上灵活性大的优点,但缺点是功耗大、稳定性差、可靠性差,此外,设计本身较复杂。集成电路采用微电子技术构成具有特定功能的电路系统模块,与分立元件构成的电路相比,性能有了很大提高,电子设计也更为简单。
    集成运算放大器是高增益、高输入阻抗、低输出阻抗、直接耦合的线性放大集成电路,功耗低、稳定性好、可靠性高。可以通过外围元器件的连接构成放大器、信号发生电路、运算电路、滤波器等电路。
    以集成运放μA741为例,图13.6-1是μA741的管脚示意图及实物照片。

    图13.6-1 集成运放μA741管脚示意图及实物照片

    13.6.1 比例放大电路
    用μA741组成同相比例放大电路,仿真电路图如图13.6-2所示。根据同相比例电路的增益公式,图13.6-2的电压增益应为:。

    (a)同相比例放大电路

    (b)输入、输出电压波形
    图13.6-2 集成运放μA741构成的同相比例放大电路
    从波形上看,输入、输出同相位,用测试标尺测量幅值,可发现输出与输入的比例为3,在一定范围内调整负载电阻,波形基本不变,说明该电路带负载能力强。同理,可以进行反相比例放大电路的仿真,图13.6-3是集成运放μA741构成的反相比例放大电路,其电压增益应为:,这与示波器读数一致。

    图13.6-3 集成运放μA741构成的反相比例放大电路及波形
    由仿真可见,由运算放大器构成比例放大电路的电路结构简单、设计容易、性能稳定、带负载能力强。
    13.6.2有源滤波电路
    根据滤波电路中有无有源元件可将滤波器电路分为无源滤波器和有源滤波器,无源滤波器由无源元器件(电阻、电容、电感)构成电路网络,但其滤波特性随着负载的变化而变化,负载效应明显,不能满足很多应用场合的要求,有源滤波器则通过运放电路提高输入阻抗,降低输出阻抗而大大减少了负载效应。
    简单的有源滤波器是在无源滤波器输出端接一个由运放电路构成的电压跟随器或同相比例放大器,使得滤波的同时可以放大信号,并且提高带负载能力。
    图13.6-4是简单的二阶低通有源滤波电路,运放U1和电阻Rf、R3构成同相比例放大电路,放大倍数为,电阻R1、电容C1、电阻R2、电容C2组成的RC网络是二阶低通滤波电路,其特征频率为Hz。信号源是幅值为1V的交流电压源。
    用菜单命令Simulate/Analyses/AC Analysis对其进行交流分析,频率范围设置为1Hz~1MHz,扫描类型Sweep type选择Decade,纵坐标Vertical Scale选择Linear,Output选项卡中选择节点4作为分析节点,单击Simulate按钮,可得到其频率特性,如图13.6-5所示。

    图13.6-4 简单二阶低通有源滤波电路
    由频率特性可以看出:最大输出为1.9996V,截止频率为对应V(即增益下降3dB)的频率,约为125.4003Hz(标尺2处),而在特征频率处(标尺1处,338.2989Hz),幅值已下降至672.8329mV,可见,实际的截止频率远小于特征频率。为缩小二者的差别,可引入正反馈增大特征频率处的幅值,这就是所谓的压控电压源二阶低通滤波器。

    图13.6-5简单二阶低通有源滤波电路的频率特性

    将电容C1的下端直接接在滤波器输出端,构成图13.6-6所示的压控电压源二阶低通滤波器,其频率特性如图13.6-7所示。

    图13.6-6 压控电压源二阶低通滤波电路

    图13.6-7 压控电压源二阶低通滤波电路的频率特性
    可以看出,特征频率处的幅值有所增大,在特征频率处(测量标尺1,338.2989Hz)幅值增大为1.9857V,截止频率为1.414V所对应的频率,在测量标尺2处(幅值为1.3912),对应频率为439.2605Hz,二者差距由约213Hz缩小至约100Hz,特征频率和截止频率差距大大缩小了。
    品质因数Q的物理意义是特征频率处的电压增益与通带电压增益之比,理论分析给出品质因数Q与通带增益的关系为:,而在本节例子中,通带增益,因此,改变运放电阻或者即可改变品质因数。
    13.7 直流稳压电源13.7.1 桥式整流滤波电路
    建立如图13.7-1所示的单相桥式整流滤波电路,变压器取值Basic Group组的BASIC_VIRTUAL中的TS_VIRTUAL,设置变比(本例设为10),变压器的二次侧有3个抽头,可以有两种接法,如图13.7-1中的(a)和(b)所示,前者的整流波形最大值约为15V,后者约为30V,整流桥选自Diodes组中的FWB中的元件。

    (a)变压器输出15V整流波形

    (b)变压器输出30V整流波形
    图13.7-1 单相桥式整流滤波电路
    以图13.7-1(b)电路为例,图13.7-2是该单相桥式整流滤波电路的输出波形,图(a)是未接入滤波电容C1时的输出波形,即整流桥输出波形,图(b)是接入滤波电容C1时的输出波形,可见,桥式整流后用滤波电容进行滤波,电压平均值上升,电压波动(波纹系数)减小了。
    但是,RC回路参数对波形影响很大,波形与滤波电容的大小有关系,也与负载大小有关系。将负载增至10kΩ,输出波形如图13.7-2(c)所示,可见输出电压的波动进一步减小,若继续将滤波电容增至100μF,则电压波形趋于理想,如图13.7-2(d)所示。
    当负载较轻(对应负载电阻大),对电压波形要求不高时,可采用这种方式提供直流电压,为减少纹波系数,可适当增大滤波电容。

    (a)未接入滤波电容C1时的输出波形 (b)接入滤波电容C1时的输出波形

    (c)电容为47μF、负载为10kΩ时的输出波形 (d)电容为100μF、负载为10kΩ时的输出波形
    图13.7-2 单相桥式整流滤波电路的输出波形
    13.7.2 串联线性稳压电路
    串联稳压是指稳压元件(调整三极管)与负载串联的稳压电路,图13.7-3是串联线性稳压电路,稳压管取自Diodes组的DIODES_VIRTUAL中的ZENER_VIRTUAL,可修改稳压值;调整三极管的选择要确保最大耗散功率满足要求(一般不小于2W),并保证电流输出能力(对应最小输出电压);取样电阻取千欧级以降低功耗。

    图13.7-3 串联线性稳压电路

    图13.7-4是串联线性稳压电路的输入、输出波形,示波器上部的波形是串联稳压电路输入电压信号,可见存在电压纹波,下部的波形是串联稳压电路的输出电压信号,几乎是理想的直流电压。
    调整取样电位器,可以调整输出电压的幅值,获得一定可调范围的直流输出电压。

    Multisim入门到精通视频教程:如果需要请私信我

    展开全文
  • 我们经常谈画面、设计风格,那么你知道视觉画面风格种类有哪些吗?今天我们就来详细价绍一下设计中比较常用的一些风格集合。 品牌或者产品的设计风格与配色是相辅相成的,因此好的设计必须是依托产品展示特性与其相...

    我们经常谈画面、设计风格,那么你知道视觉画面风格种类有哪些吗?今天我们就来详细价绍一下设计中比较常用的一些风格集合。

    品牌或者产品的设计风格与配色是相辅相成的,因此好的设计必须是依托产品展示特性与其相对应的需求,如此才能定位并选择合适的设计风格,这样的设计作品才能有助于品牌和产品利于提升视觉效果。

    所以我们需要随时了解最新的设计趋势与风格,分清各个设计风格的特点和区别是十分有必要的。下面便是设计中常用的设计风格集合。

    1. 半扁平化设计
    关键词:极简、符号化、光影。

    由于具体化设计的影响,界面设计更加趋向于立体化,光和阴影的运用,成为「半扁平化设计」。为了适应现代科技而推崇的扁平化设计仍会存在,但已不再被大量发展并使用。适量渐变阴影的使用,将会在保留其简约风格的基础上,使扁平化设计更加复杂和写实化。

    在这里插入图片描述

    2. 三维渲染风格
    关键词:平面立体感,纯色,空间感。

    空间感的布局拓展了画面深度,同时物体纯色系的渲染方式又强化了画面的平面感。设计将干扰人们注意力的因素排除,只留下需要传达的主题部分,令人印象深刻,这样的形式已经在摄影及三维艺术中流行起来,充满仪式感的画面让设计者爱不释手。
    在这里插入图片描述

    3. 动画效果
    动画效果已经越来越多的以各种形式出现在网页设计上,诸如 gif、SVG、WebGL、CSS 或小视频。

    在这里插入图片描述

    4. 渐变色
    关键词:多色、同色系、对比色。

    渐变色是时下最主要的流行趋势之一,始于 2016 且势头至今有增无减。像 Instagram 这样的业界大拿甚至将其 logo 由扁平改成了多颜色渐变。从 logo 到按键和图片,渐变色的潮流已经无处不在。

    在这里插入图片描述

    想要了解关于二维码的资讯?点击链接https://www.erweicaihong.cn/ 了解更多。

    5. 极简风格

    关键词:极简、雅致、留白。

    在内容越来越多的前提下,设计师应该减少无用信息的干扰让用户可以快速聚焦到内容本身,这种「少即是多」的设计思路就是我们常说的极简风格。删减与用户任务无关的非功能性元素,只保留重要的信息,减轻用户的认知负荷。

    在这里插入图片描述

    6. 波普风格

    关键词:波点、夸张、设计感极强。

    波普风格主要体现在大众喜闻乐见的人物、事物、事件中。简单来说,它有以下几个特点:
    (1)设计中强调新奇和独特,采用强烈的色彩处理,个性化的配色风格很有感染力。
    (2)图案是最主要的表现形式。常常带有娱乐、趣味性、诙谐性。
    (3)难以确定统一的风格,追求各种风格的混合,追求新奇、古怪。
    (4)通俗大众,设计元素一般来自日常生活中的人物、事物。
    (5)拼接。
    在这里插入图片描述

    7. 孟菲斯风格

    关键词:明快,集合结构,随性。

    孟菲斯风格在色彩上,常常打破配色规律,喜欢用一些靓丽、纯度高、大胆、对比强烈的配色,借鉴了波普艺术的配色。在排版上,元素之间没有过多的联系,元素的排列常常无规律可循,运用大量的几何元素,点、线、面综合运用。规则的几何图形有圆形、三角形、矩形、圆环、波浪线、网格、斜杠等等,不规则的几何图形也是由点、线、面拼贴而成。
    在这里插入图片描述

    8. 光感透气叠加

    关键词:光感,渐变,氤氲感。

    具有光感的半透明渐变叠加平面设计风格。光因为其剔透,纯净,反射的特性,一直被人们所青睐着。人们不再满足于简单的色彩叠加,增加光感的设计将会为产品增添更多的未来迷幻属性。
    在这里插入图片描述

    9.插画风格

    插画也有许多分类。

    在这里插入图片描述

    (1)扁平插画:简单来讲就是把复杂的关系简约化,让画面更加清爽整洁,也是现在比较常用的风格了,很多商务工具类的 APP 会选择使用这种风格。

    (2)肌理插画:顾名思义就是给插画加上了些肌理质感(比如杂色)和光感,本质也和扁平插画差不多,一些想体现质感的页面会用到这种风格。

    (3)手绘插画:需要设计师具备很强的绘画功底,也算是插画里面难度比较高的一种。手绘风格的插画运用得也比较广,常见的有插画绘本,故事场景设计等。

    (4)MBE插画:dribbble 的一位设计师创作了这种风格,它主要的特点就是圆润、可爱、呆萌、简洁。在 APP 中的引导页、启动页和缺省页运用也比较广泛。

    (5)渐变插画:有点类似日本漫画场景的感觉,风格特别唯美浪漫。光感比较强,所以也称为微光插画。颜色一般采用相近色,颜色种类不要太多。

    (6)2.5D插画:立体插画,也就是在二维的空间里表现三维的事物。大多设计师使用 C4D 设计,PS/AI 也可以。

    10. 中国风

    关键词:水墨、雅致、文艺。

    利用中国风的视觉元素在设计上完成表达。在各种视觉表现形式中,国画,书法,服饰纹理,建筑结构,陶瓷等传统材料肌理等等,都可以作为素材,利用中国风元素的同时,适当改造,更换色彩,简化结构,复杂化肌理效果等等,以求在视觉上更接近品牌的气质。
    在这里插入图片描述

    11. 赛博朋克
    关键词:虚拟现实、人工智能、霓虹光感。

    赛博朋克又称赛伯朋克、数字朋克、电脑判客、网络判客,是科幻小说的一个分支,以计算机或信息技术为主题。在视觉设计中的特点就是蓝、紫、青等冷色调为主色调,霓虹灯光感效果为辅助,故障艺术风为辅助(图像的失真、错位、破碎等),有时还可以加一些异常的现象,比如 180 度翻转的建筑,还有复古风和未来风并存。
    在这里插入图片描述

    12. 蒸汽波(Vaporwave)

    关键词:荧光、流体、梦幻感。

    蒸汽波是一种受赛博朋克影响的网络线上艺术,选用的视觉元素主要有古典艺术形象,八九十年代的流行文化产物,window95 经典窗口样式,又或者是代表着某个时代记忆的各种事物。

    在这里插入图片描述

    以上只是视觉设计的部分风格,欢迎大家继续补充,二维码作为和视觉搭配的重要元素,在设计上也丝毫不能含糊,如果觉得使用设计软件来设计二维码太过复杂的话,不妨使用二维彩虹二维码美化功能来帮助你,它能快速美化出符合你视觉画面的二维码,让你的二维码更符合品牌调性。

    想要了解关于二维码的更多使用案例和生成美化二维码的具体操作方法,欢迎登录二维彩虹二维码生成器官方网站,更多精彩内容等着你哦。

    原文阅读:
    视觉画面风格种类有哪些呢?

    相关阅读:
    二维码设计不得不知的小技巧!
    多个图片如何生成一个二维码?

    展开全文
  • 音乐类型及不同风格音乐的代表作

    万次阅读 2014-04-10 15:23:43
    音乐类型 trip-hop是英伦/欧洲跳舞音乐的一种,它的名字来源是“ trip+ hip hop"= trip-hop",因为它发源自英国的bristol,因此最早时称作"bristol hip-hop".。由于把把hip-hop(其实很多音乐都是架构在hip-hop上的...
  • 经过小编的不懈努力,终于找到了最全的20种设计风格,今天就针对平面设计有哪些风格的问题,我们来一一进行一下介绍吧 1. 极简艺术 极简平面设计风格颜色上以黑白灰等自然色为重,形式能简化就简化,不会出现任何...
  • 心理辅导平台设计

    千次阅读 2017-12-04 10:22:57
    风险类型 存在风险 规避方法 进度风险 由于时间紧张导致项目最后无法按期完成。 充分考虑各种潜在因素,适当留有余地;任务分解要详细,便于考核;在执行过程中,应该强调项目按照进度执行的重要...
  • 一,提升个人形象1,提前思考(1)外在形象维护:头:身 = 7:3 发型:头 = 7:10身形:搭配:健美身形 = 5:5搭配的关键:合身,干净 --- 极简健美身形关键:阳光的形象 够用的体能------ 发型 和 健身(2)内在...
  • 管理者的4种类型

    万次阅读 2019-06-10 08:17:41
    摘自极客时间的《技术管理36讲》: 第一类是发号施令型。...所以,我们常常把这种管理风格,叫做指令式管理、命令式管理,或者指导式管理。 这样的管理者带给团队的往往是很强的控制气场和压迫感,...
  • 主要设计风格特别流行。 一、极简风 受苹果和北欧性冷淡风的影响,这一类型的设计也渗透到了各大品牌电商首页中。尤其是3C数码和电器品类,在突出产品和特点使其达到一目了然的情况下,文字描述和其它信息都只是...
  • 选择适合自己的学习风格

    千次阅读 2013-08-01 21:49:03
    有些同学可以在图书馆,一坐就是几个小时,沉浸在...学习风格是由学习者特有的认知、情感和生理行为构成,反映学习者如何感知信息、如何与学习环境相互作用并对之做出反应的相对稳定的学习方式。人们的学习风格常是独
  • 主要任务是根据解说词和电视文学脚本来设计相应画面,配置音乐音响,把握片子的节奏和风格等。 剧本为拍摄电影奠定了基础,但它还不能直接用来进行拍摄,导演还要根据剧本内容和自己的总体构思,画成分镜头剧本或...
  • 仓库风格之黑板风格

    千次阅读 2012-10-11 18:55:01
    如我们前面所说被观察者需要有一种状态的改变,所以Observed类中需要定义一种状态属性,在此将以state命名的boolean类型的属性定义在Observed类中。接着一旦被观察者状态改变,观察者需要做出相应的动作,于是在...
  • 各种建筑风格及其代表建筑

    千次阅读 2017-02-22 09:00:00
    各种建筑风格及其代表建筑 2010-10-19 06:35:06|分类:建筑装饰|标签:|字号大中小订阅 建筑风格因受不同时代的政治、社会、经济、建筑材料和建筑技术等的制约以及建筑设计思想、观点和艺术素养等的影响而有所...
  • 于是我们就可以针对image里的每个像素点求偏导,然后按照偏导数指向的方向调整每个像素点的值,这种调整反复进行一定的次数后,所得的图像就是具有抽象或玄幻风格的图像,我们看个具体例子,下面是一张输入图片: ...
  • 艺术签名的几种类型

    2020-12-25 11:53:31
    但艺术签名的类型太致有以下几类。 一、连笔公务签 是专为公务、商务人士在不同的公务场合运用而定制的艺术签名 ,其行笔或潇洒飘逸,或豪放大气。易识易签,注重整体协调而不悖逆章法,格调高雅,完美展现签者的...
  • 艺术(图像风格转换) A Neural Algorithm of Artistic Style 标签(空格分隔): 论文翻译 未完成 1.论文翻译 1.1 课题引入 在绘画方面,人类已经学会如何将内容和风格完美结合从而画出一幅复杂的作品。但是...
  • 上一篇文章: 以下内容来源:亚洲人类学院 ...「人类图」你是什么...文章目录简介一、类型生产者投射者显示者反映者二、人生角色三、定义四、内在权威五、策略显示者显示生产者与生产者投射者反映者六、非自己主题关...
  • 本文将介绍腾讯 AI Lab 发表于 EMNLP 2018 的两篇论文,论文关注的是文本到文本生成研究领域中的文本风格转化及对话生成任务。其中,在文本风格的论文中,作者提...
  • win32程序窗口风格说明

    千次阅读 2012-07-03 16:30:31
    前面的hbr表示它是一个刷子(Brush)的句柄,“刷子”一词形象地表示了填充一个区域的着色模式。Windows预定义了一些刷子,如BLACK_BRUSH和WHITE_BRUSH等,可以用下列语句来得到它们的句柄:  invoke ...
  • 在程序设计中,鸭子类型 (duck typing) 是动态类型的一种风格。在此风格中,一个对象有效的语义,不是由继承自特定的类或实现特定的接口,而是由当前方法和属性的集合决定的。 事实上,duck typing 的概念源于一个...
  • 【单选题】下列不是Python语言关键字的是________ 【多选题】下列合法的Python变量名是( ) 【单选题】下列不合法的Python变量名是________ 【多选题】以下对 Python 程序设计风格描述正确的选项是( ) 【单选题】9//...
  • 企业在发展的不同阶段需要面对的社会成员类型会有所差异,这些成员所关注的媒体类型、传播内容及风格等各方面会有不同的习惯和倾向性。利用数据将目标群体的特征进行统计并形成画像,然后选择适合的媒介策略向目标...
  • 1.我可以通过摩拜单车工厂的Mobike(方法)和MobikeLite方式可以拿到不同类型的单车。-工厂方法模式 2.帮人借车,同事给我发短信叫我帮他去先抢一辆单车,我根据他发的短信内容:“Mobike”(或者“MobikeLite”),...
  • 基于品牌认同理论和社会比较理论,本研究探讨了不同参考群体的正面评论如何影响消费者的品牌评价和购买意图,然后探讨正面网络评论的语言风格如何进一步调节影响力社会比较理论,从不同参考群体类型中获得正面评价。...
  • Java数据类型

    千次阅读 2018-08-30 16:49:31
    基本数据类型(primitive data type) 整型变量/常量 浮点型变量/常量 字符型变量/常量 boolean类型变量/常量 null常量 注释  为了方便程序的阅读,Java语言允许程序员在程序中写上一些说明性的文字,用来提高...
  • FPGA之道(24)VHDL数据类型

    千次阅读 2020-02-11 23:55:01
    所谓的数据类型,都是编程语言抽象出来的,其目的是为了方便开发人员理解、编程、建模等。例如,C语言中无论什么数据类型的变量,其实都对应到内存中的某个地址的部分、整个或多个存储字段。而VHDL中被赋予特定数据...
  • 游戏类型

    千次阅读 2013-04-01 12:23:20
    但由于对大多是《街霸》系列的简单模仿,使玩家产生只是换了个形象的街霸角色的感觉,存活下来的作品并不多,其中SNK的《格斗之王THE KING OF FIGHTERS》(简称KOF)系列最为成功,建立了自己的风格,而且反过来影响...
  • 艺术风格的神经算法 A Neural Algorithm of Artistic Style 译文,未校对 如有错误请见谅 摘要 在美术,尤其是绘画中,人类已经掌握了通过在图像的内容和风格之间构成复杂的相互作用来创造独特视觉体验的...
  • 白沙集团 信息型网站 网站...湘绣湘绣作为我国四大名绣之一以湖南长沙为中心是在湖南民间刺绣工艺的基础上吸取了苏绣和粤绣的精华而发展起来的刺绣工艺品从而形成了自己独特的风格强调写实质朴而优美形象生动;陶瓷主

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,896
精华内容 4,758
关键字:

形象风格类型