面試問題匯總
1.final鞠柄、finally、finalize的區(qū)別
- final是修飾符:被修飾的類不能被繼承,被修飾的方法不能被重寫煞抬,被修飾的變量只能被賦值一次
- finally是異常處理的重要組成部分:try....catch....finally狼钮,不管時候產(chǎn)生或者跑出異常都會執(zhí)行finally里面的操作碳柱,一般我們在其中做釋放資源的操作
- finalize:是Object類中的方法,所以說所有都得類都會有這個方法熬芜,這個方法主要是在對象被GC機制回收的時候調(diào)用莲镣,一般也是做釋放資源的操作
2.Overload與Override的區(qū)別
-
Overload 特點
- 在使用重載時只能通過不同的參數(shù)樣式。例如涎拉,不同的參數(shù)類型瑞侮,不同的參數(shù)個數(shù),不同的參數(shù)順序(當然鼓拧,同一方法內(nèi)的幾個參數(shù)類型必須不一樣半火,例如可以是fun(int, float), 但是不能為fun(int, int))季俩;
- 不能通過訪問權(quán)限钮糖、返回類型、拋出的異常進行重載酌住;
- 方法的異常類型和數(shù)目不會對重載造成影響店归;
- 重載事件通常發(fā)生在同一個類中阎抒,不同方法之間的現(xiàn)象。
- 存在于同一類中,但是只有虛方法和抽象方法才能被覆寫。
-
Override特點
- 覆蓋的方法的標志必須要和被覆蓋的方法的標志完全匹配咆贬,才能達到覆蓋的效果;
- 覆蓋的方法的返回值必須和被覆蓋的方法的返回一致谴古;
- 覆蓋的方法所拋出的異常必須和被覆蓋方法的所拋出的異常一致,或者是其子類稠歉;
- 方法被定義為final不能被重寫掰担。
- 對于繼承來說,如果某一方法在父類中是訪問權(quán)限是private怒炸,那么就不能在子類對其進行重寫覆蓋带饱,如果定義的話,也只是定義了一個新方法阅羹,而不會達到重寫覆蓋的效果勺疼。(通常存在于父類和子類之間。)
3.什么是事物及其特性
- 概念:事務(wù)是應(yīng)用程序中一系列嚴密的操作捏鱼,所有操作必須成功完成执庐,否則在每個操作中所作的所有更改都會被撤消。也就是事務(wù)具有原子性导梆,一個事務(wù)中的一系列的操作要么全部成功轨淌,要么一個都不做。
- 特性:原子性看尼、隔離型递鹉、持久性、一致性
4.事物會出現(xiàn)的問題(并發(fā)問題)
- 臟讀:一個事物讀到了另外一個事物未提交的數(shù)據(jù)(我還沒提交你就讀到了)
- 不可重復(fù)讀:一個事物讀到了另外一個事物已經(jīng)提交Update的數(shù)據(jù)(我還沒修改完藏斩,你就讀了)
- 幻讀(虛讀):一個事物讀到另外一個事物已經(jīng)提交的增刪的數(shù)據(jù)(我對整個表內(nèi)容操作時躏结,你就增刪數(shù)據(jù))
5.事物的隔離級別
- 讀未提交:所有問題均有可能發(fā)生
- 讀已提交:避免臟讀(oracle默認)
- 不可重復(fù)讀:避免臟讀和不課重復(fù)讀(mysql默認)
- 串行化:避免所有問題
6.數(shù)據(jù)庫的控制
- 事物控制來源于關(guān)系型數(shù)據(jù)庫
- Mysql的控制:
- 存儲引擎:innoDB(支持事物)
- 存儲引擎:MyIsam(不支持事物)
- jdbc事物的控制:關(guān)閉自動提交(CommitAuto(false))
- Hibernate中的事物控制:使用Session進行事物控制:session.beginTransition();
- Spring使用Aop進行事物管理
7.線程的狀態(tài)
- 就緒
- 運行
- 阻塞
- 終止
8.創(chuàng)建線程的方式
- 實現(xiàn)Runnable接口
- 繼承Thread類
- 實現(xiàn)callable和futureTask創(chuàng)建線程
- 通過線程池獲取
9.java面向?qū)ο蟮奶攸c
- 封裝
- 繼承
- 多態(tài)
- 抽象
10.java中的基本數(shù)據(jù)類型
- 整形:byte狰域、short窜觉、int、long
- 浮點型:float北专、double
- 字符型:char
- 布爾型:boolean
11.==與equlas的區(qū)別
對于基本數(shù)據(jù)類型,“==”比較的是兩者的值是否相等旬陡。
-
對于引用數(shù)據(jù)類型
-
“==”比較的是引用的地址是否相同
Object中的.equals()方法和"==’功能一樣拓颓。
但是String類中的.equals()方法重寫了,比較的是兩個引用對象的內(nèi)容是否想同描孟。
-
簡而言之:如果勒種沒有重寫equals()方法的話驶睦,其實與“==”是一樣的
12.你知道的集合類都有哪些以及常用方法
- Collection的子類
- List:ArrayList砰左,LinkedList,Vector
- Set:HashSet场航,TreeSet缠导,HashTable
- 其主要方法有:add(),get(),addAll(),renmove(),contains()
- Map的子類:
- HashMap
- HashTable
- 其主要方法有:put,remove溉痢,get僻造,cotainsKey
13.java中的異常如何處理
- 捕獲異常:try...catch...finally
- 繼續(xù)向上層拋出異常:throws
14.jsp與servlet的卻別以及servlet的執(zhí)行流程
- 區(qū)別:jsp編譯后就是servlet,jsp比servlet更擅長頁面顯示而servlet更注重邏輯控制孩饼,servlet沒有內(nèi)至對象
- servlet的執(zhí)行流程:用戶請求-->servlet映射-->servlet的類-->執(zhí)行doget方法
- servlet的生命周期: init()-->service()-->destory()
15.get請求與post請求的區(qū)別
- get請求的參數(shù)在請求頭中髓削,post在請求體重
- get的安全性相比post較差
- get的內(nèi)容大小有限制
16.重定向和轉(zhuǎn)發(fā)
- 重定向:HttpServletResponse.sendRedirect
- 轉(zhuǎn)發(fā):RequestDispatcher.forward
- 區(qū)別:
- 轉(zhuǎn)發(fā)地址欄不變(一次請求),重定向地址欄變化(兩次)
- 轉(zhuǎn)發(fā)不用寫項目名稱镀娶,重定向需要編寫項目名稱
- 轉(zhuǎn)發(fā)可以使用request對象傳遞值立膛,重定向不可以使用request對象傳遞值
- 轉(zhuǎn)發(fā)只能在服務(wù)器的內(nèi)部進行操作,重定向可以定向到任何的資源L萋搿宝泵!
17.tomcat的常用配置
-
目錄結(jié)構(gòu)
/bin:腳本文件目錄。
/common/lib:存放所有web項目都可以訪問的公共jar包(使用Common類加載器加載)轩娶。
/conf:存放配置文件儿奶,最重要的是server.xml。
/logs:存放日志文件罢坝。
/server/webapps:來管理Tomcat-web服務(wù)用的廓握。僅對TOMCAT可見,對所有的WEB APP都不可見(使用Catalina類加載器加載)嘁酿。
/shared/lib:僅對所有WEB APP可見隙券,對TOMCAT不可見(使用Shared類加載器加載)。
/temp:Tomcat運行時候存放臨時文件用的闹司。
/webapps:web應(yīng)用發(fā)布目錄娱仔。
/work:Tomcat把各種由jsp生成的servlet文件放在這個目錄下。刪除后游桩,啟動時會自動創(chuàng)建牲迫。
-
配置文件
server.xml:主要的配置文件。
web.xml:缺省的web app配置借卧,WEB-INF/web.xml會覆蓋該配置盹憎。
context.xml:不清楚跟server.xml里面的context是否有關(guān)系。port:端口
minProcessors:最小線程
maxProcessors:最大線程
Snipaste_2018-11-15_21-46-41.png
Snipaste_2018-11-15_21-48-51.png
Snipaste_2018-11-15_21-52-38.png
Snipaste_2018-11-15_22-08-26.png
Snipaste_2018-11-15_22-09-31.png
Snipaste_2018-11-15_22-15-49.png
Snipaste_2018-11-15_22-20-43.png
Snipaste_2018-11-15_22-27-33.png
Snipaste_2018-11-15_22-35-31.png
1.png
Snipaste_2018-11-15_23-42-12.png
Snipaste_2018-11-16_00-04-21.png
Snipaste_2018-11-15_22-39-59.png
微信圖片_20181115220205.png
image.png
image.png