• Java面試寶典版

    時間:2022-06-24 06:52:30 面試 我要投稿
    • 相關推薦

    Java面試寶典2013版

    項目介紹

    Java面試寶典2013版

    在進行技術面試前,提醒大家,必須要準備好項目介紹,即需要準備好你的簡歷中列的所有項目的項目介紹!

    面試時關于項目,面試官常見的問題及回答(以銀行柜臺系統為例):

     你給我簡要介紹一下銀行柜臺系統?

    1、簡易銀行柜臺系統是模擬銀行柜臺的基本功能而做的一個系統。

    2、系統分前臺和后臺部分,前臺部分是銀行柜臺人員操作的,包括:注冊登錄模塊、開銷戶模塊、帳號管理模塊、存取錢轉賬模塊、柜臺人員信息管理;后臺部分是銀行管理者操作的,包括查看日志模塊、管理柜臺人員信息模塊;

    3、我主要負責的是前臺的全部功能;

     你詳細介紹一下你負責的模塊的功能?

    1、我負責的注冊登錄模塊和柜臺人員信息模塊實際上是管理柜臺人員信息的,內容比較簡單;

    2、開銷戶模塊、帳號管理模塊、存取錢轉賬模塊是為銀行儲戶服務的模塊。其中開銷戶就是為儲戶開戶、銷戶的功能,賬戶管理模塊就是幫儲戶凍結帳號、修改密碼等功能,存取錢轉賬模塊就是為儲戶存錢、取錢,幫儲戶轉賬的功能;

     這個項目幾個人做的?用了多長時間?

    1、 這個項目比較小,由2個人合作完成的,我負責的是前臺部分;

    2、 項目大概用了4天左右的時間;

     這個項目使用了什么技術?

    1、 這個項目使用Struts2、Hibernate3和MySQL

     你在做這個項目的時候,遇到了什么困難,怎么解決的?

    1、 比如在Hiberante的使用,關于表之間關聯關系的配置,我開始操作的時候不太熟悉,后來通過查文檔、和其他同學溝通的方式,這個問題也得到了解決;

    備注:如果你在這里提到了表之間關聯關系的配置,那么這個問題面試官非常有可能接下去就問這個技術問題,所以務必認真準備這個技術問題。

    前言

    這套面試題主要目的是幫助那些還沒有java軟件開發實際工作經驗,而正在努力尋找java軟件開發工作的學生在筆試/面試時更好地贏得好的結果。由于這套試題涉及的范圍很泛,很廣,很雜,大家不可能一天兩天就看完和學完這套面試寶典,即使你已經學過了有關的技術,那么至少也需要半個月的時間才能消化和掌握這套面試寶典,所以,大家應該早作準備,從拿到這套面試寶典之日起,就要堅持在每天閑暇之余學習其中幾道題目,日積月累,等到出去面試時,一切都水到渠成,面試時就自然會游刃有余了。

    答題時,先答是什么,再答有什么作用,要注意什么(這條可以沒有)

    比如說面試官問:給我介紹一下ORM?

    較好回答:

    1、 ORM就是Object Relational Mapping,就是對象關系映射;

    2、 作用:我們在寫程序的時候,用的是面向對象的方法,但是在關系型數據庫里,存的是一條條的記錄;為了用純面向對象的思想解決問題,所以需要將程序中的對象和數據庫中的記錄建立起映射關系,ORM就是將對象和數據庫中的記錄建立起映射的技術;

    答案要層次分明,條理清晰,從這些表面的東西也可以看出一個人的習慣、辦事風格、條理等。

    答題不局限于什么格式和形式,就是要將自己的掌握的技術內容展現出來,比如可以采用舉例的說法:

    需要特別注意的是,因為面試官本身水平層次不齊,不要因為人家題目問的模棱兩可(或者題目問的不準確),你就心里膽怯和沒底氣了,不敢回答了。你要大膽地提出對方題目中你不清楚的地方,希望對方能重新明確的提出問題?

    例如,你可以問:您提的問題,我剛才沒有完全聽明白,能不能再說一遍。

    一. Java基礎部分

    1、 請說一下break和continue的區別?

    1、這兩個語句都可以用于跳出循環的;

    2、break是中止循環,執行循環體以后的語句,而continue是跳出本次循環,執行下一次循環;

    2、 switch 中用于判斷的表達式,可以用哪些數據類型?

    1、可以是char、byte、short、int,不可以是long、String等其他類型;

    2、從JDK1.7開始,支持String類型;

    3、 char型變量中能不能存貯一個中文漢字?為什么?

    Java里采用了Unicode編碼格式,Unicode編碼中一個char型占用2個字節,而一個漢字也是占用2個字節,所以可以存儲中文漢字。

    備注:C語言里,char占用1個字節,不用存漢字。

    4、 靜態變量和實例變量的區別?

    在語法定義上的區別:靜態變量前要加static關鍵字,而實例變量前則不加。

    在程序運行時的區別:實例變量屬于某個對象的屬性,必須創建了實例對象,其中的實例變量才會被分配空間,才能使用這個實例變量。靜態變量不屬于某個實例對象,而是屬于類,所以也稱為類變量,不用創建任何實例對象,靜態變量就會被分配空間,靜態變量就可以被使用了?傊,實例變量必須創建對象后才可以通過這個對象來使用,靜態變量則可以直接使用類名來引用。

    5、 是否可以從一個static方法內部發出對非static方法的調用?

    不可以。因為非static方法是要與對象關聯在一起的,必須創建一個對象后,才可以在該對象上進行方法調用,而static方法調用時不需要創建對象,可以直接調用。也就是說,當一個static方法被調用時,可能還沒有創建任何實例對象,如果從一個static方法中發出對非static方法的調用,那個非static方法是關聯到哪個對象上的呢?這個邏輯無法成立,所以,一個static方法內部發出對非static方法的調用。

    6、 Integer與int的區別

    1、int是基本數據類型,Integer是包裝類;

    2、int的默認值是0,Interger的默認值是null;

    7、 Overload和Override的區別。參數列表相同,返回值不同的方法,是否是重載方法?

    Overload是重載的意思,Override是覆蓋的意思,也就是重寫。

    重載是指在一個類里,方法名相同,參數不同;

    重寫是指子類繼承父類,子類里重新編寫了父類中的同名(同參數)方法,也就是覆蓋了父類的方法;

    不是!因為重載必須要求參數列表不同!

    8、 接口是否可繼承接口? 抽象類是否可實現(implements)接口? 抽象類是否可繼承具體類(concrete class)?

    接口可以繼承接口。抽象類可以實現(implements)接口,抽象類是否可繼承具體類。

    備注:只要明白了接口和抽象類的本質和作用,這些問題都很好回答。

    只有記住抽象類與普通類的唯一區別就是不能創建實例對象和允許有abstract方法。

    9、 面向對象有哪三大特性?

    1、面向對象有三大特性,分別是:封裝、繼承和多態。

    2、封裝:面向對象的封裝就是把描述一個對象的屬性和行為的代碼封裝在一個類中,有些屬性是不希望公開的,或者說被其他對象訪問的,所以我們使用private修飾該屬性,使其隱藏起來;類中提供了方法(用public修飾),常用的是get、set方法,可以操作這些被隱藏的屬性,其他類可以通過調用這些方法,改變隱藏屬性的值!

    下面的回答是更高要求,不需要學生必須掌握:

    封裝是保證軟件部件具有優良的模塊性的基礎,封裝的目標就是要實現軟件部件的“高內聚、低耦合”,防止程序相互依賴性而帶來的變動影響。在面向對象的編程語言中,對象是封裝的最基本單位,面向對象的封裝比傳統語言的封裝更為清晰、更為有力。

    3、繼承:在定義和實現一個類的時候,可以在一個已經存在的類的基礎之上來進行,使用extends關鍵字實現繼承;子類中可以加入若干新的內容,或修改原來的方法使之更適合特殊的需要,這就是繼承。繼承是子類自動共享父類數據和方法的機制,這是類之間的一種關系,提高了軟件的可重用性和可擴展性。

    4、多態:多態就是在聲明時使用父類,在實現或調用時使用具體的子類;即不修改程序代碼就可以改變程序運行時所綁定的具體代碼,讓程序可以選擇多個運行狀態,這就是多態性,多態增強了軟件的靈活性和擴展性。這里可以舉個例子,比如聲明時使用的是動物類,調用時傳遞的是一個貓類(動物類的子類)的對象,具體執行父類里動物——吃的方法時,實際執行的是貓——吃的方法。

    10、 abstract class和interface有什么區別?

    1、抽象類里面可以用普通方法,而接口中的方法全部都是抽象的;

    2、在應用范圍上來說,接口往往在程序設計的時候,用來定義程序模塊的功能,方便各模塊協同工作;抽象類是對相似類進行抽象,形成一個抽象的父類可供重用!

    11、 String是最基本的數據類型嗎?

    1、String是個類,不是基本數據類型;

    2、基本數據類型包括byte、int、char、long、float、double、boolean和short。

    12、 String 和StringBuffer的區別

    1、String是個不可變長度的字符串,而StringBuffer是個可變長度的字符串;

    2、在對String類進行操作的時候(例如增加字符),實際上是在內存中產生了一個新的String對象; 而StringBuffer是給原對象增加字符,不是新創建一個對象;

    13、 數組有沒有length()這個方法? String有沒有length()這個方法?

    數組沒有length()這個方法,有length的屬性。String有length()這個方法。

    14、 final, finally, finalize的區別。

    final 用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。

    finally是異常處理語句結構的一部分,表示總是執行。

    finalize是Object類的一個方法,在垃圾收集器執行的時候會調用被回收對象的此方法,可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關閉文件等。JVM不保證此方法總被調用

    15、 請說一下你常用的幾種異常?

    比如:

    1、 空指針異常;

    2、 數組下標越界;

    3、 類型轉換異常;

    4、 算數異常,例如除數為零;

    5、 IO異常,比如說找不到文件;

    6、 找不到類異常;

    7、 sql異常,例如sql語句不能正常運行;

    8、 …

    16、 線程的基本概念?線程的基本狀

    【Java面試寶典版】相關文章:

    面試寶典07-13

    unity 面試寶典07-11

    高效面試技巧寶典06-23

    程序員面試寶典07-09

    職場女性英語面試寶典06-29

    英語面試寶典在校表現06-29

    英語面試寶典求職理由06-29

    一覽職場經典面試寶典07-12

    程序員筆試面試寶典07-13

    過來人 介紹面試寶典07-13

    黄频国产免费高清视频_富二代精品短视频在线_免费一级无码婬片aa_精品9E精品视频在线观看