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