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