java開發(fā)工程師面試寶典大全_第1頁
已閱讀1頁,還剩66頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、11.Java基礎部分基礎部分的順序:基本語法,類相關的語法,內(nèi)部類的語法,繼承相關的語法,異常的語法,線程的語法,集合的語法,io的語法,虛擬機方面的語法。1、一個“.java“源文件中是否可以包括多個類(不是內(nèi)部類)?有什么限制?可以有多個類,但只能有一個public的類,并且public的類名必須與文件名相一致。2、Java有沒有gotojava中的保留字,現(xiàn)在沒有在java中使用。3、說說i10i)f(intj=0j10j)Sy

2、stem.out.println(“i=”i“j=”j)if(j==5)breakok另外,我個人通常并不使用標號這種方式,而是讓外層的循環(huán)條件表達式的結(jié)果可以受到里層循環(huán)體代碼的控制,例如,要在二維數(shù)組中查找到某個數(shù)字。intarr[][]=12345679booleanfound=falsef(inti=0iarr.lengthi)f(intj=0jarr[i].lengthj)System.out.println(“i=”i“j=

3、”j)if(arr[i][j]==5)found=truebreak5、switch語句能否作用在byte上,能否作用在long上,能否作用在String上在switch(expr1)中,expr1只能是一個整數(shù)表達式或者枚舉常量(更大字體),整數(shù)表達式可以是int基本類型或Integer包裝類型,由于,bytesht都可以隱含轉(zhuǎn)換為int,所以,這些類型以及這些類型的包裝類型也是可以的。顯然,long和String類型都不符合swit

4、ch的語法規(guī)定,并且不能被隱式轉(zhuǎn)換成int類型,所以,它們不能作用于swtich語句中。6、shts1=1s1=s11有什么錯shts1=1s1=1有什么錯對于shts1=1s1=s11由于s11運算時會自動提升表達式的類型,所以結(jié)果是int型,再賦值給sht類型s1時,編譯器將報告需要強制轉(zhuǎn)換類型的錯誤。對于shts1=1s1=1由于=是java語言規(guī)定的運算符,java編譯器會對它進行特殊處理,因此可以正確編譯。7、型變量中能不能存

5、貯一個中文漢字為什么型變量是用來存儲Unicode編碼的字符的,unicode編碼字符集中包含了漢字,所以,型變量中當然可以存儲漢字啦。不過,如果某個特殊的漢字沒有被包含在unicode編碼字符集中,那么,這個型變量中就不能存儲這個特殊漢字。補充說明:unicode編碼占用兩個字節(jié),所以,類型的變量也是占用兩個字節(jié)。備注:后面一部分回答雖然不是在正面回答題目,但是,為了展現(xiàn)自己的學識和表現(xiàn)自己對問題理解的透徹深入,可以回答一些相關的知識

6、,做到知無不言,言無不盡。8、用最有效率的方法算出2乘以8等於幾23,因為將一個數(shù)左移n位,就相當于乘以了2的n次方,那么,一個數(shù)乘以8只要將其左移3位即可,而位運算cpu直接支持的,效率最高,所以,2乘以8等於幾的最效率的方法是23。9、請設計一個一百億的計算器首先要明白這道題目的考查點是什么,一是大家首先要對計算機原理的底層細節(jié)要清楚、要知道加減法的位運算原理和知道計算機中的算術運算會發(fā)生越界的情況,二是要具備一定的面向?qū)ο蟮脑O計思

7、想。首先,計算機中用固定數(shù)量的幾個字節(jié)來存儲的數(shù)值,所以計算機中能夠表示的數(shù)值是有一定的范圍的,為了便于講解和理解,我們先以byte類型的整數(shù)為例,它用1個字節(jié)進行存儲,表示的最大數(shù)值范圍為128到127。1在內(nèi)存中對應的二進制數(shù)據(jù)為11111111,如果兩個1相加,不考慮Java3的對象,它們的首地址是不同的,即a和b中存儲的數(shù)值是不相同的,所以,表達式a==b將返回false,而這兩個對象中的內(nèi)容是相同的,所以,表達式a.equal

8、s(b)將返回true。在實際開發(fā)中,我們經(jīng)常要比較傳遞進行來的字符串內(nèi)容是否等,例如,Stringinput=…input.equals(“quit”),許多人稍不注意就使用==進行比較了,這是錯誤的,隨便從網(wǎng)上找?guī)讉€項目實戰(zhàn)的教學視頻看看,里面就有大量這樣的錯誤。記住,字符串的比較基本上都是使用equals方法。如果一個類沒有自己定義equals方法,那么它將繼承Object類的equals方法,Object類的equals方法的實

