java面試基礎(chǔ)知識(shí)分享_第1頁(yè)
java面試基礎(chǔ)知識(shí)分享_第2頁(yè)
java面試基礎(chǔ)知識(shí)分享_第3頁(yè)
java面試基礎(chǔ)知識(shí)分享_第4頁(yè)
java面試基礎(chǔ)知識(shí)分享_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

java面試基礎(chǔ)知識(shí)分享java面試基礎(chǔ)知識(shí)1、靜態(tài)變量和實(shí)例變量的區(qū)別?在語(yǔ)法定義上的區(qū)別:靜態(tài)變量前要加static關(guān)鍵字,而實(shí)例變量前則不加。在程序運(yùn)行時(shí)的區(qū)別:實(shí)例變量是屬于某個(gè)對(duì)象的屬性,必須創(chuàng)建了實(shí)例對(duì)象,其中的實(shí)例變量才會(huì)被分配內(nèi)存空間,才可以使用這個(gè)實(shí)例變量。靜態(tài)變量不屬于某個(gè)實(shí)例對(duì)象,而是屬于類,所以也稱為類變量,只要程序加載了類的字節(jié)碼,不用創(chuàng)建任何實(shí)例對(duì)象,靜態(tài)變量就會(huì)分配內(nèi)存空間,而且只分配一次,靜態(tài)變量就可以被使用了。總之,實(shí)例變量必須創(chuàng)建后才可以通過這個(gè)對(duì)象來使用,靜態(tài)變量則直接可以使用類名來調(diào)用。2、什么是反射機(jī)制?java反射是在運(yùn)行狀態(tài)中,對(duì)任意一個(gè)類,都能夠知道這個(gè)類的所有屬性和方法,對(duì)于任何一個(gè)對(duì)象,都能夠調(diào)用它的任意一個(gè)屬性和方法,這種動(dòng)態(tài)獲取信息以及動(dòng)態(tài)調(diào)用對(duì)象的方法的功能稱為java的反射機(jī)制。3、什么是裝箱?什么是拆箱?裝箱:自動(dòng)將基本數(shù)據(jù)類型轉(zhuǎn)換為包裝器類型。拆箱:自動(dòng)將包裝器類型轉(zhuǎn)換為基本數(shù)據(jù)類型。4、Java中覆蓋和重載是什么意思?覆蓋(Override)是指子類對(duì)父類方法的一種重寫,只能比父類拋出更少的異常,訪問權(quán)限不能比父類的小,被覆蓋的方法不能是private的,否則只是在子類中重新定義了一個(gè)新方法。重載(Overload)表示同一個(gè)類中可以有多個(gè)名稱相同的方法,但這些方法的參數(shù)列表各不相同。Java工程師需要具備什么技能1、夯實(shí)的java基礎(chǔ)當(dāng)前的java新技術(shù)層出不窮,各企業(yè)的有不同的側(cè)重點(diǎn),根據(jù)企業(yè)用人的需求,只有具備堅(jiān)實(shí)的java基礎(chǔ)功底的程序員才能快速掌握新的技術(shù)。需要在核心算法、面向?qū)ο髴?yīng)用、數(shù)據(jù)結(jié)合及集合框架、反射、輸入輸出、多線程、異常處理等方面進(jìn)行深入學(xué)習(xí)。2、熟悉Linux操作系統(tǒng)Linux是當(dāng)今用作廣泛的服務(wù)器操作系統(tǒng)。合格的java高級(jí)工程師必須具備熟練地Linux操作技巧,這也正是在企業(yè)面試中獲得加分的重要指標(biāo)之一。3、深入學(xué)習(xí)數(shù)據(jù)庫(kù)技術(shù)互聯(lián)網(wǎng)公司對(duì)Java應(yīng)用離不開數(shù)據(jù)庫(kù)技術(shù)。任何一個(gè)大中型應(yīng)用,數(shù)據(jù)庫(kù)設(shè)計(jì)的好壞、數(shù)據(jù)庫(kù)訪問的效率直接決定了該項(xiàng)目的成敗。當(dāng)前數(shù)據(jù)庫(kù)最主流的技術(shù)有Oracle和MySQL兩種,除了能熟練應(yīng)用數(shù)據(jù)庫(kù)體系結(jié)構(gòu)和SQL語(yǔ)句之外,還要掌握數(shù)據(jù)庫(kù)設(shè)計(jì)、SQL語(yǔ)句優(yōu)化方面。4、系統(tǒng)的Web前端技術(shù)隨著互聯(lián)網(wǎng)技術(shù)由Web2.0向Web3.0邁進(jìn),Web前端技術(shù),包括HTML、CSS特別是javascript語(yǔ)言越來越被企業(yè)重視。很多企業(yè)為此設(shè)置“Web前端工程師”崗位,所以作為一名合格的java高級(jí)工程師要不斷學(xué)習(xí)包括javascript在內(nèi)的Java知識(shí)還有其相關(guān)的Ajax、JQueiy框架、Ext-JS框架。5、企業(yè)及框架Java是組件和框架的世界,所有的java程序員都應(yīng)當(dāng)了解java框架。6、專門的企業(yè)級(jí)開發(fā)及部署環(huán)境企業(yè)在開發(fā)、測(cè)試、部署實(shí)際項(xiàng)目時(shí)需要有特定的軟件環(huán)境,但是很多技術(shù)人員往往不太重視這個(gè),所以在工作中會(huì)出現(xiàn)很多問題和失誤甚至被淘汰。因此,作為java工程師對(duì)Linux高級(jí)命令集腳本編程、遠(yuǎn)程登錄、Art、單元測(cè)試技術(shù)、Maven構(gòu)建技術(shù)、SVN應(yīng)用技術(shù)等要有所了解。7、規(guī)范的企業(yè)開發(fā)流程及文檔軟件開發(fā)是團(tuán)隊(duì)合作,因此企業(yè)開發(fā)流程和文檔規(guī)范尤為重要。這也是區(qū)分“草根程序員”和“正規(guī)程序員”的重要指標(biāo)之一。開發(fā)項(xiàng)目項(xiàng)目無(wú)論大小都應(yīng)該按照企業(yè)開發(fā)的流程進(jìn)行(需求分析、系統(tǒng)設(shè)計(jì)、編碼實(shí)現(xiàn)、單元測(cè)試、系統(tǒng)測(cè)試、部署上線)。java基礎(chǔ)知識(shí)面試題及答案1、static關(guān)鍵字什么意思?java中是否可以覆蓋一個(gè)private或者是static的方法?“static”表明一個(gè)成員變量或者是成員方法可以在沒有所屬類的實(shí)例變量的情況下訪問。java中static方法不能被覆蓋,因?yàn)榉椒ǜ采w是基于運(yùn)行時(shí)動(dòng)態(tài)綁定的,而static方法是編譯時(shí)靜態(tài)綁定的。static方法與類的任何實(shí)例都不相關(guān)。java中不可以覆蓋private方法。因?yàn)閜rivate修飾的變量和方法只能在當(dāng)前類中使用,如果是其他類繼承當(dāng)前類,繼承類中是不能訪問到private變量和方法的。2、能否在static環(huán)境中訪問非static變量?不能。static變量是屬于類的。當(dāng)類被虛擬機(jī)載入時(shí),會(huì)對(duì)static變量進(jìn)行初始化。非static變量是屬于實(shí)例的,這個(gè)時(shí)候?qū)嵗€沒有被創(chuàng)建,編譯器會(huì)報(bào)錯(cuò)。3、java基本類型,什么是自動(dòng)拆裝箱?基本類型:byte,short,int,float,long,double,boolean,char自動(dòng)裝箱:是java編譯器在基本類型和對(duì)應(yīng)的對(duì)象包裝類型之間做一個(gè)轉(zhuǎn)化。比如把int轉(zhuǎn)化為Integer等等。反之為自動(dòng)拆箱。4、java的方法覆蓋overriding和方法重載overloading是什么意思?java中方法重載發(fā)生在同一個(gè)類中有兩個(gè)或者多個(gè)方法名字相同但是參數(shù)不同的情況。方法覆蓋是子類重新定義父類的方法。方法覆蓋必須有相同的方法名,參數(shù)列表和返回類型。5、java中,什么是構(gòu)造方法?什么是構(gòu)造方法重載?什么是復(fù)制構(gòu)造方法?當(dāng)新對(duì)象被創(chuàng)建時(shí),構(gòu)造方法會(huì)被調(diào)用。每一個(gè)類都有一個(gè)構(gòu)造方法,在沒有給類提供構(gòu)造函數(shù)時(shí),編譯器會(huì)自動(dòng)創(chuàng)建一個(gè)默認(rèn)的構(gòu)造方法java中構(gòu)造方法重載和方法重載很相似。可以為一個(gè)類創(chuàng)建多個(gè)構(gòu)造方法,每一個(gè)構(gòu)造方法必須有它自己唯一的參數(shù)列表6、java支持多繼承嗎?不支持。只能支持單繼承,即一個(gè)類只有一個(gè)父類??梢杂胕mplements實(shí)現(xiàn)多個(gè)接口擴(kuò)展7、接口與抽象類的區(qū)別(1)接口中所有方法隱含都是抽象的。而抽象類則可以同時(shí)包含抽象和非抽象的方法(2)接口中聲明的變量默認(rèn)都是final,而抽象類可以包含非final的變量(3)接口中成員函數(shù)默認(rèn)都會(huì)publico抽象類的成員函數(shù)可以是private,protected或者public(4)類可以不實(shí)現(xiàn)抽象類和接口聲明中的所有方法,這種情況下,類也必須聲明為抽象的8、jdk與jre區(qū)別是什么?java運(yùn)行時(shí)環(huán)境(jre)是將要執(zhí)行的java程序的java虛擬機(jī),同時(shí)也包含了執(zhí)行applet需要的瀏覽器插件。java開發(fā)工具包(jdk)是完整的java軟件開發(fā)包,包含了jre,編譯器和其他工具(比如:javadoc,java調(diào)試器),可以讓開發(fā)者開發(fā),編譯,執(zhí)行java應(yīng)用程序。9、什么是只傳遞和引用傳遞值傳遞是對(duì)基本類型變量而言,傳遞是該變量的一個(gè)副本,改變副本不會(huì)影響原變量引用傳遞一般是對(duì)于對(duì)象型變量而言,傳遞的是該對(duì)象地址的一個(gè)副本,改變副本,會(huì)影響原變量10、進(jìn)程和線程的區(qū)別?進(jìn)程是執(zhí)行著的應(yīng)用程序,線程是進(jìn)程內(nèi)部的一個(gè)執(zhí)行序列。一個(gè)進(jìn)程可以有多個(gè)線程區(qū)別:(1)地址空間和其他資源:進(jìn)程之間相互獨(dú)立。同一個(gè)進(jìn)程的各個(gè)線程間共享。某進(jìn)程內(nèi)的線程在其他進(jìn)程不可見(2)通信:進(jìn)程之間通信ipc,線程間可以直接讀寫進(jìn)程數(shù)據(jù)段(如全局變量)來進(jìn)行通信一需要進(jìn)程同步和互斥手段的輔助,以保證數(shù)據(jù)的一致性(3)調(diào)度和切換:線程之間上下文切換比進(jìn)程上下文切換快的多(4)在多線程os中,進(jìn)程不是一個(gè)可執(zhí)行的實(shí)體11、同步方法和同步代碼塊的區(qū)別同步方法默認(rèn)是用this或當(dāng)前類對(duì)象作為鎖同步代碼塊可以選擇以什么來加鎖,比同步方法更細(xì)粒度。我們可以選擇只同步會(huì)發(fā)生同步問題的部分代碼而不是整個(gè)方法12、什么是死鎖?死鎖是值多個(gè)線程因資源競(jìng)爭(zhēng)而造成的一種僵局,若無(wú)外力作用,這些線程都無(wú)法向前推進(jìn)。產(chǎn)生死鎖的4個(gè)必要條件(1)互斥條件(2)不剝奪條件(3)請(qǐng)求和保持條件(4)循環(huán)等待13、如何確保N個(gè)線程可以訪問N個(gè)資源同時(shí)又不導(dǎo)致死鎖?一種非常簡(jiǎn)單的避免死鎖的方式:指定獲取鎖的順序,并強(qiáng)制線程按照指定的順序獲取鎖。因此如果所有的線程都是以同樣的順序加鎖和釋放鎖,就不會(huì)出現(xiàn)死鎖14、java集合類框架的基本接口有哪些?Collection,Set,List,Map15>HashMap工作原理hashMap是以鍵值對(duì)的形式存儲(chǔ)。hashmap需要一個(gè)hash函數(shù),它使用hashCode和equals方法來向集合/從集合添加和檢索元素。當(dāng)調(diào)用put時(shí)、HashMap會(huì)計(jì)算key的hash值,然后把鍵值對(duì)存儲(chǔ)在集合中合適的索引上。如果key已經(jīng)存在,value會(huì)被更新成新值。

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論