更新時間:2020-04-21 14:41:44 來源:動力節(jié)點 瀏覽2436次
1、servlet執(zhí)行流程
客戶端發(fā)出http請求,web服務(wù)器將請求轉(zhuǎn)發(fā)到servlet容器,servlet容器解析url并根據(jù)web.xml找到相對應(yīng)的servlet,并將request、response對象傳遞給找到的servlet,servlet根據(jù)request就可以知道是誰發(fā)出的請求,請求信息及其他信息,當(dāng)servlet處理完業(yè)務(wù)邏輯后會將信息放入到response并響應(yīng)到客戶端。
2、springMVC的執(zhí)行流程
springMVC是由dispatchservlet為核心的分層控制框架。首先客戶端發(fā)出一個請求web服務(wù)器解析請求url并去匹配dispatchservlet的映射url,如果匹配上就將這個請求放入到dispatchservlet,dispatchservlet根據(jù)mapping映射配置去尋找相對應(yīng)的handel,然后把處理權(quán)交給找到的handel,handel封裝了處理業(yè)務(wù)邏輯的代碼,當(dāng)handel處理完后會返回一個邏輯視圖modelandview給dispatchservlet,此時的modelandview是一個邏輯視圖不是一個正式視圖,所以dispatchservlet會通過viewresource視圖資源去解析modelandview,然后將解析后的參數(shù)放到view中返回到客戶端并展現(xiàn)。
3、給定一個txt文件,如何得到某字符串出現(xiàn)的次數(shù)
Filefile=newFile("E://test.txt");
InputStreamis=newFileInputStream(file);
byteb[]=newbyte[1024];
inta=is.read(b);
Stringstr[]=newString(b,0,a).split("");
intcount=0;
for(inti=0;i<str.length;i++){
if("a".equals(str[i]))count++;
}
System.out.println(count);
4、Java設(shè)計模式思想(單列模式,工廠模式,策略模式,共23種設(shè)計模式)
a)單例模式:單例模式核心只需要new一個實例對象的模式,比如數(shù)據(jù)庫連接,在線人數(shù)等,一些網(wǎng)站上看到的在線人數(shù)統(tǒng)計就是通過單例模式實現(xiàn)的,把一個計時器存放在數(shù)據(jù)庫或者內(nèi)存中,當(dāng)有人登陸的時候取出來加一再放回去,有人退出登陸的時候取出來減一再放回去,但是當(dāng)有兩個人同時登陸的時候,會同時取出計數(shù)器,同時加一,同時放回去,這樣的話數(shù)據(jù)就會錯誤,所以需要一個全局變量的對象給全部人使用,只需要new出一個實例對象,這就是單例模式的應(yīng)用,并且單例模式節(jié)省資源,因為它控制了實例對象的個數(shù),并有利于gc回收。
b)策略模式:就是將幾個類中公共的方法提取到一個新的類中,從而使擴展更容易,保證代碼的可移植性,可維護性強。比如有個需求是寫鴨子對象,鴨子有叫,飛,外形這三種方法,如果每個鴨子類都寫這三個方法會出現(xiàn)代碼的冗余,這時候我們可以把鴨子中的叫,飛,外形這三個方法提取出來,放到鴨父類中,讓每個鴨子都繼承這個鴨父類,重寫這三個方法,這樣封裝的代碼可移植性強,當(dāng)用戶提出新的需求比如鴨子會游泳,那么對于我們oo程序員來講就非常簡單了我們只需要在鴨父類中加一個游泳的方法,讓會游泳的鴨子重寫游泳方法就可以了。
c)工廠模式:簡單的工廠模式主要是統(tǒng)一提供實例對象的引用,通過工廠模式接口獲取實例對象的引用。比如一個登陸功能,后端有三個類,controller類,interface類,實現(xiàn)接口的實現(xiàn)類。當(dāng)客戶端發(fā)出一個請求,當(dāng)請求傳到controller類中時,controller獲取接口的引用對象,而實現(xiàn)接口的實現(xiàn)類中封裝好了登陸的業(yè)務(wù)邏輯代碼。當(dāng)你需要加一個注冊需求的時候只需要在接口類中加一個注冊方法,實現(xiàn)類中實現(xiàn)方法,controller獲取接口的引用對象即可,不需要改動原來的代碼,這種做法是的可拓展性強。
5、冒泡排序、二分查找
a)冒泡
publicstaticvoidmp(inta[]){
intswap=0;
for(inti=0;ia[i]){
swap=a[i];
a[i]=a[j];
a[j]=swap;
}
}
}
System.out.println(Arrays.toString(a));
}
b)二分查找
publicstaticintef(inta[],inttag){
intfirst=0;
intend=a.length;
for(inti=0;ia[middle]){
first=middle+1;
}
if(tag<a[middle]){
end=middle-1;
}
}
return0;
}
6-8、對ajax的理解
a)Ajax為異步請求,即局部刷新技術(shù),在傳統(tǒng)的頁面中,用戶需要點擊按鈕或者事件觸發(fā)請求,到刷新頁面,而異步技術(shù)為不需要點擊即可觸發(fā)事件,這樣使得用戶體驗感增強,比如商城購物車的異步加載,當(dāng)你點擊商品時無需請求后臺而直接動態(tài)修改參數(shù)。

以上就是動力節(jié)點java培訓(xùn)機構(gòu)的小編針對“2020年Java軟件工程師面試寶典”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
相關(guān)閱讀