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

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java筆試題與答案(全解析)

Java筆試題與答案(全解析)

更新時(shí)間:2019-07-22 09:30:26 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽3914次

  2019年也是Java就業(yè)火爆的一年,Java面試不光有面試也會(huì)有筆試,為了讓Java應(yīng)聘筆試題能順利通過(guò),小編整理了一些Java筆試題與答案(全解析)分享給大家,準(zhǔn)備或?qū)⒁獏⒓覬ava面試的朋友可以仔細(xì)閱讀,爭(zhēng)取一次通過(guò),進(jìn)去自己心儀的企業(yè)工作。


  Java筆試題與答案(全解析).jpg


  1、面向?qū)ο缶幊?/span>(OOP)有哪些優(yōu)點(diǎn)?


  代碼開(kāi)發(fā)模塊化,更易維護(hù)和修改。


  代碼復(fù)用。


  增強(qiáng)代碼的可靠性和靈活性。


  增加代碼的可理解性。


  2、面向?qū)ο缶幊逃心男┨匦裕?/strong>


  封裝、繼承、多態(tài)、抽象


  封裝


  封裝給對(duì)象提供了隱藏內(nèi)部特性和行為的能力。對(duì)象提供一些能被其他對(duì)象訪問(wèn)的方法來(lái)改變它內(nèi)部的數(shù)據(jù)。在Java當(dāng)中,有3種修飾符:public,private和protected。每一種修飾符給其他的位于同一個(gè)包或者不同包下的對(duì)象賦予了不同的訪問(wèn)權(quán)限。


  下面列出了使用封裝的好處:


  通過(guò)隱藏對(duì)象的屬性來(lái)保護(hù)對(duì)象內(nèi)部的狀態(tài)。


  提高了代碼的可用性和可維護(hù)性,因?yàn)閷?duì)象的行為可以被單獨(dú)的改變或者是擴(kuò)展。


  禁止對(duì)象之間的不良交互提高模塊化。


  繼承


  繼承給對(duì)象提供了從基類獲取字段和方法的能力。繼承提供了代碼的重用,也可以在不修改類的情況下給現(xiàn)存的類添加新特性。


  多態(tài)


  多態(tài)是編程語(yǔ)言給不同的底層數(shù)據(jù)類型做相同的接口展示的一種能力。一個(gè)多態(tài)類型上的操作可以應(yīng)用到其他類型的值上面。


  抽象


  抽象是把想法從具體的實(shí)例中分離出來(lái)的步驟,因此,要根據(jù)他們的功能而不是實(shí)現(xiàn)細(xì)節(jié)來(lái)創(chuàng)建類。Java支持創(chuàng)建只暴露接口而不包含方法實(shí)現(xiàn)的抽象的類。這種抽象技術(shù)的主要目的是把類的行為和實(shí)現(xiàn)細(xì)節(jié)分離開(kāi)。


  3、什么是Java虛擬機(jī)?為什么Java被稱作是“平臺(tái)無(wú)關(guān)的編程語(yǔ)言”?


  Java虛擬機(jī)是一個(gè)可以執(zhí)行Java字節(jié)碼的虛擬機(jī)進(jìn)程。Java源文件被編譯成能被Java虛擬機(jī)執(zhí)行的字節(jié)碼文件。


  Java被設(shè)計(jì)成允許應(yīng)用程序可以運(yùn)行在任意的平臺(tái),而不需要程序員為每一個(gè)平臺(tái)單獨(dú)重寫(xiě)或者是重新編譯。Java虛擬機(jī)讓這個(gè)變?yōu)榭赡埽驗(yàn)樗赖讓佑布脚_(tái)的指令長(zhǎng)度和其他特性。


  4、JDK和JRE的區(qū)別是什么?


  JRE(Java運(yùn)行時(shí)環(huán)境)是將要執(zhí)行Java程序的Java虛擬機(jī)。它同時(shí)也包含了執(zhí)行applet需要的瀏覽器插件。JDK(Java開(kāi)發(fā)工具包)是完整的Java軟件開(kāi)發(fā)包,包含了JRE,編譯器和其他的工具(比如:JavaDoc,Java調(diào)試器),可以讓開(kāi)發(fā)者開(kāi)發(fā)、編譯、執(zhí)行Java應(yīng)用程序。


