大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 Java框架面試題及答案

Java框架面試題及答案

更新時間:2021-05-08 10:03:59 來源:動力節點 瀏覽910次

1.使用Spring框架的好處是什么?

輕量:Spring 是輕量的,基本的版本大約2MB。

控制反轉:Spring通過控制反轉實現了松散耦合,對象們給出它們的依賴,而不是創建或查找依賴的對象們。

面向切面的編程(AOP):Spring支持面向切面的編程,并且把應用業務邏輯和系統服務分開。

容器:Spring 包含并管理應用中對象的生命周期和配置。

2.什么是Spring beans?

Spring beans 是那些形成Spring應用的主干的java對象。它們被Spring IOC容器初始化,裝配,和管理。這些beans通過容器中配置的元數據創建。比如,以XML文件中 的形式定義。

Spring 框架定義的beans都是單件beans。在bean tag中有個屬性”singleton”,如果它被賦為TRUE,bean 就是單件,否則就是一個 prototype bean。默認是TRUE,所以所有在Spring框架中的beans 缺省都是單件。

3.解釋Spring支持的幾種bean的作用域

Spring框架支持以下五種bean的作用域:

singleton : bean在每個Spring ioc 容器中只有一個實例。

prototype:一個bean的定義可以有多個實例。

request:每次http請求都會創建一個bean,該作用域僅在基于web的Spring ApplicationContext情形下有效。

session:在一個HTTP Session中,一個bean定義對應一個實例。該作用域僅在基于web的Spring ApplicationContext情形下有效。

global-session:在一個全局的HTTP Session中,一個bean定義對應一個實例。該作用域僅在基于web的Spring ApplicationContext情形下有效。

缺省的Spring bean 的作用域是Singleton.

4.Spring框架中的單例bean是線程安全的嗎?

不,Spring框架中的單例bean不是線程安全的

5.spring 依賴注入方式

(1)Set注入

(2)構造器注入

(3)靜態工廠的方法注入

(4)實例工廠的方法注入

6.AOP中的概念

面向切面:在運行時,動態地將代碼切入到類的指定方法、指定位置上的編程思想就是面向切面的編程

7.常用注解:

• @aspect 定義切面

• @pointcut 定義切點

• @before 標注Before Advice定義所在的方法

• @afterreturning 標注After Returning Advice定義所在的方法

• @afterthrowing 標注After Throwing Advice定義所在的方法

• @after 標注 After(Finally) Advice定義所在的方法

• @around 標注Around Advice定義所在的方法

Aspect(切面): 是通知和切入點的結合,通知和切入點共同定義了關于切面的全

部內容—它的功能、在何時和何地完成其功能

joinpoint(連接點):所謂連接點是指那些被攔截到的點。在spring中,這些點指的

是方法,因為spring只支持方法類型的連接點.

Pointcut(切入點):所謂切入點是指我們要對哪些joinpoint進行攔截的定義.

通知定義了切面的”什么”和”何時”,切入點就定義了”何地”.

Advice(通知):所謂通知是指攔截到joinpoint之后所要做的事情就是通知.通知分

為前置通知,后置通知,異常通知,最終通知,環繞通知(切面要完成的功能)

Target(目標對象):代理的目標對象

Weaving(織入):是指把切面應用到目標對象來創建新的代理對象的過程.切面在

指定的連接點織入到目標對象

Introduction(引入):在不修改類代碼的前提下, Introduction可以在運行期為類

動態地添加一些方法或Field.

8.Spring中的AOP底層實現原理

動態代理,照我的理解就是,在不修改原有類對象方法的源代碼基礎上,通過代理對象實現原有類對象方法的增強,也就是拓展原有類對象的功能。

9.什么是Spring boot,Spring boot 有什么特性?

Spring boot 不是對Spring功能上的增強,而是提供了一種快速使用Sping的方式

用來簡化spring應用的初始搭建以及開發過程 使用特定的方式來進行配置(properties或yml文件)

創建獨立的spring引用程序 main方法運行

嵌入的Tomcat 無需部署war文件

簡化maven配置

自動配置spring添加對應功能starter自動化配置

10.springboot常用的starter有哪些

spring-boot-starter-web 嵌入tomcat和web開發需要servlet與jsp支持

spring-boot-starter-data-jpa 數據庫支持

spring-boot-starter-data-redis redis數據庫支持

