2017java面試題及參考答案
2017java面試題及參考答案
對面試題的回答情況會直接影響java個(gè)人求職者的求職成效。下面是學(xué)習(xí)啦小編為大家?guī)淼?017java面試題及參考答案,相信對你會有幫助的。
2017java面試題及答案
1. 面向?qū)ο缶幊痰娜筇匦允鞘裁?,請簡要闡述
(1).繼承:
繼承是一種聯(lián)結(jié)類的層次模型,并且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個(gè)新類可以從現(xiàn)有的類中派生,這個(gè)過程稱為類繼承。新類繼 承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那里繼承方法和實(shí)例變量,并且類可以修改或增 加新的方法使之更適合特殊的需要。
(2).封裝:
封裝是把過程和數(shù)據(jù)包圍起來,對數(shù)據(jù)的訪問只能通過已定義的界面。面向?qū)ο笥?jì)算始于這個(gè)基本概念,即現(xiàn)實(shí)世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個(gè)受保護(hù)的接口訪問其他對象。
(3).多態(tài)性:
多態(tài)性是指允許不同類的對象對同一消息作出響應(yīng)。多態(tài)性包括參數(shù)化多態(tài)性和包含多態(tài)性。多態(tài)性語言具有靈活、抽象、行為共享、代碼共享的優(yōu)勢,很好的解決了應(yīng)用程序函數(shù)同名問題。
2. String 和StringBuffer的區(qū)別
JAVA平臺提供了兩個(gè)類:String和StringBuffer,它們可以儲存和操作字符串,即包含多個(gè)字符的字符數(shù)據(jù)這個(gè)String類提供了數(shù)值不可改變字符串而這個(gè)StringBuffer類提供的字符串進(jìn)行修改當(dāng)你知道字符數(shù)據(jù)要改變的時(shí)候你就可以使用StringBuffer典型地,你可以使用StringBuffers來動態(tài)構(gòu)造字符數(shù)據(jù)
3. 說出ArrayList,Vector, LinkedList的存儲性能和特性
ArrayList和Vector都是使用數(shù)組方式存儲數(shù)據(jù),此數(shù)組元素?cái)?shù)大于實(shí)際存儲數(shù)據(jù)以便增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉及數(shù)組元素移動等內(nèi)存操作,所以索引數(shù)據(jù)快而插入數(shù)據(jù)慢,Vector由于使用了synchronized思路方法(線程安全) ,通常性能上較ArrayList差,而LinkedList使用雙向鏈表實(shí)現(xiàn)存儲,按序號索引數(shù)據(jù)需要進(jìn)行前向或后向遍歷,但是插入數(shù)據(jù)時(shí)只需要記錄本項(xiàng)前后項(xiàng)即可,所以插入速度較快
4. Collection 和 Collections的區(qū)別
Collection是集合類的上級接口,繼承與他的接口主要有Set 和List. Collections是針對集合類的一個(gè)幫助類,他提供一系列靜態(tài)方法實(shí)現(xiàn)對各種集合的搜索、排序、線程安全化等操作。
5. HashMap和Hashtable的區(qū)別
HashMap是Hashtable的輕量級實(shí)現(xiàn)(非線程安全的實(shí)現(xiàn)),他們都完成了Map接口,主要區(qū)別在于HashMap允許空(null)鍵值(key),由于非線程安全,效率上可能高于HashtableJAVA中文站社區(qū)門戶oC)| g| ax ,HashMap允許將Null作為一個(gè)entryde key 或者value,而Hashtable不允許 HashMap把Hashtable的contains思路方法去掉了,改成containsvalue和containsKey因?yàn)閏ontains思路方法容易讓人引起誤解Hashtable繼承自Dictionary類,而HashMap是Java1.2引進(jìn)的Map interface的一個(gè)實(shí)現(xiàn)。
最大的區(qū)別是,Hashtable的思路方法是Synchronize的,而HashMap不是,在多個(gè)線程訪問Hashtable時(shí),不需要自己為它的思路方法實(shí)現(xiàn)同步,而HashMap 就必須為的提供外同步。
Hashtable和HashMap采用的hash/rehash算法都大概一樣,所以性能不會有很大的差異。
6. final, finally, finalize的區(qū)別
final 用于聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。
finally是異常處理語句結(jié)構(gòu)的一部分,表示總是執(zhí)行。
finalize是Object類的一個(gè)方法,在垃圾收集器執(zhí)行的時(shí)候會調(diào)用被回收對象的此方法,可以覆蓋此方法提供垃圾收集時(shí)的其他資源回收,例如關(guān)閉文件等。
7. Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類型?
重載(Overload):
(1)方法重載是讓類以統(tǒng)一的方式處理不同類型數(shù)據(jù)的一種手段。多個(gè)同名函數(shù)同時(shí)存在,具有不同的參數(shù)個(gè)數(shù)/類型。重載Overloading是一個(gè)類中多態(tài)性的一種表現(xiàn)。
(2)Java的方法重載,就是在類中可以創(chuàng)建多個(gè)方法,它們具有相同的名字,但具有不同的參數(shù)和不同的定義。調(diào)用方法時(shí)通過傳遞給它們的不同參數(shù)個(gè)數(shù)和參數(shù)類型來決定具體使用哪個(gè)方法, 這就是多態(tài)性。
(3)重載的時(shí)候,方法名要一樣,但是參數(shù)類型和個(gè)數(shù)不一樣,返回值類型可以相同也可以不相同。無法以返回型別作為重載函數(shù)的區(qū)分標(biāo)準(zhǔn)。
重寫(Override):
(1) 父類與子類之間的多態(tài)性,對父類的函數(shù)進(jìn)行重新定義。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫 (Overriding)。在Java中,子類可繼承父類中的方法,而不需要重新編寫相同的方法。但有時(shí)子類并不想原封不動地繼承父類的方法,而是想作一定的修改,這就需要采用方法的重寫。方法重寫又稱方法覆蓋。
(2) 若子類中的方法與父類中的某一方法具有相同的方法名、返回類型和參數(shù)表,則新方法將覆蓋原有的方法。如需父類中原有的方法,可使用super關(guān)鍵字,該關(guān)鍵字引用了當(dāng)前類的父類。
(3)子類函數(shù)的訪問修飾權(quán)限不能少于父類的
重寫方法的規(guī)則:
1.參數(shù)列表必須完全與被重寫的方法的相同,否則不能稱其為重寫而是重載.
2.返回的類型必須一直與被重寫的方法的返回類型相同,否則不能稱其為重寫而是重載.
3.訪問修飾符的限制一定要大于被重寫方法的訪問修飾符(public>protected>default>private)
4.重寫方法一定不能拋出新的檢查異?;蛘弑缺恢貙懛椒ㄉ昝鞲訉挿旱臋z查型異常.例如,
父類的一個(gè)方法申明了一個(gè)檢查異常IOException,在重寫這個(gè)方法是就不能拋出Exception,只能拋出IOException的子類異常,可以拋出非檢查異常.
而重載的規(guī)則:
1.必須具有不同的參數(shù)列表;
2.可以有不同的返回類型,只要參數(shù)列表不同就可以了;
3.可以有不同的訪問修飾符;
4.可以拋出不同的異常;
重寫和重載的區(qū)別在于:
重寫多態(tài)性起作用,對調(diào)用被重載過的方法可以大大減少代碼的輸入量,同一個(gè)方法名只要往里面?zhèn)鬟f不同的參數(shù)就可以擁有不同的功能或返回值.
用好重寫和重載可以設(shè)計(jì)一個(gè)結(jié)構(gòu)清晰而簡潔的類,可以說重寫和重載在編寫代碼過程中的作用非同一般.
Overloaded的方法是可以改變返回值的類型。
8. error和exception有什么區(qū)別?
error 表示恢復(fù)不是不可能但很困難的情況下的一種嚴(yán)重問題。比如說內(nèi)存溢出。不可能指望程序能處理這樣的情況。
exception 表示一種設(shè)計(jì)或?qū)崿F(xiàn)問題。也就是說,它表示如果程序運(yùn)行正常,從不會發(fā)生的情況。
9. abstract class和interface有什么區(qū)別?
1.abstract class 在 Java 語言中表示的是一種繼承關(guān)系,一個(gè)類只能使用一次繼承關(guān)系。但是,一個(gè)類卻可以實(shí)現(xiàn)多個(gè)interface。
2.在abstract class 中可以有自己的數(shù)據(jù)成員,也可以有非abstarct的成員方法,而在interface中,只能夠有靜態(tài)的不能被修改的數(shù)據(jù)成員(也就是必須是static final的,不過在 interface中一般不定義數(shù)據(jù)成員),所有的成員方法都是abstract的。
3.abstract class和interface所反映出的設(shè)計(jì)理念不同。其實(shí)abstract class表示的是"is-a"關(guān)系,interface表示的是"like-a"關(guān)系。
4.實(shí)現(xiàn)抽象類和接口的類必須實(shí)現(xiàn)其中的所有方法。抽象類中可以有非抽象方法。接口中則不能有實(shí)現(xiàn)方法。
5.接口中定義的變量默認(rèn)是public static final 型,且必須給其初值,所以實(shí)現(xiàn)類中不能重新定義,也不能改變其值。
6.抽象類中的變量默認(rèn)是 friendly 型,其值可以在子類中重新定義,也可以重新賦值。
7.接口中的方法默認(rèn)都是 public,abstract 類型的。
10. List, Set, Map是否繼承自Collection接口
List,Set是繼承自Collection,Map不是。
11. swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
swtich中只能用byte short int char
12. char型變量中能不能存貯一個(gè)中文漢字?為什么?
能夠定義成為一個(gè)中文的,因?yàn)閖ava中以unicode編碼,一個(gè)char占16個(gè)字節(jié),所以放一個(gè)中文是沒問題的。
13. 多線程有幾種實(shí)現(xiàn)方法,都是什么?哪一種方式比較優(yōu)秀?同步有幾種實(shí)現(xiàn)方法,都是什么?
多線程有兩種實(shí)現(xiàn)方法,分別是繼承Thread類與實(shí)現(xiàn)Runnable接口
實(shí)現(xiàn)Runnable接口比較好,因?yàn)閷?shí)現(xiàn)類可以實(shí)現(xiàn)多個(gè)接口,而只能繼承一個(gè)類。
同步的實(shí)現(xiàn)方面有兩種,分別是synchronized,wait與notify
14. java中有幾種類型的流?JDK為每種類型的流提供了一些抽象類以供繼承,請說出他們分別是哪些類
字節(jié)流,字符流。字節(jié)流繼承與inputStream/outputStream,字符流繼承于inputStreamReader/outputSteamWriter。
在java的求職面試中,回答面試題跟面試自我介紹起著同樣重要的作用,下面是學(xué)習(xí)啦小編為大家精心推薦的java面試自我介紹范文,希望能夠?qū)δ兴鶐椭?/p>
2017java面試自我介紹范文(一)
我是20XX年畢業(yè)于廊坊計(jì)算機(jī)科學(xué)技術(shù)專業(yè)的。
大學(xué)四年時(shí)間,我主要學(xué)習(xí)的是關(guān)于C語言、C++、JAVA等編程書籍以及軟件,熟悉JAVA的Struts框架。曾經(jīng)在某電子科技公司完成了手機(jī)刷卡器的開發(fā)工作,主要完成了注冊、應(yīng)用等一系列流程。
隨著觸摸屏手機(jī)的普及,蘋果、三星、HTC手機(jī)越來越流行。手機(jī)應(yīng)用開發(fā)越來越手歡迎,很多手機(jī)游戲、應(yīng)用造就了一大批軟件開發(fā)公司的出現(xiàn)。至于為什么讀這個(gè)專業(yè)呢,就是因?yàn)檫@些手機(jī)游戲與應(yīng)用吸引了我,所以大學(xué)四年,我一直鉆研手機(jī)的軟件開發(fā),最自豪的是,曾經(jīng)開發(fā)過一款手機(jī)游戲,一個(gè)月的下載量達(dá)到幾十萬。而正是如此,因?yàn)樽约核龅臇|西,受到了別人的肯定,一直鼓勵著喔,不斷開發(fā)新的吸引人的軟件。
2017java面試自我介紹范文(二)
您好!四年的大學(xué)生活使我學(xué)到了許多東西,我把大部分時(shí)間和精力投在學(xué)習(xí)上,并取得了優(yōu)異的成績。在學(xué)習(xí)方面,我始終認(rèn)為作為一名學(xué)生,學(xué)習(xí)是最重要的,在大學(xué)期間我對學(xué)習(xí)一直很重視。我態(tài)度認(rèn)真、刻苦,努力鉆研,具備了扎實(shí)的專業(yè)基礎(chǔ)知識:熟悉各種應(yīng)用軟件的使用及asp、vb和c語言的程序編寫,對教育技術(shù)的基本理論和應(yīng)用相關(guān)方面具有較深的理解,也有自己的一定見解。在四年的學(xué)習(xí)過程中我也掌握了較為有效的學(xué)習(xí)方法,提高了自身的學(xué)習(xí)能力,也為以后的繼續(xù)學(xué)習(xí)打下了良好的基礎(chǔ)。
在工作能力方面。學(xué)生工作在大學(xué)生活中是一項(xiàng)重要內(nèi)容,在能力鍛煉方面,我積極參加學(xué)生工作和社會實(shí)踐活動,并取得了一定的成績。我曾擔(dān)任班長,在工作過程中我認(rèn)真負(fù)責(zé),積極工作,極大地鍛煉了我的工作能力和交際能力,積累了許多寶貴的實(shí)踐經(jīng)驗(yàn)。獲得 “學(xué)生工作積極分子”、“優(yōu)秀學(xué)生干部”稱號。
思想政治素質(zhì)方面。積極提高自身思想修養(yǎng)更是大學(xué)階段我們需要去努力做的。在兩年多的黨內(nèi)生活和實(shí)踐中,讓我的思想覺悟有了較大的提高,平時(shí)關(guān)心時(shí)事,注意學(xué)習(xí)黨務(wù)知識,在實(shí)踐中不斷端正自己的入黨動機(jī),以黨員的標(biāo)準(zhǔn)來嚴(yán)格要求自己。在這個(gè)過程中我更加體會到作為一名黨員的責(zé)任,也發(fā)現(xiàn)了自身的一些不足,每次黨內(nèi)的會議、討論、生活,都是我的一個(gè)成長過程,期間提出的一些問題都能引起我的深入思考,在思考的過程中不斷提高自身的思想。
此外,我還積極參加校內(nèi)的各種活動以及校外的各種社會活動,向?qū)嶋H困難挑戰(zhàn),讓我在挫折中成長,借以去磨練自己。
2017java面試自我介紹范文(三)
您好!
我是一名西南科技大學(xué)計(jì)算機(jī)科學(xué)院20XX級的一名學(xué)生,在大學(xué)3年里,我已經(jīng)學(xué)會了一定的計(jì)算機(jī)軟硬件的一些知識,參加了西南科技大學(xué)學(xué)院網(wǎng)站設(shè)計(jì),對網(wǎng)絡(luò)設(shè)計(jì)管理維護(hù)都很熟悉,也能解決一些硬件問題。作為一名計(jì)算機(jī)專業(yè)的大學(xué)生,我熱愛我的專業(yè),期待著實(shí)際的工作考驗(yàn)。
作為一名初出校門走向社會的學(xué)生,我認(rèn)為我最缺乏的是豐富的社會實(shí)踐和工作經(jīng)驗(yàn),這或許讓你猶豫不決,但我有著青年人的熱情和赤誠,有著兢兢業(yè)業(yè)的工作態(tài)度和集體合作精神。“我以心去開取心,我以火去點(diǎn)燃火,我以高尚的靈魂去鑄造靈魂的高尚,我以誠摯的情感去培養(yǎng)感情的誠摯。”我熱愛貴公司所從事的事業(yè),殷切地期望能夠在您的領(lǐng)導(dǎo)下,為這一光榮的事業(yè)添磚加瓦,并且在實(shí)踐中不斷學(xué)習(xí)、進(jìn)步。
真心希望貴公司能給我一個(gè)機(jī)會,我愿與貴公司同甘共苦,共創(chuàng)未來!"長風(fēng)破浪會有時(shí),直掛云帆濟(jì)滄海"在機(jī)遇與挑戰(zhàn)并存的新世紀(jì),我有信心憑自己的能力為貴公司的事業(yè)添一份力量,希望貴公司可以成為那個(gè)可以實(shí)現(xiàn)自我價(jià)值的大舞臺,也希望為我自己贏得一片天空。
看過“2017java面試題及參考答案”的人還看了:
5.java面試題