最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

企業(yè)面試基礎(chǔ)46問

2023-02-16 11:40 作者:鹿是不是鹿  | 我要投稿

1:resource和autowriter區(qū)別

resource按照類型名注入,autowrite按照類型進(jìn)行匹配

2:aop作用,底層原理,那些地方能用到

將一個(gè)系統(tǒng)中共同的業(yè)務(wù)邏輯抽取出來,進(jìn)行單獨(dú)的封裝成一個(gè)組件,然后以配置的方式作用于系統(tǒng),底層實(shí)現(xiàn),jdk代理,cglib動(dòng)態(tài)代碼,jdk代理只能代理接口,cglib可以代理類,應(yīng)用場景,事務(wù)開啟,日志記錄,安全,權(quán)限校驗(yàn)

3:切面,切入點(diǎn),通知

切面就是共通業(yè)務(wù)提出來,在某個(gè)特定條件下共同調(diào)用,切入點(diǎn)就是找到目標(biāo)方法給它追加共通的業(yè)務(wù)邏輯,通知就是切入點(diǎn)方法,這個(gè)共通的業(yè)務(wù)邏輯作用的時(shí)機(jī),常用的環(huán)繞通知,前置后置通知,異常,最終通知等

4:Java的Spring注解配置

例如@Configuration,將類作為一個(gè)bean的定義,@Bean,將方法作為一個(gè)bean

5:spring支持的幾種bean的作用域

singleton,prototype,request,session,global-session(該作用域僅在基于web的spring applicationcontext情形下有效)

6:mybatis的好處

把sql語句從java程序獨(dú)立出來,放在單獨(dú)的xml中書寫,給程序帶來了極大的便利,ibatis封裝了底層jdbc api的調(diào)用細(xì)節(jié),并能自動(dòng)將結(jié)果集轉(zhuǎn)換成Javabean對象,且可以結(jié)合數(shù)據(jù)庫自身特點(diǎn)靈活控制sql語句,能夠?qū)崿F(xiàn)比hibernate等全自動(dòng)orm更高德查詢效率,完成復(fù)雜查詢查詢等

7:怎么把數(shù)據(jù)放入到session里面

可以聲明一個(gè)request,或者session先拿到session,然后就可以放入數(shù)據(jù),或者可以在類上加一個(gè)@SessionAttributes注解,里面包含的字符串就是要放入session里面的key

8:springmvc和starts2的區(qū)別

mvc入口是一個(gè)前端控制器,strus2入口是一個(gè)filter過濾器,mvc基于方法開發(fā),請求參數(shù)傳遞到方法的形參,可以設(shè)計(jì)為單例,多例,starts2基于類開發(fā),傳遞參數(shù)通過類的屬性,只能設(shè)計(jì)為多例

9:spring的事務(wù)管理

事務(wù)就是對一系列的數(shù)據(jù)庫操作,比如插入多條數(shù)據(jù),進(jìn)行統(tǒng)一的提交或回滾操作,要么成功,要么全部失敗,回滾之前的所有操作,可以防止出現(xiàn)臟數(shù)據(jù),防止數(shù)據(jù)庫出問題,spring也有著自己的事務(wù)管理機(jī)制,一般是使用TransactionMananger進(jìn)行管理,可以通過spring的注入來完成此功能,spring事務(wù)管理一般選擇聲明式事務(wù),,可以將事務(wù)管理和業(yè)務(wù)代碼分離,只需要通過注解或者xml配置管理事務(wù),另一種編程式事務(wù)管理,靈活但很難維護(hù)

10:為什么說mybatis是半自動(dòng)的orm映射工具

hibernate屬于全自動(dòng)orm映射工具,使用hibernate查詢關(guān)聯(lián)關(guān)系或者關(guān)系集合對象時(shí),可以根據(jù)關(guān)系模型直接獲取,所以他是全自動(dòng)的,而mybatis在查詢關(guān)聯(lián)對象或關(guān)聯(lián)集合對象時(shí),需要手寫sql來完成,我們稱之為半自動(dòng)orm工具

11:mybatis都有哪些Executor執(zhí)行器,之間區(qū)別是什么

mybatis有三種基本的executor執(zhí)行器,smpleExecutor,沒執(zhí)行一次update/select,就創(chuàng)建一個(gè)statement,用完釋放,reuseexecuter,簡而言之就是重復(fù)使用的statement,batchexecuter,與jdbc批處理相同,按批次進(jìn)行處理

12:mybatis里面的動(dòng)態(tài)SQL是怎么設(shè)定的,用什么語法