Java筆試題與答案(全解析).jpg


  5、”static”關(guān)鍵字是什么意思?Java中是否可以覆蓋(override)一個(gè)private或者是static的方法?


  “static”關(guān)鍵字表明一個(gè)成員變量或者是成員方法可以在沒(méi)有所屬的類的實(shí)例的情況下被訪問(wèn)。


  Java中static方法不能被覆蓋,因?yàn)榉椒ǜ采w是基于運(yùn)行時(shí)動(dòng)態(tài)綁定的,而static方法是編譯時(shí)靜態(tài)綁定的。static方法跟類的任何實(shí)例都不相關(guān),所以概念上不適用。


  6、是否可以在static環(huán)境中訪問(wèn)非static變量?


  不可以。static變量在Java中是屬于類的,它在所有的實(shí)例中的值是一樣的。當(dāng)類被Java虛擬機(jī)載入的時(shí)候,會(huì)對(duì)static變量進(jìn)行初始化。如果你的代碼嘗試不用實(shí)例來(lái)訪問(wèn)非static的變量,編譯器會(huì)報(bào)錯(cuò),因?yàn)檫@些變量還沒(méi)有被創(chuàng)建出來(lái),還沒(méi)有跟任何實(shí)例關(guān)聯(lián)上。


  7、Java支持的數(shù)據(jù)類型有哪些?什么是自動(dòng)拆裝箱?


  Java支持的基本數(shù)據(jù)類型有:


  byte


  short


  int


  long


  float


  double


  boolean


  char


  自動(dòng)裝箱是Java編譯器在基本數(shù)據(jù)類型和對(duì)應(yīng)的對(duì)象包裝類型之間做的一個(gè)轉(zhuǎn)化。比如:把int轉(zhuǎn)化成Integer。反之就是自動(dòng)拆箱。


  8、Java中的方法覆蓋(Overriding)和方法重載(Overloading)是什么意思?


  方法覆蓋是說(shuō)子類重新實(shí)現(xiàn)父類的方法。方法覆蓋必須有相同的方法名,參數(shù)列表和返回類型。


  方法重載發(fā)生在同一個(gè)類里面,兩個(gè)或者是多個(gè)方法的方法名相同但是參數(shù)列表不同。


  9、Java中,什么是構(gòu)造函數(shù)?什么是構(gòu)造函數(shù)重載?什么是復(fù)制構(gòu)造函數(shù)?


  當(dāng)新對(duì)象被創(chuàng)建的時(shí)候,構(gòu)造函數(shù)會(huì)被調(diào)用。每一個(gè)類都有構(gòu)造函數(shù)。在程序員沒(méi)有給類提供構(gòu)造函數(shù)的情況下,Java編譯器會(huì)為這個(gè)類創(chuàng)建一個(gè)默認(rèn)的構(gòu)造函數(shù)。


  Java中構(gòu)造函數(shù)重載和方法重載很相似。可以為一個(gè)類創(chuàng)建多個(gè)構(gòu)造函數(shù)。每一個(gè)構(gòu)造函數(shù)必須有它自己唯一的參數(shù)列表。


  Java不支持像C++那樣的復(fù)制構(gòu)造函數(shù),這個(gè)不同點(diǎn)是因?yàn)槿绻悴蛔约簩?xiě)構(gòu)造函數(shù)的情況下,Java不會(huì)創(chuàng)建默認(rèn)的復(fù)制構(gòu)造函數(shù)。


  10、Java支持多繼承么?


  不支持,Java不支持多繼承。每個(gè)類都只能繼承一個(gè)類,但是可以實(shí)現(xiàn)多個(gè)接口。


  11、抽象類和接口的區(qū)別是什么?


  Java支持創(chuàng)建抽象類和接口。它們的區(qū)別在于:


  接口中所有的方法隱含的都是抽象的。而抽象類則可以同時(shí)包含抽象和非抽象的方法。


  類可以實(shí)現(xiàn)很多個(gè)接口,但是只能繼承一個(gè)抽象類


  類如果要實(shí)現(xiàn)一個(gè)接口,它必須要實(shí)現(xiàn)接口聲明的所有方法。但是,類可以不實(shí)現(xiàn)抽象類聲明的所有方法,在這種情況下,類也必須得聲明成是抽象的。


  抽象類在實(shí)現(xiàn)接口時(shí),可以不實(shí)現(xiàn)接口里面的方法。


  Java接口中聲明的變量默認(rèn)都是final的。抽象類可以包含非final的變量。


  Java接口中的成員方法默認(rèn)是public的。抽象類的成員方法可以是private,protected或者是public。


  接口是絕對(duì)抽象的,不可以被實(shí)例化。抽象類也不可以被實(shí)例化,但是,如果它包含main方法的話是可以被調(diào)用的。


  12、什么是值傳遞?什么是引用傳遞?


  對(duì)象被值傳遞,意味著傳遞了對(duì)象的一個(gè)副本。因此,就算是改變了對(duì)象副本,也不會(huì)影響源對(duì)象的值。


  對(duì)象被引用傳遞,意味著傳遞的并不是實(shí)際的對(duì)象,而是對(duì)象的引用。因此,外部對(duì)引用對(duì)象所做的改變會(huì)反映到所有的對(duì)象上。


  13、進(jìn)程和線程的區(qū)別是什么?


  進(jìn)程是執(zhí)行著的應(yīng)用程序,而線程是進(jìn)程內(nèi)部的一個(gè)執(zhí)行序列。一個(gè)進(jìn)程可以有多個(gè)線程。