9、現(xiàn)代碼如下:booleanequals(Objecto)returnthis==o這說明,如果一個類沒有自己定義equals方法,它默認的equals方法(從Object類繼承的)就是使用==操作符,也是在比較兩個變量指向的對象是否是同一對象,這時候使用equals和使用==會得到同樣的結(jié)果,如果比較的是兩個獨立的對象則總返回false。如果你編寫的類希望能夠比較該類創(chuàng)建的兩個實例對象的內(nèi)容是否相同,那么你必須覆蓋equals方法,由你

10、自己寫代碼來決定在什么情況即可認為兩個對象的內(nèi)容是相同的。12、靜態(tài)變量和實例變量的區(qū)別?在語法定義上的區(qū)別:靜態(tài)變量前要加static關鍵字,而實例變量前則不加。在程序運行時的區(qū)別:實例變量屬于某個對象的屬性,必須創(chuàng)建了實例對象,其中的實例變量才會被分配空間,才能使用這個實例變量。靜態(tài)變量不屬于某個實例對象,而是屬于類,所以也稱為類變量,只要程序加載了類的字節(jié)碼,不用創(chuàng)建任何實例對象,靜態(tài)變量就會被分配空間,靜態(tài)變量就可以被使用了。總

11、之,實例變量必須創(chuàng)建對象后才可以通過這個對象來使用,靜態(tài)變量則可以直接使用類名來引用。例如,對于下面的程序,無論創(chuàng)建多少個實例對象,永遠都只分配了一個staticVar變量,并且每創(chuàng)建一個實例對象,這個staticVar就會加1;但是,每創(chuàng)建一個實例對象,就會分配一個instanceVar,即可能分配多個instanceVar,并且每個instanceVar的值都只自加了1次。publicclassVariantTestpublicst

12、aticintstaticVar=0publicintinstanceVar=0publicVariantTest()staticVarinstanceVarSystem.out.println(“staticVar=”staticVar”instanceVar=”instanceVar)備注:這個解答除了說清楚兩者的區(qū)別外,最后還用一個具體的應用例子來說明兩者的差異,體現(xiàn)了自己有很好的解說問題和設計案例的能力,思維敏捷,超過一般程序員

13、,有寫作能力!13、是否可以從一個static方法內(nèi)部發(fā)出對非static方法的調(diào)用?不可以。因為非static方法是要與對象關聯(lián)在一起的,必須創(chuàng)建一個對象后,才可以在該對象上進行方法調(diào)用,而static方法調(diào)用時不需要創(chuàng)建對象,可以直接調(diào)用。也就是說,當一個static方法被調(diào)用時,可能還沒有創(chuàng)建任何實例對象,如果從一個static方法中發(fā)出對非static方法的調(diào)用,那個非static方法是關聯(lián)到哪個對象上的呢?這個邏輯無法成立,所

14、以,一個static方法內(nèi)部發(fā)出對非static方法的調(diào)用。14、Integer與int的區(qū)別int是java提供的8種原始數(shù)據(jù)類型之一。Java為每個原始類型提供了封裝類,Integer是java為int提供的封裝類。int的默認值為0,而Integer的默認值為null,即Integer可以區(qū)分出未賦值和值為0的區(qū)別,int則無法表達出未賦值的情況,例如,要想表達出沒有參加考試和考試成績?yōu)?的區(qū)別,則只能使用Integer。在JSP

15、開發(fā)中,Integer的默認為null,所以用el表達式在文本框中顯示時,值為空白字符串,而int默認的默認值為0,所以用el表達式在文本框中顯示時,結(jié)果為0,所以,int不適合作為web層的表單數(shù)據(jù)的類型。在Hibernate中,如果將OID定義為Integer類型,那么Hibernate就可以根據(jù)其值是否為null而判斷一個對象是否是臨時的,如果將OID定義為了int類型,還需要在hbm映射文件中設置其unsavedvalue屬性為

16、0。另外,Integer提供了多個與整數(shù)相關的操作方法,例如,將一個字符串轉(zhuǎn)換成整數(shù),Integer中還定義了表示整數(shù)的最大值和最小值的常量。15、Math.round(11.5)等於多少Math.round(11.5)等於多少Math類中提供了三個與取整有關的方法:ceil、flo、round,這些方法的作用與它們的英文名稱的含義相對應,例如,ceil的英文意義是天花板,該方法就表示向上取整,Math.ceil(11.3)的結(jié)果為12

17、Math.ceil(11.3)的結(jié)果是11;flo的英文意義是地板,該方法就表示向下取整,Math.ceil(11.6)的結(jié)果為11Math.ceil(11.6)的結(jié)果是12;最難掌握的是round方法,它表示“四舍五入”,算法為Math.flo(x0.5),即將原來的數(shù)字加上0.5后再向下取整,所以,Math.round(11.5)的結(jié)果為12,Math.round(11.5)的結(jié)果為11。16、下面的代碼有什么不妥之處1.if(us

溫馨提示

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

評論

0/150

提交評論