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

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 各大互聯網公司Java面試題匯總

各大互聯網公司Java面試題匯總

更新時間:2019-09-16 11:37:32 來源:動力節點 瀏覽3622次



Java常見面試題匯總.jpg

  數據類型之間的轉換:


  如何將字符串轉換為基本數據類型?


  如何將基本數據類型轉換為字符串?


  調用基本數據類型對應的包裝類中的方法parseXXX(String)或valueOf(String)即可返回相應基本類型;


  一種方法是將基本數據類型與空字符串("")連接(+)即可獲得其所對應的字符串;另一種方法是調用String類中的valueOf()方法返回相應字符串


  如何實現字符串的反轉及替換?


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


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


  怎樣將smxfl.cn編碼的字符串轉換為lrzqb.cn編碼的字符串?


  代碼如下所示:


  Strings1="你好";


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


  打印昨天的當前時刻。


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


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


  比較一下Java和JavaSciprt。


  JavaScript與Java是兩個公司開發的不同的兩個產品。Java是原Sun


  Microsystems公司推出的面向對象的程序設計語言,特別適合于互聯網應用程序開發;而JavaScript是Netscape公司的產品,為了擴展Netscape瀏覽器的功能而開發的一種可以嵌入Web頁面中運行的基于對象和事件驅動的解釋性語言。JavaScript的前身是LiveScript;而Java的前身是Oak語言。


  下面對兩種語言間的異同作如下比較:


  基于對象和面向對象:Java是一種真正的面向對象的語言,即使是開發簡單的程序,必須設計對象;JavaScript是種腳本語言,它可以用來制作與網絡無關的,與用戶交互作用的復雜軟件。它是一種基于對象(Object-Based)和事件驅動(Event-Driven)的編程語言,因而它本身提供了非常豐富的內部對象供設計人員使用。


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


  補充:上面列出的四點是網上流傳的所謂的標準答案。其實Java和JavaScript最重要的區別是一個是靜態語言,一個是動態語言。目前的編程語言的發展趨勢是函數式語言和動態語言。在Java中類(class)是一等公民,而JavaScript中函數(function)是一等公民,因此JavaScript支持函數式編程,可以使用Lambda函數和閉包(closure),當然Java8也開始支持函數式編程,提供了對Lambda表達式以及函數式接口的支持。對于這類問題,在面試的時候最好還是用自己的語言回答會更加靠譜,不要背網上所謂的標準答案。


  什么時候用斷言(assert)?


  斷言在軟件開發中是一種常用的調試方式,很多開發語言中都支持這種機制。一般來說,斷言用于保證程序最基本、關鍵的正確性。斷言檢查通常在開發和測試時開啟。為了保證程序的執行效率,在軟件發布后斷言檢查通常是關閉的。斷言是一個包含布爾表達式的語句,在執行這個語句時假定該表達式為true;如果表達式的值為false,那么系統會報告一個AssertionError。斷言的使用如下面的代碼所示:


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


  斷言可以有兩種形式:


  assertExpression1;


  assertExpression1:Expression2;


  Expression1應該總是產生一個布爾值。


  Expression2可以是得出一個值的任意表達式;這個值用于生成顯示更多調試信息的字符串消息。


  要在運行時啟用斷言,可以在啟動JVM時使用-enableassertions或者-ea標記。要在運行時選擇禁用斷言,可以在啟動JVM時使用-da或者-disableassertions標記。要在系統類中啟用或禁用斷言,可使用-esa或-dsa標記。還可以在包的基礎上啟用或者禁用斷言。


  注意:斷言不應該以任何方式改變程序的狀態。簡單的說,如果希望在不滿足某些條件時阻止代碼的執行,就可以考慮用斷言來阻止它。


  Error和Exception有什么區別?


  Error表示系統級的錯誤和程序不必處理的異常,是恢復不是不可能但很困難的情況下的一種嚴重問題;比如內存溢出,不可能指望程序能處理這樣的情況;Exception表示需要捕捉或者需要程序進行處理的異常,是一種設計或實現問題;也就是說,它表示如果程序運行正常,從不會發生的情況。


  try{}里有一個return語句,那么緊跟在這個try后的finally{}里的代碼會不會被執行,什么時候被執行,在return前還是后?


  會執行,在方法返回調用者前執行。


  注意:在finally中改變返回值的做法是不好的,因為如果存在finally代碼塊,try中的return語句不會立馬返回調用者,而是記錄下返回值待finally代碼塊執行完畢之后再向調用者返回其值,然后如果在finally中修改了返回值,就會返回修改后的值。顯然,在finally中返回或者修改返回值會對程序造成很大的困擾,C#中直接用編譯錯誤的方式來阻止程序員干這種齷齪的事情,Java中也可以通過提升編譯器的語法檢查級別來產生警告或錯誤,Eclipse中可以在如圖所示的地方進行設置,強烈建議將此項設置為編譯錯誤。


  Java語言如何進行異常處理,關鍵字:throws、throw、try、catch、finally分別如何使用?


  Java通過面向對象的方法進行異常處理,把各種不同的異常進行分類,并提供了良好的接口。在Java中,每個異常都是一個對象,它是Throwable類或其子類的實例。當一個方法出現異常后便拋出一個異常對象,該對象中包含有異常信息,調用這個對象的方法可以捕獲到這個異常并可以對其進行處理。Java的異常處理是通過5個關鍵詞來實現的:try、catch、throw、throws和finally。一般情況下是用try來執行一段程序,如果系統會拋出(throw)一個異常對象,可以通過它的類型來捕獲(catch)它,或通過總是執行代碼塊(finally)來處理;try用來指定一塊預防所有異常的程序;catch子句緊跟在try塊后面,用來指定你想要捕獲的異常的類型;throw語句用來明確地拋出一個異常;throws用來聲明一個方法可能拋出的各種異常(當然聲明異常時允許無病呻吟);finally為確保一段代碼不管發生什么異常狀況都要被執行;try語句可以嵌套,每當遇到一個try語句,異常的結構就會被放入異常棧中,直到所有的try語句都完成。如果下一級的try語句沒有對某種異常進行處理,異常棧就會執行出棧操作,直到遇到有處理這種異常的try語句或者最終將異常拋給JVM。


  運行時異常與受檢異常有何異同?


  異常表示程序運行過程中可能出現的非正常狀態,運行時異常表示虛擬機的通常操作中可能遇到的異常,是一種常見運行錯誤,只要程序設計得沒有問題通常就不會發生。受檢異常跟程序運行的上下文環境有關,即使程序設計無誤,仍然可能因使用的問題而引發。Java編譯器要求方法必須聲明拋出可能發生的受檢異常,但是并不要求必須聲明拋出未被捕獲的運行時異常。異常和繼承一樣,是面向對象程序設計中經常被濫用的東西,在Effective中


  Java中對異常的使用給出了以下指導原則:


  不要將異常處理用于正常的控制流(設計良好的API不應該強迫它的調用者為了正常的控制流而使用異常)對可以恢復的情況使用受檢異常,對編程錯誤使用運行時異常避免不必要的使用受檢異常(可以通過一些狀態檢測手段來避免異常的發生)優先使用標準的異常每個方法拋出的異常都要有文檔保持異常的原子性不要在catch中忽略掉捕獲到的異常


  以上就是動力節點java培訓機構小編介紹的“各大互聯網公司Java面試題匯總”的內容,希望對大家有幫助,更多java最新資訊請繼續關注動力節點java培訓機構官網,每天會有精彩內容分享與你。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 黄色免费看网站 | 午夜影院普通 | 亚洲高清成人欧美动作片 | 亚洲韩国欧美 | 亚洲欧美成人综合久久久 | 色婷婷一区 | 久久亚洲精品一区二区三区浴池 | 欧美日韩中文字幕久久伊人 | 精品国产香蕉 | 亚洲伊人成人网 | 国产成人刺激视频在线观看 | 国产高清一区 | 黄色色片 | 欧美精品亚洲精品日韩专 | 9热这里只有真品 | 九九热这里有精品 | 天天射天天干天天插 | 中国一级毛片录像 | 亚洲精品高清国产一线久久97 | 成人精品免费视频 | 日本老熟妇激情毛片 | 亚洲国产清纯 | 成人精品一区二区三区 | 尤物福利 | 奇米影视在线观看 | 欧美一级毛片俄罗斯 | 欧美亚洲国产精品久久第一页 | 久久99久久精品久久久久久 | 亚洲伊人久久综合影院2021 | 欧美在线国产 | 精品中文字幕不卡在线视频 | 四虎在线永久视频观看 | 四虎永久免费网站免费观看 | 国产一级精品毛片 | 日本一本一道久久香蕉免费 | 亚洲国产成人久久综合一区 | 日韩中文字幕在线观看视频 | 欧美特黄a级高清免费大片 欧美特黄a级猛片a级 | 99热精品在线免费观看 | 香蕉国产人午夜视频在线观看 | 国产精品麻豆 |