spring-boot-starter-data-solr solr支持

mybatis-spring-boot-starter 第三方的mybatis集成starter

11.springboot自動配置的原理

在spring程序main方法中 添加@SpringBootApplication或者@EnableAutoConfiguration

會自動去maven中讀取每個starter中的spring.factories文件 該文件里配置了所有需要被創建spring容器中的bean

12.什么是Spring cloud,Spring cloud有什么特性

Spring cloud 就是一套分布式服務治理的框架,它不會提供具體功能的操作,更專注于服務發現注冊、配置中心、消息總線、負載均衡、斷路器、數據監控等等。

13.Spring boot 和Spring cloud 的區別

(1)Spring boot 是 Spring 的一套快速配置腳手架,可以基于spring boot 快速開發單個微服務;Spring Cloud是一個基于Spring Boot實現的云應用開發工具;

(2)Spring boot專注于快速、方便集成的單個個體,Spring Cloud是關注全局的服務治理框架;

(3)spring boot使用了默認大于配置的理念,很多集成方案已經幫你選擇好了,能不配置就不配置,Spring Cloud很大的一部分是基于Spring boot來實現。

(4)Spring boot可以離開Spring Cloud獨立使用開發項目,但是Spring Cloud離不開Spring boot,屬于依賴的關系。

14.Dubbo能做什么?

(1)透明化的遠程方法調用,就像調用本地方法一樣調用遠程方法,只需簡單配置,沒有任何API侵入。

(2)軟負載均衡及容錯機制,可在內網替代F5等硬件負載均衡器,降低成本,減少單點。

(3)服務自動注冊與發現,不再需要寫死服務提供方地址,注冊中心基于接口名查詢服務提供者的IP地址,并且能夠平滑添加或刪除服務提供者。

15.dubbo使用方法

Dubbo采用全Spring配置方式,透明化接入應用,對應用沒有任何API侵入,只需用Spring加載Dubbo的配置即可,Dubbo基于Spring的Schema擴展進行加載。如果不想使用Spring配置,而希望通過API的方式進行調用(不推薦)

Dubbo采用全Spring配置方式,透明化接入應用,對應用沒有任何API侵入,只需用Spring加載Dubbo的配置即可,Dubbo基于Spring的Schema擴展進行加載。

16.Mybatis是如何進行分頁的?分頁插件的原理是什么?

Mybatis使用RowBounds對象進行分頁,它是針對ResultSet結果集執行的內存分頁,而非物理分頁,可以在sql內直接書寫帶有物理分頁的參數來完成物理分頁功能,也可以使用分頁插件來完成物理分頁。

分頁插件的基本原理是使用Mybatis提供的插件接口,實現自定義插件,在插件的攔截方法內攔截待執行的sql,然后重寫sql,根據dialect方言,添加對應的物理分頁語句和物理分頁參數。

舉例:select * from student,攔截sql后重寫為:select t.* from (select * from student)t limit 0,10

17.簡述Mybatis的插件運行原理,以及如何編寫一個插件。

Mybatis僅可以編寫針對ParameterHandler、ResultSetHandler、StatementHandler、Executor這4種接口的插件,Mybatis使用JDK的動態代理,為需要攔截的接口生成代理對象以實現接口方法攔截功能,每當執行這4種接口對象的方法時,就會進入攔截方法,具體就是InvocationHandler的invoke()方法,當然,只會攔截那些你指定需要攔截的方法。

實現Mybatis的Interceptor接口并復寫intercept()方法,然后在給插件編寫注解,指定要攔截哪一個接口的哪些方法即可,記住,別忘了在配置文件中配置你編寫的插件。

18.Mybatis動態sql是做什么的?都有哪些動態sql?能簡述一下動態sql的執行原理不?

Mybatis動態sql可以讓我們在Xml映射文件內,以標簽的形式編寫動態sql,完成邏輯判斷和動態拼接sql的功能,Mybatis提供了9種動態sql標簽trim|where|set|foreach|if|choose|when|otherwise|bind。

其執行原理為,使用OGNL從sql參數對象中計算表達式的值,根據表達式的值動態拼接sql,以此來完成動態sql的功能。

19.Mybatis是如何將sql執行結果封裝為目標對象并返回的?都有哪些映射形式?