一般通過if節(jié)點(diǎn)來實(shí)現(xiàn),如果要寫的完整,必須配合where,trim,trim節(jié)點(diǎn)用來判斷如果動(dòng)態(tài)語句是以and或or開始,那么會(huì)自動(dòng)把這個(gè)and或者or取掉

13:mybatis映射文件中 a標(biāo)簽通過include引用了b標(biāo)簽的內(nèi)容,請問b標(biāo)簽?zāi)芊穸x在a標(biāo)簽的后面,還是說必須定義在a標(biāo)簽的前面

雖然mybatis的xml解析是按順序的,但是b標(biāo)簽可以定在任意地方,解析式解析a,a中的b標(biāo)簽沒有回顯標(biāo)記為未解析狀態(tài),當(dāng)繼續(xù)向下解析完b時(shí),會(huì)再回來重新解析那些未標(biāo)記的標(biāo)簽,此時(shí)再解析a標(biāo)簽時(shí),b標(biāo)簽已經(jīng)存在,a標(biāo)簽也就可以正常解析完成了

14:mybatis是如何將sql執(zhí)行結(jié)果封裝為目標(biāo)對象并返回的,都有哪些映射形式

一種使用reslutmap標(biāo)簽,定義列名屬性名之間的關(guān)系,第二種使用sql的別名功能,將列名書寫為對象屬性名

15:mybatis的動(dòng)態(tài)SQL是做什么的,都有哪些動(dòng)態(tài)sql

完成邏輯判斷和動(dòng)態(tài)拼接sql的功能,mybatis提供了9種動(dòng)態(tài)sql,trim,where,set,foreach,if,choose,when,bind等

16:對springmvc的理解

基于mvc的web框架,springmvc是spring的子容器,spring的一個(gè)模塊,子容器可以拿父容器的東西,但是父容器不能拿子容器的東西,springmvc的前端控制器dispatcherservlet,用于分發(fā)請求,使開發(fā)變得簡單,springmvc的三大組件,處理器映射器,處理器適配器,視圖解析器

17:mybatis接口調(diào)用時(shí)有那些要求

mapper接口的方法名和mapper.xml中定義的每個(gè)sql的id相同,mapper接口的輸入?yún)?shù)類型和mapper.xml中定義的每個(gè)sql的paramterType的類型相同,mapper接口方法的輸出參數(shù)類型和mapper.xml中定義的每個(gè)sql的resultType的類型相同,mapper.xml文件中的namespace及時(shí)mapper接口的類路徑

18:mybatis的優(yōu)缺點(diǎn)

sql寫在xml里面,便于統(tǒng)一管理和優(yōu)化,減少sql與程序代碼的耦合,提供xml標(biāo)簽,支持動(dòng)態(tài)sql編寫,缺點(diǎn)是工作量大,字段多,sql依賴于數(shù)據(jù)庫,導(dǎo)致數(shù)據(jù)庫的依賴性比較差,由于xml里面標(biāo)簽id必須唯一,導(dǎo)致dao中方法不支持重載,所以dao層必須是接口

19:jdbc編程有那些不足之處

(1)數(shù)據(jù)庫鏈接創(chuàng)建,釋放頻繁,造成系統(tǒng)資源浪費(fèi)從而影響性能,連接池可以解決此問題

(2)sql語句寫在代碼中造成代碼不易維護(hù),SQL變動(dòng)需要改變java代碼,sql傳參及解析麻煩,sql變化導(dǎo)致解析代碼變化,如果能將數(shù)據(jù)庫記錄封裝成pojo對象解析比較方便

20:mybatis的編程步驟

創(chuàng)建sql sessionfactory

通過sql sessionfactory創(chuàng)建sqlsession,通過sel session執(zhí)行數(shù)據(jù)庫操作,調(diào)用session.commit提交事務(wù),調(diào)用session.close關(guān)閉事務(wù)

21:什么是mybatis的接口綁定,有什么好處

接口映射就是在ibatis中任意定義接口,然后把接口里面的方法和sql語句綁定,我們通過直接調(diào)用接口方法,例如UserMapper userMapper=sqlSession.getMapper(UserMapper.class)就可以,比起原來sqlsession提供的方法,例如List<Count> countryList = sqlSession.selectList("selectAll"),可以更加靈活的選擇和設(shè)置

mapper.xml接口的本質(zhì)是動(dòng)態(tài)代理

22:mybatis緩存機(jī)制,一級(jí),二級(jí)介紹一下

