更新時(shí)間:2020-04-08 13:55:52 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2491次
AOP與IOC的概念(即spring的核心)
a)IOC:Spring是開源框架,使用框架可以使我們減少工作量,提高工作效率并且它是分層結(jié)構(gòu),即相對(duì)應(yīng)的層處理對(duì)應(yīng)的業(yè)務(wù)邏輯,減少代碼的耦合度。而spring的核心是IOC控制反轉(zhuǎn)和AOP面向切面編程。IOC控制反轉(zhuǎn)主要強(qiáng)調(diào)的是程序之間的關(guān)系是由容器控制的,容器控制對(duì)象,控制了對(duì)外部資源的獲取。而反轉(zhuǎn)即為,在傳統(tǒng)的編程中都是由我們創(chuàng)建對(duì)象獲取依賴對(duì)象,而在IOC中是容器幫我們創(chuàng)建對(duì)象并注入依賴對(duì)象,正是容器幫我們查找和注入對(duì)象,對(duì)象是被獲取,所以叫反轉(zhuǎn)。
b)AOP:面向切面編程,主要是管理系統(tǒng)層的業(yè)務(wù),比如日志,權(quán)限,事物等。AOP是將封裝好的對(duì)象剖開,找出其中對(duì)多個(gè)對(duì)象產(chǎn)生影響的公共行為,并將其封裝為一個(gè)可重用的模塊,這個(gè)模塊被命名為切面(aspect),切面將那些與業(yè)務(wù)邏輯無關(guān),卻被業(yè)務(wù)模塊共同調(diào)用的邏輯提取并封裝起來,減少了系統(tǒng)中的重復(fù)代碼,降低了模塊間的耦合度,同時(shí)提高了系統(tǒng)的可維護(hù)性。
hibernate的核心思想。
a)Hibernate的核心思想是ROM對(duì)象關(guān)系映射機(jī)制。它是將表與表之間的操作映射成對(duì)象與對(duì)象之間的操作。也就是從數(shù)據(jù)庫(kù)中提取的信息會(huì)自動(dòng)按照你設(shè)置的映射要求封裝成特定的對(duì)象。所以hibernate就是通過將數(shù)據(jù)表實(shí)體類的映射,使得對(duì)對(duì)象的修改對(duì)應(yīng)數(shù)據(jù)行的修改。
Struts1與Struts2的區(qū)別。
15、最優(yōu)刪除謀字符串的某個(gè)字符。
16-17、Arraylist與linkedlist的區(qū)別
a)都是實(shí)現(xiàn)list接口的列表,arraylist是基于數(shù)組的數(shù)據(jù)結(jié)構(gòu),linkedlist是基于鏈表的數(shù)據(jù)結(jié)構(gòu),當(dāng)獲取特定元素時(shí),ArrayList效率比較快,它通過數(shù)組下標(biāo)即可獲取,而linkedlist則需要移動(dòng)指針。當(dāng)存儲(chǔ)元素與刪除元素時(shí)linkedlist效率較快,只需要將指針移動(dòng)指定位置增加或者刪除即可,而arraylist需要移動(dòng)數(shù)據(jù)。
數(shù)據(jù)庫(kù)優(yōu)化
a)選擇合適的字段,比如郵箱字段可以設(shè)為char(6),盡量把字段設(shè)置為notnull,這樣查詢的時(shí)候數(shù)據(jù)庫(kù)就不需要比較null值
b)使用關(guān)聯(lián)查詢(leftjoinon)查詢代替子查詢。
c)使用union聯(lián)合查詢手動(dòng)創(chuàng)建臨時(shí)表。
d)開啟事物,當(dāng)數(shù)據(jù)庫(kù)執(zhí)行多條語句出現(xiàn)錯(cuò)誤時(shí),事物會(huì)回滾,可以維護(hù)數(shù)據(jù)庫(kù)的完整性。
e)使用外鍵,事物可以維護(hù)數(shù)據(jù)的完整性但是它卻不能保證數(shù)據(jù)的關(guān)聯(lián)性,使用外鍵可以保證數(shù)據(jù)的關(guān)聯(lián)性。
f)使用索引,索引是提高數(shù)據(jù)庫(kù)性能的常用方法,它可以令數(shù)據(jù)庫(kù)服務(wù)器以比沒有索引快的多的速度檢索特定的行,特別是對(duì)于max,min,orderby查詢時(shí),效果更明顯。
g)優(yōu)化的查詢語句,絕大多數(shù)情況下,使用索引可以提高查詢的速度,但如果sql語句使用不恰當(dāng)?shù)脑挘饕裏o法發(fā)揮它的特性。
Tomcat服務(wù)器優(yōu)化(內(nèi)存,并發(fā)連接數(shù),緩存)
a)內(nèi)存優(yōu)化:主要是對(duì)Tomcat啟動(dòng)參數(shù)進(jìn)行優(yōu)化,我們可以在Tomcat啟動(dòng)腳本中修改它的最大內(nèi)存數(shù)等等。
b)線程數(shù)優(yōu)化:Tomcat的并發(fā)連接參數(shù),主要在Tomcat配置文件中server.xml中配置,比如修改最小空閑連接線程數(shù),用于提高系統(tǒng)處理性能等等。
c)優(yōu)化緩存:打開壓縮功能,修改參數(shù),比如壓縮的輸出內(nèi)容大小默認(rèn)為2KB,可以適當(dāng)?shù)男薷摹?/p>
HTTP協(xié)議。
a)常用的請(qǐng)求方法有g(shù)et、post。
b)Get與post的區(qū)別:傳送數(shù)據(jù),get攜帶參數(shù)與訪問地址傳送,用戶可以看見,這的話信息會(huì)不安全,導(dǎo)致信息泄露。而post則將字段與對(duì)應(yīng)值封裝在實(shí)體中傳送,這個(gè)過程用戶是不可見的。Get傳遞參數(shù)有限制,而post無限制。
Java集合類框架的基本接口有哪些?
a)Collection集合接口,List、set實(shí)現(xiàn)Collection接口,arraylist、linkedlist,vector實(shí)現(xiàn)list接口,stack繼承vector,Map接口,hashtable、hashmap實(shí)現(xiàn)map接口。
類加載的過程。
a)遇到一個(gè)新的類時(shí),首先會(huì)到方法區(qū)去找class文件,如果沒有找到就會(huì)去硬盤中找class文件,找到后會(huì)返回,將class文件加載到方法區(qū)中,在類加載的時(shí)候,靜態(tài)成員變量會(huì)被分配到方法區(qū)的靜態(tài)區(qū)域,非靜態(tài)成員變量分配到非靜態(tài)區(qū)域,然后開始給靜態(tài)成員變量初始化,賦默認(rèn)值,賦完默認(rèn)值后,會(huì)根據(jù)靜態(tài)成員變量書寫的位置賦顯示值,然后執(zhí)行靜態(tài)代碼。當(dāng)所有的靜態(tài)代碼執(zhí)行完,類加載才算完成。
對(duì)象的創(chuàng)建
a)遇到一個(gè)新類時(shí),會(huì)進(jìn)行類的加載,定位到class文件。
b)對(duì)所有靜態(tài)成員變量初始化,靜態(tài)代碼塊也會(huì)執(zhí)行,而且只在類加載的時(shí)候執(zhí)行一次。
c)New對(duì)象時(shí),jvm會(huì)在堆中分配一個(gè)足夠大的存儲(chǔ)空間。
d)存儲(chǔ)空間清空,為所有的變量賦默認(rèn)值,所有的對(duì)象引用賦值為null。
e)根據(jù)書寫的位置給字段一些初始化操作。
f)調(diào)用構(gòu)造器方法(沒有繼承)
jvm的優(yōu)化
a)設(shè)置參數(shù),設(shè)置jvm的最大內(nèi)存數(shù)
b)垃圾回收器的選擇
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“阿里java面試題都考些什么”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743