第一種是使用標簽,逐一定義列名和對象屬性名之間的映射關系。第二種是使用sql列的別名功能,將列別名書寫為對象屬性名,比如T_NAME AS NAME,對象屬性名一般是name,小寫,但是列名不區分大小寫,Mybatis會忽略列名大小寫,智能找到與之對應對象屬性名,你甚至可以寫成T_NAME AS NaMe,Mybatis一樣可以正常工作。

有了列名與屬性名的映射關系后,Mybatis通過反射創建對象,同時使用反射給對象的屬性逐一賦值并返回,那些找不到映射關系的屬性,是無法完成賦值的。

20.Mybatis是否支持延遲加載?如果支持,它的實現原理是什么?

Mybatis僅支持association關聯對象和collection關聯集合對象的延遲加載,association指的就是一對一,collection指的就是一對多查詢。在Mybatis配置文件中,可以配置是否啟用延遲加載lazyLoadingEnabled=true|false。

它的原理是,使用CGLIB創建目標對象的代理對象,當調用目標方法時,進入攔截器方法,比如調用a.getB().getName(),攔截器invoke()方法發現a.getB()是null值,那么就會單獨發送事先保存好的查詢關聯B對象的sql,把B查詢上來,然后調用a.setB(b),于是a的對象b屬性就有值了,接著完成a.getB().getName()方法的調用。這就是延遲加載的基本原理。

當然了,不光是Mybatis,幾乎所有的包括Hibernate,支持延遲加載的原理都是一樣的。

21.MyBatis實現一對一有幾種方式?具體怎么操作的?

有聯合查詢和嵌套查詢,聯合查詢是幾個表聯合查詢,只查詢一次, 通過在resultMap里面配置association節點配置一對一的類就可以完成; 嵌套查詢是先查一個表,根據這個表里面 的結果的外鍵id,去再另外一個表里面查詢數據,也是通過association配置,但另外一個表的查詢通過select屬性配置。

22.MyBatis實現一對多有幾種方式,怎么操作的?

有聯合查詢和嵌套查詢,聯合查詢是幾個表聯合查詢,只查詢一次,通過在resultMap里面配 置collection節點配置一對多的類就可以完成; 嵌套查詢是先查一個表,根據這個表里面的 結果的外鍵id,去再另外一個表里面查詢數據,也是通過配置collection,但另外一個表的查詢通過select節點配置。

23.Mybatis比IBatis比較大的幾個改進是什么?

(1)有接口綁定,包括注解綁定sql和xml綁定Sql ,

(2)動態sql由原來的節點配置變成OGNL表達式,

(3)在一對一,一對多的時候引進了association,在一對多的時候引入了collection 節點,不過都是在resultMap里面配置。

24.IBatis和MyBatis在核心處理類分別叫什么?

IBatis里面的核心處理類交SqlMapClient, MyBatis里面的核心處理類叫做SqlSession

以上就是動力節點小編介紹的"Java框架面試題及答案",希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為您服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 香蕉国产人午夜视频在线 | 成人国产在线看不卡 | 国产精品一区二区久久不卡 | 久久久综合中文字幕久久 | 国产国产成人人免费影院 | 欧美久久久久欧美一区 | 网色视频| 国产伦码精品一区二区 | 久草视屏 | 久久99精品久久久久久臀蜜桃 | 亚州毛色毛片免费观看 | 激情四房 | 久一在线视频 | 97人人艹| 可以看美女隐私的网站 | 国产精品极品 | 国产成+人+亚洲+欧美综合 | 国产精品视频一区二区猎奇 | 国产玖玖玖精品视频 | 国产成人a在一区线观看高清 | 国产伦一区二区三区四区久久 | 成年超爽大片免费视频播放 | 国产日韩不卡免费精品视频 | 久久久久久久久久久9精品视频 | 欧美爱爱爱爱免费视频 | 久久亚洲精品一区成人 | 香港aa三级久久三级不卡 | 国产高清免费午夜在线视频 | 欧美18—19sex性护士 | 欧美日韩aa一级视频 | 一级毛片一级片 | 日日夜夜伊人 | 99久久99热久久精品免费看 | 成人在线天堂 | 免费爱爱片 | 久久婷婷激情综合中文字幕 | 人人干夜夜操 | 全高清特级毛片 | 精产国品一二二区视 | 99在线在线视频免费视频观看 | 欧美成人伊人十综合色 |