一級(jí)緩存默認(rèn)開啟sqlsession級(jí)別的緩存,實(shí)現(xiàn)同一個(gè)會(huì)話中數(shù)據(jù)的共享,一級(jí)緩存的生命周期和sqlsession一致,當(dāng)有多個(gè)sqlsession或者分布式環(huán)境下,數(shù)據(jù)庫寫操作會(huì)引起臟數(shù)據(jù)

二級(jí)緩存默認(rèn)不開啟.sqlsessionfactory級(jí)別的緩存,實(shí)現(xiàn)不同會(huì)話中數(shù)據(jù)的共享,是一個(gè)全局變量,可自定義存儲(chǔ)源,如Ehcache,當(dāng)開啟緩存后查詢的流程二級(jí)緩存>一級(jí)緩存?數(shù)據(jù)庫,二級(jí)緩存還可設(shè)置是否允許刷新和刷新頻率實(shí)現(xiàn),實(shí)現(xiàn)類實(shí)現(xiàn)序列化,在mapper文件中開啟<cache>,在配置文件中設(shè)置cacheEnabled為true

23:springmvc和ajax相互調(diào)用的

通過jackson框架就可以把Java里面的對象直接轉(zhuǎn)化成js可以識(shí)別的json對象,具體如下

加入jackso.jar包,在配置文件配置json的映射,在接受ajax方法里面可以直接返回object,list等,但方法前面要加上

24:spring框架事務(wù)管理有哪些優(yōu)點(diǎn)

為不同的事務(wù)api(jdbc,Hibernate),提供了統(tǒng)一的編程模型,為編程式事務(wù)管理提供了一個(gè)簡單的api而非一系列復(fù)雜的事務(wù)api,如jta,支持聲明式事務(wù),可以和spring的多種數(shù)據(jù)訪問技術(shù)很好的融合

25:spring中如何注入一個(gè)java集合

spring提供以下集中集合的配置元素

list,注入一列值,可重復(fù),set,注入一組值,不能重復(fù),map,注入一組鍵值對,鍵和值可為任意類型,props,注入一組鍵值對,鍵值對都只能為string類型

26:spring框架的好處

輕量級(jí),控制反轉(zhuǎn),面向切面的編程,容器,mvc框架,事務(wù),異常處理等

27:spring如何保證controller并發(fā)的安全,

spring多線程請求過來調(diào)用的controller對象都是一個(gè),而不是一個(gè)請求過來就創(chuàng)建一個(gè)controller對象,并發(fā)的安全,原因就在controller對象是單例的,如何讓controller不以單例而以多例形式存在呢,只要在類上加上@Scope("prototype")即可,這樣每次請求調(diào)用的類都是重新生成的但會(huì)影響效率

28:spring中用到了哪些設(shè)計(jì)模式

代理模式,單例模式,工廠模式,適配器模式,觀察者模式等

29:mybatis應(yīng)用中#和$有什么異同點(diǎn)

相同點(diǎn):都是通過get來獲取值

不同點(diǎn):$闖進(jìn)去的字符串不帶引號(hào),#帶引號(hào)

30:spring種食物處理方式以及優(yōu)點(diǎn)

能夠?qū)崿F(xiàn)全局事務(wù)的控制,能夠保證項(xiàng)目模塊在系統(tǒng)中完成的功能是可控制的操作aop

31:spring工廠底層構(gòu)建bean對象借助了什么機(jī)制,當(dāng)對象不實(shí)用了要釋放資源,目的是什么,何為內(nèi)存泄露

借助反射機(jī)制,防止內(nèi)存泄露,獨(dú)享已經(jīng)不適用了單占用著內(nèi)存,就是內(nèi)存泄漏,內(nèi)存泄漏不是內(nèi)存溢出,但是是一個(gè)導(dǎo)火索,內(nèi)存溢出直接導(dǎo)致系統(tǒng)崩潰

32:spring中基于注解如何配置作用域,如何配置延遲加載機(jī)制@Scope("singleton"),@Scope("prototype"),@Lazy(value=true)

33:spring ioc如何理解

spring提供的一種控制反轉(zhuǎn)機(jī)制,目的是將我們項(xiàng)目中對象的依賴管理交給spring實(shí)現(xiàn),這樣可以更好實(shí)現(xiàn)對象關(guān)系的解耦,提高程序的可擴(kuò)展性

34:何為spring bean容器,spring bean 容器與spring ioc容器有什么不同

(1)用于創(chuàng)建bean對象,管理bean對象的容器

(2)springioc容器本質(zhì)上指的就是springbean容器,spring bean容器最核心的一個(gè)機(jī)制是ioc機(jī)制,所以spring bean容器 又稱之為spring ioc容器

