- 博客(17)
- 收藏
- 关注
原创 java开发面试题:Spring框架中的单例Beans是线程安全的么?
Spring框架并没有对单例bean进行任何多线程的封装处理。关于单例bean的线程安全和并发问题需要开发者自行去搞定。但实际上,大部分的Spring bean并没有可变的状态(比如Serview类和DAO类),所以在某种程度上说Spring的单例bean是线程安全的。如果你的bean有多种状态的话(比如 View Model 对象),就需要自行保证线程安全。最浅显的解决办法就是将多态bean的作用域由“singleton”变更为“prototype”。我是一名开发工程师,目前30K,目前做的是无人驾驶,
2022-06-11 11:24:26 184
原创 java开发面试题:什么是Spring inner beans?
在Spring框架中,无论何时bean被使用时,当仅被调用了一个属性。一个明智的做法是将这个bean声明为内部bean。内部bean可以用setter注入“属性”和构造方法注入“构造参数”的方式来实现。比如,在我们的应用程序中,一个Customer类引用了一个Person类,我们的要做的是创建一个Person的实例,然后在Customer内部使用。我是一名开发工程师,目前30K,目前做的是无人驾驶,欢迎和大家一起交流开发技术,我们一起高薪就业,我们一起打妖怪哦,我们还有面试题小程序哦!...
2022-06-11 11:23:30 1317
原创 java开发面试题:Spring Bean的作用域之间有什么区别?
Spring容器中的bean可以分为5个范围。所有范围的名称都是自说明的,但是为了避免混淆,还是让我们来解释一下:1.singleton:这种bean范围是默认的,这种范围确保不管接受到多少个请求,每个容器中只有一个bean的实例,单例的模式由bean factory自身来维护。2.prototype:原形范围与单例范围相反,为每一个bean请求提供一个实例。3.request:在请求bean范围内会每一个来自客户端的网络请求创建一个实例,在请求完成以后,bean会失效并被垃圾回收器回收。4.Session
2022-06-11 11:22:18 195
原创 java开发面试题:请解释Spring Bean的生命周期?
Spring Bean的生命周期简单易懂。在一个bean实例被初始化时,需要执行一系列的初始化操作以达到可用的状态。同样的,当一个bean不在被调用时需要进行相关的析构操作,并从bean容器中移除。Spring bean factory 负责管理在spring容器中被创建的bean的生命周期。Bean的生命周期由两组回调(call back)方法组成。 我是一名开发工程师,目前30K,目前做的是无人驾驶,欢迎和大家一起交流开发技术,我们一起高薪就业,我们一起打妖怪哦,我们还有面试题小程序哦!...
2022-06-11 11:21:24 305
原创 java开发面试题:怎样用注解的方式配置Spring?
Spring在2.5版本以后开始支持用注解的方式来配置依赖注入。可以用注解的方式来替代XML方式的bean描述,可以将bean描述转移到组件类的 内部,只需要在相关类上、方法上或者字段声明上使用注解即可。注解注入将会被容器在XML注入之前被处理,所以后者会覆盖掉前者对于同一个属性的处理结果。注解装配在Spring中是默认关闭的。所以需要在Spring文件中配置一下才能使用基于注解的装配模式。在 context:annotation-config/标签配置完成以后,就可以用注解的方式在Spring中向属性、方
2022-06-11 11:19:34 216
原创 java开发面试题:如何用基于Java配置的方式配置Spring?
Spring对Java配置的支持是由@Conϐiguration注解和@Bean注解来实现的。由@Bean注解的方法将会实例化、配置和初始化一个 新对象,这个对象将由Spring的IoC容器来管理。@Bean声明所起到的作用与 元素类似。被 @Conϐiguration所注解的类则表示这个类的主要目的是作为bean定义的资源。被@Conϐiguration声明的类可以通过在同一个类的 内部调用@bean方法来设置嵌入bean的依赖关系。如果你要在你的web应用开发中选用上述的配置的方式的话,需要用Annot
2022-06-11 11:18:09 181
原创 java开发面试题:如何用基于XML配置的方式配置Spring?
在Spring框架中,依赖和服务需要在专门的配置文件来实现,我常用的XML格式的配置文件。这些配置文件的格式通常用开头,然后一系列的bean定义和专门的应用配置选项组成。SpringXML配置的主要目的时候是使所有的Spring组件都可以用xml文件的形式来进行配置。这意味着不会出现其他的Spring配置类型(比如声明的方式或基于Java Class的配置方式)Spring的XML配置方式是使用被Spring命名空间的所支持的一系列的XML标签来实现的。Spring有以下主要的命名空间:context、be
2022-06-11 11:16:53 200
原创 java开发面试题:BeanFactory和ApplicationContext有什么区别?
BeanFactory可以理解为含有bean集合的工厂类。BeanFactory包含了种bean的定义,以便在接收到客户端请求时将对应的bean实例化。BeanFactory还能在实例化对象的时生成协作类之间的关系。此举将bean自身与bean客户端的配置中解放出来。BeanFactory还包含了bean生命周期的控制,调用客户端的初始化方法(initializationmethods)和销毁方法(destructionmethods)。从表面上看,applicationcontext如同beanfacto
2022-06-11 11:14:07 307
原创 java开发面试题:请解释下Spring框架中的IoC?
Spring中的 org.springframework.beans 包和 org.springframework.context包构成了Spring框架IoC容器的基础。BeanFactory 接口提供了一个先进的配置机制,使得任何类型的对象的配置成为可能。ApplicationContex接口对BeanFactory(是一个子接口)进行了扩展,在BeanFactory的基础上添加了其他功能,比如与Spring的AOP更容易集成,也提供了处理message resource的机制(用于国际化)、事件传播以
2022-06-11 11:12:53 185
原创 java开发面试题:什么是控制反转(IOC)?什么是依赖注入?
控制反转是应用于软件工程领域中的,在运行时被装配器对象来绑定耦合对象的一种编程技巧,对象之间耦合关系在编译时通常是未知的。在传统的编程方式中,业 务逻辑的流程是由应用程序中的早已被设定好关联关系的对象来决定的。在使用控制反转的情况下,业务逻辑的流程是由对象关系图来决定的,该对象关系图由装配 器负责实例化,这种实现方式还可以将对象之间的关联关系的定义抽象化。而绑定的过程是通过“依赖注入”实现的。控制反转是一种以给予应用程序中目标组件更多控制为目的设计范式,并在我们的实际工作中起到了有效的作用。依赖注入是在编译
2022-06-10 16:10:02 181
原创 java开发面试题:使用Spring框架能带来哪些好处?
下面列举了一些使Spring框架带来的主要好处:• Dependency Injection(DI) 方法使得构造器和JavaBean properties文件中的依赖关系一目了然。• 与EJB容器相比较,IoC容器更加趋向于轻量级。这样一来IoC容器在有限的内存和CPU资源的情况下进行应用程序的开发和发布就变得十分有利。• Spring并没有闭门造车,Spring利用了已有的技术比如ORM框架、logging框架、J2EE、Quartz和JDK Timer,以及其他视图技术。• Spring框架是按照模块
2022-06-10 16:08:49 165
原创 java开发面试题:什么是Spring框架?Spring框架有哪些主要模块?
Spring框架是一个为Java应用程序的开发提供了综合、广泛的基础性支持的Java平台。Spring帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring框架本身亦是按照设计模式精心打造,这使得我们可以在开发环境中安心的集成Spring框架,不必担心Spring是如何在后台进行工作的。Spring框架至今已集成了20多个模块。这些模块主要被分如下图所示的核心容器、数据访问/集成,、Web、AOP(面向切面编程)、工具、消息和测试模块。...
2022-06-10 16:07:53 185
原创 java开发面试题:wait/notify/notifyAll方法需不需要被包含在synchronized块中?这是为什么?
wait/notify/notifyAll方法需不需要被包含在synchronized块中Object.wait(),Object.notify(),Object.notifyAll()都是Object的方法,换句话说,就是每个类里面都有这些方法。Object.wait():释放当前对象锁,并进入阻塞队列Object.notify():唤醒当前对象阻塞队列里的任一线程(并不保证唤醒哪一个)Object.notifyAll():唤醒当前对象阻塞队列里的所有线程为什么这三个方法要与s
2022-06-10 16:06:46 184
原创 java开发面试题:Tomcat本身的参数你一般会怎么调整?
启动参数Tomcat默认可以使用的内存是128MB。可以通过在启动时加入“-Xms”和“-Xmx”参数来获得更大的内存分配。但也要注意GC的问题。集成Web服务器处理静态内容作为一个Jsp/Servlet容器,Tomcat本身对静态Html文件的相应速度远逊Apache等Web服务器。通过与此类Web服务器的集成,可以 将对jsp内容的请求转发至Tomcat,而用Web服务器处理静态内容,能够非常显著的降低整体负载,提高整体响应的速度。调整线程数Tomcat5使用线程池(Apache Portable Ru
2022-06-10 16:05:29 173
原创 java开发面试题:JAVA的AQS是否了解,它是干嘛的?
简单讲就是两句话:1、是什么?AQS就是一个工具类,算是在并发情况下规范了对“资源”或者说“数据”操作的一种机制或者说是规范。专业一点的叫法是:抽象队列同步器2、这玩意干啥呢?AQS是给JAVA一系列锁以及同步器或者同步对象的底层提供了实现的框架,你也可以理解成为一种规范。就比如实现像ReentrantLock,CountDownLatch,Semaphore这样的工具。来提供一下网上比较多的两句话:AQS是什么:AQS,是AbstractQueuedSynchronizer简称,直翻过来叫抽象的队
2022-06-10 15:59:28 220
原创 java开发面试题:多个线程同时读写,读线程的数量远远大于写线程,你认为应该如何解决并发的问题?你会选择加什么样的锁?
多个线程同时读写,读线程的数量远远大于写线程,你认为应该如何解决并发的问题?你会选择加什么样的锁?
2022-06-10 15:57:11 307
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人