Java筆試題與答案(全解析).jpg


  14、創(chuàng)建線程有幾種不同的方式?你喜歡哪一種?為什么?


  創(chuàng)建線程有以下幾種方式:


  繼承Thread類


  實(shí)現(xiàn)Runnable接口


  應(yīng)用程序可以使用Executor框架來(lái)創(chuàng)建線程池


  實(shí)現(xiàn)Runnable接口這種方式更受歡迎,因?yàn)檫@不需要繼承Thread類。在已經(jīng)繼承了別的類的情況下,這需要多繼承(而Java不支持多繼承),只能實(shí)現(xiàn)接口。同時(shí),線程池也是非常高效的,很容易實(shí)現(xiàn)和使用。


  15、解釋一下線程的幾種可用狀態(tài)


  線程可以處于以下幾種狀態(tài):


  就緒(Runnable):線程準(zhǔn)備運(yùn)行,不一定立馬就能開(kāi)始執(zhí)行。


  運(yùn)行中(Running):程序正在執(zhí)行線程的代碼。


  等待中(Waiting):線程處于阻塞的狀態(tài),等待外部的處理結(jié)束。


  睡眠中(Sleeping):線程被強(qiáng)制睡眠。


  I/O阻塞(BlockedonI/O):等待I/O操作完成。


  同步阻塞(BlockedonSynchronization):等待獲取鎖。


  死亡(Dead):線程完成了執(zhí)行。


  16、同步方法和同步代碼塊的區(qū)別是什么?


  同步方法就是在方法前加關(guān)鍵字synchronized,然后被同步的方法一次只能有一個(gè)線程進(jìn)入,其他線程等待。


  而同步代碼塊則是在方法內(nèi)部使用大括號(hào)使得一個(gè)代碼塊得到同步。同步塊會(huì)有一個(gè)鎖定的“對(duì)象”。同步代碼塊的同步范圍更加準(zhǔn)確。


  17、在監(jiān)視器(Monitor)內(nèi)部,是如何做線程同步的?程序應(yīng)該做哪種級(jí)別的同步?


  監(jiān)視器和鎖在Java虛擬機(jī)中是一起使用的。監(jiān)視器監(jiān)視同步代碼塊,確保一次只有一個(gè)線程執(zhí)行同步代碼塊。每一個(gè)監(jiān)視器都和一個(gè)對(duì)象引用相關(guān)聯(lián)。線程在獲取鎖之前不允許執(zhí)行同步代碼。


  18、什么是死鎖(deadlock)?


  兩個(gè)線程都在等待對(duì)方執(zhí)行完畢才能繼續(xù)往下執(zhí)行的時(shí)候就發(fā)生了死鎖。結(jié)果就是兩個(gè)線程都陷入了無(wú)限的等待中。


  19、如何確保N個(gè)線程可以訪問(wèn)N個(gè)資源同時(shí)又不導(dǎo)致死鎖?


  使用多線程的時(shí)候,一種非常簡(jiǎn)單的避免死鎖的方式就是:指定獲取鎖的順序,并強(qiáng)制線程按照指定的順序獲取鎖。因此,如果所有的線程都是以同樣的順序加鎖和釋放鎖,就不會(huì)出現(xiàn)死鎖了。


  20、Java集合類框架的基本接口有哪些?


  Java集合類里面最基本的接口有:


  Collection:代表一組對(duì)象,每一個(gè)對(duì)象都是它的子元素。


  Set:不包含重復(fù)元素的Collection。


  List:有順序的Collection,并且可以包含重復(fù)元素。


  Map:可以把鍵(key)映射到值(value)的對(duì)象,鍵不能重復(fù)。


  


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

  • 全國(guó)校區(qū) 2025-04-24 搶座中
  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 97超精品视频在线观看 | 中文字幕一区二区三区免费看 | 5060网一级毛片免费观看 | 国产成人乱码一区二区三区 | 色狠狠一区二区三区香蕉蜜桃 | 神马影院伦理我不卡 | 亚洲欧美色鬼久久综合 | 99热这里只有成人精品国产 | 天天搞天天操 | 国产高清不卡视频 | 美女羞羞网站 | 成人禁在线观看午夜亚洲 | 九九热亚洲精品综合视频 | 久草网视频在线观看 | 国产日韩欧美精品一区二区三区 | 欧美xxxx狂喷水喷水 | 婷婷色综合 | 久久精品国产69国产精品亚洲 | 男女免费视频 | 国内精品久久久久久久久久久久 | 久草男人天堂 | www色婷婷| 免费一级成人毛片 | 超级毛片 | 婷婷丝袜| 国产高清不卡一区二区三区 | 日本一区二区三区中文字幕 | 亚欧毛片基地国产毛片基地 | 一区二区三区精品国产 | 狠狠操天天操视频 | 亚洲欧美日韩国产一区图片 | 欧美日韩你懂的 | 牛牛影视ac精品视频 | 亚洲乱码在线视频 | 天天爱天天做久久天天狠狼 | 欧美激情在线一区二区三区 | 国产一级精品视频 | 91在线高清 | 一区二区国产在线观看 | 老子影院午夜伦手机在线看 | 性激烈欧美三级在线播放 |