35:servlet的調(diào)用過程

瀏覽器向服務(wù)器發(fā)送請求,會(huì)根據(jù)請求中的host頭,得知訪問的死哪一臺(tái)虛擬主機(jī),根據(jù)請求行中的資源路徑得知訪問的是那一個(gè)web應(yīng)用和資源,根據(jù)獲取到的資源路徑到web.xml中匹配真實(shí)的路徑并創(chuàng)建request和reponse對象,服務(wù)器從reponse對象中獲取要發(fā)給瀏覽器的數(shù)據(jù),按照htttp協(xié)議規(guī)定的方式發(fā)送給瀏覽器

36:分布式架構(gòu)

分布式之前,一般采用單體架構(gòu)設(shè)計(jì),單體架構(gòu)設(shè)計(jì)把所有功能模塊寫在一起,這樣的系統(tǒng)擴(kuò)展性不高,如果其中某個(gè)模塊代碼出現(xiàn)了問題,可鞥會(huì)影響整個(gè)服務(wù)器的運(yùn)行,粉武器按照某種規(guī)則,將項(xiàng)目進(jìn)行拆分,從架構(gòu)上降低了系統(tǒng)的耦合性,提高軟件的擴(kuò)展性,可以是按照模塊拆分,也可以是按照層級(jí)拆分

37:redis中集群存儲(chǔ)數(shù)據(jù)的算法

一致性hash算法,hash算法的特性,平衡性,單調(diào)性,分散性

38:什么是緩存穿透

高并發(fā)環(huán)境下,用戶長時(shí)間訪問數(shù)據(jù)庫中不存在的數(shù)據(jù),稱之為緩存穿透,解決方案,IP限流,單位時(shí)間內(nèi)設(shè)定ip請求的次數(shù),2就是布隆過濾器

39:布隆過濾器

是一個(gè)很長的二進(jìn)制向量和一系列隨機(jī)映射函數(shù),用于檢索一個(gè)元素是否在一個(gè)集合中

40:布隆過濾器使用規(guī)則

用戶存儲(chǔ)數(shù)據(jù)時(shí)先通過布隆過濾器,過濾器會(huì)用資深的算法對數(shù)據(jù)進(jìn)行計(jì)算,二進(jìn)制方式存儲(chǔ)起來,當(dāng)用戶查詢數(shù)據(jù)時(shí),過濾器會(huì)用同樣的算法再算一次,如果算出來數(shù)據(jù)位置是1,則代表數(shù)據(jù)存在,允許用戶去訪問緩存或者數(shù)據(jù)庫,如果是0,直接拒絕訪問

41:什么是aop

在不改變原有對象的基礎(chǔ)上,為目標(biāo)對象進(jìn)行功能擴(kuò)展

42:ajax

web應(yīng)用客戶端技術(shù),可以借助客戶端腳本與服務(wù)端應(yīng)用異步通訊,局部刷新,提高響應(yīng)和渲染速度,提高用戶體驗(yàn)

43:jax編程步驟

基于dom事件創(chuàng)建xhr對象,在xhr對象上注冊狀態(tài)監(jiān)聽,與服務(wù)端建立連接,發(fā)送請求

44:四大域有哪些

page,request,session,application

45:創(chuàng)建對象和引用對象的區(qū)別

一個(gè)對象可以被不同的引用變量操縱,一個(gè)引用可以指向不同的對象,存儲(chǔ)空間上,對象一般存儲(chǔ)在堆中,而引用存儲(chǔ)在堆棧,存儲(chǔ)速度更快

46:springboot 核心特性

springboot是一個(gè)腳手架,構(gòu)建在spring framework 基礎(chǔ)之上,基于快速構(gòu)建理念,提供了自動(dòng)配置,可實(shí)現(xiàn)開箱即用特性,其核心主要有起步依賴,自動(dòng)配置,健康檢查


企業(yè)面試基礎(chǔ)46問的評(píng)論 (共 條)

分享到微博請遵守國家法律
共和县| 兰州市| 深泽县| 汉中市| 乌鲁木齐县| 余干县| 尼玛县| 东乌珠穆沁旗| 成安县| 固镇县| 浠水县| 库车县| 平山县| 偏关县| 普兰店市| 德化县| 林州市| 衡山县| 九龙坡区| 拉萨市| 延安市| 卓尼县| 古浪县| 墨脱县| 永寿县| 青神县| 乐至县| 嘉鱼县| 湘乡市| 安福县| 静安区| 巩义市| 黑龙江省| 视频| 波密县| 南召县| 安图县| 无极县| 乌恰县| 高要市| 文水县|