java面試過關寶典_第1頁
java面試過關寶典_第2頁
java面試過關寶典_第3頁
java面試過關寶典_第4頁
java面試過關寶典_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1. final finally finalize 什么區(qū)別答:final-修飾符(關鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為 abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變量必須在聲明時給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載finally-再異常處理時提供 finally 塊來執(zhí)行任何清除操作。如果拋出一個異常,那么相匹配的 catch 子句就會執(zhí)行,然后控制就會進入 finally 塊(

2、如果有的話)。finalize-方法名。Java 技術允許使用 finalize() 方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize() 方法是在垃圾收集器刪除對象之前對這個對象調用的2. Anoymouse Inner class (匿名內部類) 是否可以繼承其他類 是否可以實現(xiàn)其他接口答:不能繼承類,但可以實現(xiàn)接口3. & 和&& 的區(qū)別答:區(qū)

3、別主要答兩點: a.條件操作只能操作布爾型的,而邏輯操作不僅可以操作布爾型,而且 可以操作數(shù)值型b.邏輯操作不會產生短路4. HashMap 和HashTable的區(qū)別答:就HashMap與HashTable主要從三方面來說。一.歷史原因:Hashtable是基于陳舊的Dictionary類的,HashMap是Java 1.2引進的Map接口的一個實現(xiàn) 二.同步性:Hashtable是線程安全的,也就是說是同步的,而HashMap是線程序不安全的,不是同步的 三.值:只有HashMap可以讓你將空值作為一個表的條目的key或value5. 重寫和重載的區(qū)別答:方法的重寫Overriding和重

4、載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading是一個類中多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。如果在一個類中定義了多個同名的方法,它們或有不同的參數(shù)個數(shù)或有不同的參數(shù)類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型6. set元素是不能重復的,那么用什么方法來區(qū)分?用= 或者用 equals()它

5、們有何去區(qū)別答:Set里的元素是不能重復的,那么用iterator()方法來區(qū)分重復與否。equals()是判讀兩個Set是否相等。equals()和=方法決定引用值是否指向同一對象,equals()在類中被覆蓋,為的是當兩個分離的對象的內容和類型相配的話,返回真值7. error和exception區(qū)別答:error 表示恢復不是不可能但很困難的情況下的一種嚴重問題。比如說內存溢出。不可能指望程序能處理這樣的情況;exception 表示一種設計或實現(xiàn)問題。也就是說,它表示如果程序運行正常,從不會發(fā)生的情況8. 給出一個runtime Exception答:NullPoi

6、nterException、IOExcpetion、ClassNotFoundException、FileNotFoundExceptionArrayIndexOutOfBoundException、NumberFormatException、SQLException、ClassCastException9. abstract class 和 interface 答:聲明方法的存在而不去實現(xiàn)它的類被叫做抽象類(abstract class),它用于要創(chuàng)建一個體現(xiàn)某些基本行為的類,并為該類聲明方法,但不能在該類中實現(xiàn)該類的情況。不能創(chuàng)建abstract 類的實例。然而可以創(chuàng)建一個變量,其類型是一

7、個抽象類,并讓它指向具體子類的一個實例。不能有抽象構造函數(shù)或抽象靜態(tài)方法。Abstract 類的子類為它們父類中的所有抽象方法提供實現(xiàn),否則它們也是抽象類為。取而代之,在子類中實現(xiàn)該方法。知道其行為的其它類可以在類中實現(xiàn)這些方法。接口(interface)是抽象類的變體。在接口中,所有方法都是抽象的。多繼承性可通過實現(xiàn)這樣的接口而獲得。接口中的所有方法都是抽象的,沒有一個有程序體。接口只可以定義static final成員變量。接口的實現(xiàn)與子類相似,除了該實現(xiàn)類不能從接口定義中繼承行為。當類實現(xiàn)特殊接口時,它定義(即將程序體給予)所有這種接口的方法。然后,它可以在實現(xiàn)了該接口的類的任何對象上調

8、用接口的方法。由于有抽象類,它允許使用接口名作為引用變量的類型。通常的動態(tài)聯(lián)編將生效。引用可以轉換到接口類型或從接口類型轉換,instanceof 運算符可以用來決定某對象的類是否實現(xiàn)了接口10. list 實現(xiàn)類有哪些?并按照存儲結構,機制簡單說一下答:ArrayList和LinkedListArrayList順序結構,執(zhí)行查詢較快,執(zhí)行增刪較慢LinkedList鏈表結構,執(zhí)行增刪較快,執(zhí)行查詢較慢11. 在Hibernate應用中Java對象的狀態(tài)有哪些?答:瞬時、持久和游離剛實例化的對象,存了數(shù)據,并未和數(shù)據庫建立連接時對象狀態(tài)瞬時的瞬時對象經過save或者將數(shù)據庫中數(shù)據查詢放入實體類

9、中,此時該對象狀態(tài)時持久的持久對象在數(shù)據庫連接關閉后,轉換為游離狀態(tài)游離狀態(tài)的對象經過update操作后,轉換為持久狀態(tài)持久對象經過delete操作后,轉換為瞬時狀態(tài)12. 簡述下inverse 和cascade的作用答:cascade級聯(lián)操作,可以級聯(lián)save-update、delete、all、none Inverse在級聯(lián)操作時控制權由誰管理,true-由外鍵方管理,false-由主鍵方管理13. 什么是AOP ,作用是什么答:面向切面編程:將程序中公共部分提取出來,通過配置文件切入到業(yè)務邏輯代碼中14. 寫出一個排序方式 答:冒泡、插入15. 使用cookie的好處? 答:在客戶端可以

10、較長時間存儲數(shù)據,只要在有效期內通過本機訪問,都可以使用該數(shù)據 安全性較低1、java中是否可以多重繼承,如果不能用什么代替?答:不可以,使用接口替代2.你對jndi的理解答:java命名和目錄接口,即通過執(zhí)行名稱找到指定的資源,此資源可在web服務器上配置3.java GUI 有哪些 ,特點是什么?答:圖形用戶界面,awt和swing4垃圾回收的機制是什么?能否手動回收?答:System.GC()方法或者finalize方法手動回收;默認是自動垃圾回收5.異常機制的原理?答:6關于基線的理解答:4、 事務是什么?有什么作用?Spring事務如何配置?(1):事務(Transaction)是并

11、發(fā)控制的單位,是用戶定義的一個操作序列。這些操作要么都做,要么都不做,是一個不可分割的工作單位。通過事務,SQL Server能將邏輯相關的一組操作綁定在一起,以便服務器保持數(shù)據的完整性。 事務通常是以BEGIN TRANSACTION開始,以COMMIT或ROLLBACK結束。(2):事務通常是以BEGIN TRANSACTION開始,以COMMIT或ROLLBACK結束。COMMIT表示提交,即提交事務的所有操作。具體地說就是將事務中所有對數(shù)據庫的更新寫回到磁盤上的物理數(shù)據庫中去,事務正常結束。ROLLBACK表示回滾,即在事務運行的過程中發(fā)生了某種故障,事務不能繼續(xù)進行,系統(tǒng)將事務中對數(shù)

12、據庫的所有以完成的操作全部撤消,滾回到事務開始的狀態(tài)。 (3)統(tǒng)觀spring事務,圍繞著兩個核心PlatformTransactionManager和TransactionStatus spring提供了幾個關于事務處理的類: TransactionDefinition /事務屬性定義TranscationStatus /代表了當前的事務,可以提交,回滾。PlatformTransactionManager這個是spring提供的用于管理事務的基礎接口,其下有一個實現(xiàn)的抽象類AbstractPlatformTransactionManager,我們使用的事務管理類例如DataSourceTr

13、ansactionManager等都是這個類的子類。一般事務定義步驟:TransactionDefinition td = new TransactionDefinition();TransactionStatus ts = transactionManager.getTransaction(td);try /do sthtransactionMmit(ts);catch(Exception e)transactionManager.rollback(ts);spring提供的事務管理可以分為兩類:編程式的和聲明式的。編程式的,比較靈活,但是代碼量大,存在重復的代碼比較多;聲明式的比編程式的更

14、靈活。編程式主要使用transactionTemplate。省略了部分的提交,回滾,一系列的事務對象定義,需注入事務管理對象.void add() transactionTemplate.execute( new TransactionCallback() pulic Object doInTransaction(TransactionStatus ts) /do sth 聲明式:使用TransactionProxyFactoryBean:<bean id="userManager" class="org.springframework.transactio

15、erceptor.TransactionProxyFactoryBean"> <property name="transactionManager"><ref bean="transactionManager"/></property> <property name="target"><ref local="userManagerTarget"/></property> <property name="

16、transactionAttributes"> <props> <prop key="insert*">PROPAGATION_REQUIRED</prop> <prop key="update*">PROPAGATION_REQUIRED</prop> <prop key="*">PROPAGATION_REQUIRED,readOnly</prop> </props> </property></bean

17、>圍繞Poxy的動態(tài)代理 能夠自動的提交和回滾事務erceptor.TransactionProxyFactoryBeanPROPAGATION_REQUIRED-支持當前事務,如果當前沒有事務,就新建一個事務。這是最常見的選擇。PROPAGATION_SUPPORTS-支持當前事務,如果當前沒有事務,就以非事務方式執(zhí)行。PROPAGATION_MANDATORY-支持當前事務,如果當前沒有事務,就拋出異常。PROPAGATION_REQUIRES_NEW-新建事務,如果當前存在事務,把當前事務掛起。PROPAGATI

18、ON_NOT_SUPPORTED-以非事務方式執(zhí)行操作,如果當前存在事務,就把當前事務掛起。PROPAGATION_NEVER-以非事務方式執(zhí)行,如果當前存在事務,則拋出異常。PROPAGATION_NESTED-如果當前存在事務,則在嵌套事務內執(zhí)行。如果當前沒有事務,則進行與PROPAGATION_REQUIRED類似的操作。5、request和session的區(qū)別?(1)request和session的作用request是獲取信息-通過用戶提交的表單,查詢字符串,cookie等獲得信息 session是服務端用來保存一些數(shù)據(通常是標記狀態(tài)的,當然也可以保存別的) session是服務端的

19、記錄變量,可以跟蹤記錄訪問者動作,比如登錄,退出等。 request用在數(shù)據提交,表單數(shù)據等(2)request和session的優(yōu)點和缺點request占用資源比較少 安全性也比較高 可是相對來說 缺乏持續(xù)性 而session則相對來說 對資源的消耗會大點 安全性相對來說也會稍微低點 可是它能實現(xiàn)比如會話跟蹤技術 個有優(yōu)點和缺點 不過 個人覺得 如果可以使用request的情況下 盡量使用request 因為相對于服務器來說 資源的消耗這個問題還是比較重要的6、如何把字符串轉換成日期格式? Date date = new SimpleDateFormat("yyyy-MM-dd&q

20、uot;).parse("2005-06-09"); String now = new SimpleDateFormat("yyyy年MM月dd日").format(date);7、 sql語句:查詢每個公司2005-2008年的收入綜合,按id排序?Select sum(收入) from 表名 where 年 between (2005,2008) group by 公司名 order by id;1. 請寫出Java基本數(shù)據類型對應的包裝類答:byte Byte , shot Short ,int Integer , long Long, float

21、 Float ,double Double ,char Character, boolean Boolean2. 請寫出jdk1.5新增的新特性(至少寫出4個),談談個人對jdk7新增特性的了解答:jdk 1.5 新增特性 1.泛型 2.for-each 循環(huán) 3.自動拆包裝包 4枚舉 5.可變參數(shù)1.7 對Java集合的增強支持 switch 中可用String 數(shù)值可加下劃線 支持二進制文字自動資源管理 簡化了可變參數(shù)方法的調用3. 請寫出幾個你常碰到的運行時異常,關鍵字throw 和 throws的區(qū)別FileNotFoundException ArrayIndexOutOfBounds

22、Exption throw 用于拋出異常 而throws 表示該方法可能會拋出XX異常 調用該方法時必須處理該異常4. 區(qū)別:break,continuem,return 的作用break 用于跳出循環(huán) continue用于跳出本次循環(huán) return 用于返回 返回值 5. 寫出一個枚舉使用場景(至少一個)參數(shù)是N個固定的值 例如顏色 固定的值6. 畫圖說明servlet的生命周期寫出jsp規(guī)范的3個指令和9大隱式對象,并簡單闡述其作用三個指令:page指令 指令用于定義JSP頁面的各種屬性Include指令 用于引入其它JSP頁面 taglib指令 引入標簽庫9大隱式對象:Request 保

23、存了很多客戶端請求的信息Response 生成服務器端響應,然后將響應結果發(fā)送到客戶端Page 代表頁面本身 也就是servlet中的thisPageContext jsp頁面的上下文 可以訪問頁面中的共享數(shù)據Config 代表jsp配置信息Application 代表jsp所屬的web應用本身Session 代表一次會話Out 代表jsp頁面的輸出流Exception 代表其他頁面的異常和錯誤7. 畫圖說明 轉發(fā)和重定向的執(zhí)行流程重定向轉發(fā)8. 寫出web開發(fā)的四個域對象及其生命周期page jsp有效 離開該頁面request 一次請求 當前請求-下次請求session 一次會話 創(chuàng)建 至

24、session過期或會和結束application 當前web應用 創(chuàng)建 至服務器關閉9. 簡單談談 你對mvc開發(fā)模式的理解MVC全名是Model View Controller,是模型(model)視圖(view)控制器(controller)的縮寫,一種軟件設計典范, 用于組織代碼用一種業(yè)務邏輯和數(shù)據顯示分離的方法,這個方法的假設前提是如果業(yè)務邏輯被聚集到一個部件里面, 而且界面和用戶圍繞數(shù)據的交互能被改進和個性化定制而不需要重新編寫業(yè)務邏輯MVC被獨特的發(fā)展起來用于映射傳統(tǒng)的輸入、 處理和輸出功能在一個邏輯的圖形化用戶界面的結構中。10. 寫出你最常用到的設計模式(至少4個) 單例模式

25、 抽象工廠 代理模式 命令模式11. 請寫出一個遞歸程序public static void DecimalToBinary(int num) if(num =0) return; else DecimalToBinary(num/2); System.out.print (num%2); 請用兩種方式對:5,4,7,1,9,6,3,8,1進行升序排序一、 int nums = 5,4,7,1,9,6,3,8,1; Arrays.sort(nums); 二、 int nums = 5,4,7,1,9,6,3,8,1;for(int j=0;j<nums.length-1;j+)for(int i=j+1;i<nums.length;i+)int temp = numsj;if(temp>numsi)numsj=numsi;numsi=temp;12. 用javascript腳本語言寫一個簡單的計算器13

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論