大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) 各大互聯(lián)網(wǎng)公司Java面試題匯總

各大互聯(lián)網(wǎng)公司Java面試題匯總

更新時(shí)間:2019-09-16 11:37:32 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽3718次



Java常見(jiàn)面試題匯總.jpg

  數(shù)據(jù)類型之間的轉(zhuǎn)換:


  如何將字符串轉(zhuǎn)換為基本數(shù)據(jù)類型?


  如何將基本數(shù)據(jù)類型轉(zhuǎn)換為字符串?


  調(diào)用基本數(shù)據(jù)類型對(duì)應(yīng)的包裝類中的方法parseXXX(String)或valueOf(String)即可返回相應(yīng)基本類型;


  一種方法是將基本數(shù)據(jù)類型與空字符串("")連接(+)即可獲得其所對(duì)應(yīng)的字符串;另一種方法是調(diào)用String類中的valueOf()方法返回相應(yīng)字符串


  如何實(shí)現(xiàn)字符串的反轉(zhuǎn)及替換?


  方法很多,可以自己寫(xiě)實(shí)現(xiàn)也可以使用String或StringBuffer/StringBuilder中的方法。有一道很常見(jiàn)的面試題是用遞歸實(shí)現(xiàn)字符串反轉(zhuǎn),代碼如下所示:


  publicstaticStringreverse(StringoriginStr){if(originStr==null||originStr.length()<=1)returnoriginStr;returnreverse(originStr.substring(1))+originStr.charAt(0);}


  怎樣將smxfl.cn編碼的字符串轉(zhuǎn)換為lrzqb.cn編碼的字符串?


  代碼如下所示:


  Strings1="你好";


  Strings2=newString(s1.getBytes("GB2312"),"ISO-8859-1");


  打印昨天的當(dāng)前時(shí)刻。


  importjava.util.Calendar;classYesterdayCurrent{publicstaticvoidmain(String[]args){Calendarcal=Calendar.getInstance();cal.add(Calendar.DATE,-1);System.out.println(cal.getTime());}}在Java8中,可以用下面的代碼實(shí)現(xiàn)相同的功能。


  importjava.time.LocalDateTime;classYesterdayCurrent{publicstaticvoidmain(String[]args){LocalDateTimetoday=LocalDateTime.now();LocalDateTimeyesterday=today.minusDays(1);System.out.println(yesterday);}}


  比較一下Java和JavaSciprt。


  JavaScript與Java是兩個(gè)公司開(kāi)發(fā)的不同的兩個(gè)產(chǎn)品。Java是原Sun


  Microsystems公司推出的面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,特別適合于互聯(lián)網(wǎng)應(yīng)用程序開(kāi)發(fā);而JavaScript是Netscape公司的產(chǎn)品,為了擴(kuò)展Netscape瀏覽器的功能而開(kāi)發(fā)的一種可以嵌入Web頁(yè)面中運(yùn)行的基于對(duì)象和事件驅(qū)動(dòng)的解釋性語(yǔ)言。JavaScript的前身是LiveScript;而Java的前身是Oak語(yǔ)言。


  下面對(duì)兩種語(yǔ)言間的異同作如下比較:


  基于對(duì)象和面向?qū)ο螅篔ava是一種真正的面向?qū)ο蟮恼Z(yǔ)言,即使是開(kāi)發(fā)簡(jiǎn)單的程序,必須設(shè)計(jì)對(duì)象;JavaScript是種腳本語(yǔ)言,它可以用來(lái)制作與網(wǎng)絡(luò)無(wú)關(guān)的,與用戶交互作用的復(fù)雜軟件。它是一種基于對(duì)象(Object-Based)和事件驅(qū)動(dòng)(Event-Driven)的編程語(yǔ)言,因而它本身提供了非常豐富的內(nèi)部對(duì)象供設(shè)計(jì)人員使用。


  解釋和編譯:Java的源代碼在執(zhí)行之前,必須經(jīng)過(guò)編譯。JavaScript是一種解釋性編程語(yǔ)言,其源代碼不需經(jīng)過(guò)編譯,由瀏覽器解釋執(zhí)行。(目前的瀏覽器幾乎都使用了JIT(即時(shí)編譯)技術(shù)來(lái)提升JavaScript的運(yùn)行效率)強(qiáng)類型變量和類型弱變量:Java采用強(qiáng)類型變量檢查,即所有變量在編譯之前必須作聲明;JavaScript中變量是弱類型的,甚至在使用變量前可以不作聲明,JavaScript的解釋器在運(yùn)行時(shí)檢查推斷其數(shù)據(jù)類型。代碼格式不一樣。


  補(bǔ)充:上面列出的四點(diǎn)是網(wǎng)上流傳的所謂的標(biāo)準(zhǔn)答案。其實(shí)Java和JavaScript最重要的區(qū)別是一個(gè)是靜態(tài)語(yǔ)言,一個(gè)是動(dòng)態(tài)語(yǔ)言。目前的編程語(yǔ)言的發(fā)展趨勢(shì)是函數(shù)式語(yǔ)言和動(dòng)態(tài)語(yǔ)言。在Java中類(class)是一等公民,而JavaScript中函數(shù)(function)是一等公民,因此JavaScript支持函數(shù)式編程,可以使用Lambda函數(shù)和閉包(closure),當(dāng)然Java8也開(kāi)始支持函數(shù)式編程,提供了對(duì)Lambda表達(dá)式以及函數(shù)式接口的支持。對(duì)于這類問(wèn)題,在面試的時(shí)候最好還是用自己的語(yǔ)言回答會(huì)更加靠譜,不要背網(wǎng)上所謂的標(biāo)準(zhǔn)答案。


  什么時(shí)候用斷言(assert)?


  斷言在軟件開(kāi)發(fā)中是一種常用的調(diào)試方式,很多開(kāi)發(fā)語(yǔ)言中都支持這種機(jī)制。一般來(lái)說(shuō),斷言用于保證程序最基本、關(guān)鍵的正確性。斷言檢查通常在開(kāi)發(fā)和測(cè)試時(shí)開(kāi)啟。為了保證程序的執(zhí)行效率,在軟件發(fā)布后斷言檢查通常是關(guān)閉的。斷言是一個(gè)包含布爾表達(dá)式的語(yǔ)句,在執(zhí)行這個(gè)語(yǔ)句時(shí)假定該表達(dá)式為true;如果表達(dá)式的值為false,那么系統(tǒng)會(huì)報(bào)告一個(gè)AssertionError。斷言的使用如下面的代碼所示:


  assert(a>0);//throwsanAssertionErrorifa<=011


  斷言可以有兩種形式:


  assertExpression1;


  assertExpression1:Expression2;


  Expression1應(yīng)該總是產(chǎn)生一個(gè)布爾值。


  Expression2可以是得出一個(gè)值的任意表達(dá)式;這個(gè)值用于生成顯示更多調(diào)試信息的字符串消息。


  要在運(yùn)行時(shí)啟用斷言,可以在啟動(dòng)JVM時(shí)使用-enableassertions或者-ea標(biāo)記。要在運(yùn)行時(shí)選擇禁用斷言,可以在啟動(dòng)JVM時(shí)使用-da或者-disableassertions標(biāo)記。要在系統(tǒng)類中啟用或禁用斷言,可使用-esa或-dsa標(biāo)記。還可以在包的基礎(chǔ)上啟用或者禁用斷言。


  注意:斷言不應(yīng)該以任何方式改變程序的狀態(tài)。簡(jiǎn)單的說(shuō),如果希望在不滿足某些條件時(shí)阻止代碼的執(zhí)行,就可以考慮用斷言來(lái)阻止它。


  Error和Exception有什么區(qū)別?


  Error表示系統(tǒng)級(jí)的錯(cuò)誤和程序不必處理的異常,是恢復(fù)不是不可能但很困難的情況下的一種嚴(yán)重問(wèn)題;比如內(nèi)存溢出,不可能指望程序能處理這樣的情況;Exception表示需要捕捉或者需要程序進(jìn)行處理的異常,是一種設(shè)計(jì)或?qū)崿F(xiàn)問(wèn)題;也就是說(shuō),它表示如果程序運(yùn)行正常,從不會(huì)發(fā)生的情況。


  try{}里有一個(gè)return語(yǔ)句,那么緊跟在這個(gè)try后的finally{}里的代碼會(huì)不會(huì)被執(zhí)行,什么時(shí)候被執(zhí)行,在return前還是后?


  會(huì)執(zhí)行,在方法返回調(diào)用者前執(zhí)行。


  注意:在finally中改變返回值的做法是不好的,因?yàn)槿绻嬖趂inally代碼塊,try中的return語(yǔ)句不會(huì)立馬返回調(diào)用者,而是記錄下返回值待finally代碼塊執(zhí)行完畢之后再向調(diào)用者返回其值,然后如果在finally中修改了返回值,就會(huì)返回修改后的值。顯然,在finally中返回或者修改返回值會(huì)對(duì)程序造成很大的困擾,C#中直接用編譯錯(cuò)誤的方式來(lái)阻止程序員干這種齷齪的事情,Java中也可以通過(guò)提升編譯器的語(yǔ)法檢查級(jí)別來(lái)產(chǎn)生警告或錯(cuò)誤,Eclipse中可以在如圖所示的地方進(jìn)行設(shè)置,強(qiáng)烈建議將此項(xiàng)設(shè)置為編譯錯(cuò)誤。


  Java語(yǔ)言如何進(jìn)行異常處理,關(guān)鍵字:throws、throw、try、catch、finally分別如何使用?


  Java通過(guò)面向?qū)ο蟮姆椒ㄟM(jìn)行異常處理,把各種不同的異常進(jìn)行分類,并提供了良好的接口。在Java中,每個(gè)異常都是一個(gè)對(duì)象,它是Throwable類或其子類的實(shí)例。當(dāng)一個(gè)方法出現(xiàn)異常后便拋出一個(gè)異常對(duì)象,該對(duì)象中包含有異常信息,調(diào)用這個(gè)對(duì)象的方法可以捕獲到這個(gè)異常并可以對(duì)其進(jìn)行處理。Java的異常處理是通過(guò)5個(gè)關(guān)鍵詞來(lái)實(shí)現(xiàn)的:try、catch、throw、throws和finally。一般情況下是用try來(lái)執(zhí)行一段程序,如果系統(tǒng)會(huì)拋出(throw)一個(gè)異常對(duì)象,可以通過(guò)它的類型來(lái)捕獲(catch)它,或通過(guò)總是執(zhí)行代碼塊(finally)來(lái)處理;try用來(lái)指定一塊預(yù)防所有異常的程序;catch子句緊跟在try塊后面,用來(lái)指定你想要捕獲的異常的類型;throw語(yǔ)句用來(lái)明確地拋出一個(gè)異常;throws用來(lái)聲明一個(gè)方法可能拋出的各種異常(當(dāng)然聲明異常時(shí)允許無(wú)病呻吟);finally為確保一段代碼不管發(fā)生什么異常狀況都要被執(zhí)行;try語(yǔ)句可以嵌套,每當(dāng)遇到一個(gè)try語(yǔ)句,異常的結(jié)構(gòu)就會(huì)被放入異常棧中,直到所有的try語(yǔ)句都完成。如果下一級(jí)的try語(yǔ)句沒(méi)有對(duì)某種異常進(jìn)行處理,異常棧就會(huì)執(zhí)行出棧操作,直到遇到有處理這種異常的try語(yǔ)句或者最終將異常拋給JVM。


  運(yùn)行時(shí)異常與受檢異常有何異同?


  異常表示程序運(yùn)行過(guò)程中可能出現(xiàn)的非正常狀態(tài),運(yùn)行時(shí)異常表示虛擬機(jī)的通常操作中可能遇到的異常,是一種常見(jiàn)運(yùn)行錯(cuò)誤,只要程序設(shè)計(jì)得沒(méi)有問(wèn)題通常就不會(huì)發(fā)生。受檢異常跟程序運(yùn)行的上下文環(huán)境有關(guān),即使程序設(shè)計(jì)無(wú)誤,仍然可能因使用的問(wèn)題而引發(fā)。Java編譯器要求方法必須聲明拋出可能發(fā)生的受檢異常,但是并不要求必須聲明拋出未被捕獲的運(yùn)行時(shí)異常。異常和繼承一樣,是面向?qū)ο蟪绦蛟O(shè)計(jì)中經(jīng)常被濫用的東西,在Effective中


  Java中對(duì)異常的使用給出了以下指導(dǎo)原則:


  不要將異常處理用于正常的控制流(設(shè)計(jì)良好的API不應(yīng)該強(qiáng)迫它的調(diào)用者為了正常的控制流而使用異常)對(duì)可以恢復(fù)的情況使用受檢異常,對(duì)編程錯(cuò)誤使用運(yùn)行時(shí)異常避免不必要的使用受檢異常(可以通過(guò)一些狀態(tài)檢測(cè)手段來(lái)避免異常的發(fā)生)優(yōu)先使用標(biāo)準(zhǔn)的異常每個(gè)方法拋出的異常都要有文檔保持異常的原子性不要在catch中忽略掉捕獲到的異常


  以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)小編介紹的“各大互聯(lián)網(wǎng)公司Java面試題匯總”的內(nèi)容,希望對(duì)大家有幫助,更多java最新資訊請(qǐng)繼續(xù)關(guān)注動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)官網(wǎng),每天會(huì)有精彩內(nèi)容分享與你。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 国产高清国产专区国产精品 | 久久99国产乱子伦精品免 | 亚洲一区二区三区久久久久 | 亚洲综合精品香蕉久久网 | 99久久免费观看 | 久久大香香蕉国产免费网vrr | 精品一区 二区三区免费毛片 | 色综合久久六月婷婷中文字幕 | 国产区一区二区三 | 五月色综合 | 天天干天天射综合网 | 欧美成人激情在线 | aaaa级日本片免费视频 | 成人18免费网站 | 99久久精品国产亚洲 | 亚洲一区二区视频在线观看 | 免费高清a毛片 | 精品国产免费人成高清 | 日韩国产在线 | 欧美在线免费视频 | 色偷偷91综合久久噜噜 | 亚洲精品天堂一区二区三区 | 国产高清亚洲 | 日本老熟妇激情毛片 | 日本一区二区三区高清在线观看 | 一级大片视频 | 国产3344永久在线观看视频 | 一级a俄罗斯毛片免费 | www.久久久| 欧美网色 | 成人一级视频 | 日韩欧美一级毛片视频免费 | 亚洲精品香蕉一区二区 | 99久热在线精品视频播 | 久久综合中文字幕一区二区三区 | 国产成人精品曰本亚洲78 | 色综合天天操 | 国产精品香蕉在线观看不卡 | 老头老太做爰xxx视频 | 欧洲精品 | 狠狠色狠狠色综合久久第一次 |