【正文】
是抽象的,不能與abstract混用。我想可能是既然靜態(tài)成員類似c語言的全局變量,而內(nèi)部類通常是用于創(chuàng)建內(nèi)部對象用的,所以,把“全局變量”放在內(nèi)部類中就是毫無意義的事情,既然是毫無意義的事情,就應(yīng)該被禁止),內(nèi)部類可以直接訪問外部類中的成員變量,內(nèi)部類可以定義在外部類的方法外面,也可以定義在外部類的方法體中,如下所示:public class Outer {} 在方法體外面定義的內(nèi)部類的訪問類型可以是public,protecte,默認(rèn)的,private等4種類型,這就好像類中定義的成員變量有4種訪問類型一樣,它們決定這個內(nèi)部類的定義對其他類是否可見;對于這種情況,我們也可以在外面創(chuàng)建內(nèi)部類的實例對象,創(chuàng)建內(nèi)部類的實例對象時,一定要先創(chuàng)建外部類的實例對象,然后用這個外部類的實例對象去創(chuàng)建內(nèi)部類的實例對象,代碼如下:Outer outer = new Outer()。public void method(){} Inner1 inner1 = new Inner1()。由于static Nested Class不依賴于外部類的實例對象,所以,static Nested Class能訪問外部類的非static成員變量。static class Inner {} } void test(){ } syso(x)。如果想得到父類的名稱,應(yīng)該用如下代碼:getClass().getSuperClass().getName()。這時,s不指向原來那個對象了,而指向了另一個 String對象,內(nèi)容為”Hello world!“,原來那個對象還存在于內(nèi)存之中,只是s這個引用變量不再指向它了。}...} 而非s = new String(”Initial Value“)。不可變類有一些優(yōu)點(diǎn),比如因為它的對象是只讀的,所以多線程并發(fā)訪問也不會有任何問題。3String 和StringBuffer的區(qū)別JAVA平臺提供了兩個類:String和StringBuffer,它們可以儲存和操作字符串,即包含多個字符的字符數(shù)據(jù)。for(int i=0。while((){result[i++]=()。(s3 == ”ab“)。return x。} finally {return 2。return 2。java編譯器要求方法必須聲明拋出可能發(fā)生的非運(yùn)行時異常,但是并不要求必須聲明拋出未被捕獲的運(yùn)行時異常。Java對異常進(jìn)行了分類,不同類型的異常分別用不同的Java類表示,Throwable下面又派生了兩個子類:Error和Exception,Error 表示應(yīng)用程序本身無法克服和恢復(fù)的一種嚴(yán)重問題,程序只有死的份了,例如,說內(nèi)存溢出和線程死鎖等系統(tǒng)問題。第二種:new Thread(new Runnable(){}).start()。suspend()方法容易發(fā)生死鎖。調(diào)用sleep不會釋放對象鎖。try {}} (10)。這里,使用wait方法釋放鎖。(”thread1 is waiting“)。package 。若標(biāo)志指出線程應(yīng)當(dāng)恢復(fù),則用一個notify()重新啟動線程。它會解除由線程獲取的所有鎖定,而且如果對象處于一種不連貫狀態(tài),那么其他線程能在那種狀態(tài)下檢查和修改它們。4JAVA語言如何進(jìn)行異常處理,關(guān)鍵字:throws,throw,try,catch,finally分別代表什么意義?在try塊中可以拋出異常嗎?4java中有幾種方法可以實現(xiàn)一個線程?用什么關(guān)鍵字修飾同步方法? stop()和suspend()方法為何不推薦使用?java5以前,有如下兩種: 第一種:new Thread(){}.start()。4Java中的異常處理機(jī)制的簡單原理和應(yīng)用。finalize是Object類的一個方法,在垃圾收集器執(zhí)行的時候會調(diào)用被回收對象的此方法,可以覆蓋此方法提供垃圾收集時的其他資源回收,例如關(guān)閉文件等。}} finally { } return func2()。(b)。3try {}里有一個return語句,那么緊跟在這個try后的finally {}里的code會不會被執(zhí)行,什么時候被執(zhí)行,在return前還是后?也許你的答案是在return之前,但往更細(xì)地說,我的答案是在return中間執(zhí)行,請看下面程序代碼的運(yùn)行結(jié)果:public class Test {static int test(){} }執(zhí)行結(jié)果int x = 1。String s3 = ”a“ + ”b“。String [] result = new String[()]。接著要舉一個具體的例子來說明,我們要把1到100的所有數(shù)字拼起來,組成一個串。New String每寫一遍,就創(chuàng)建一個新的對象,它一句那個常量”xyz”對象的內(nèi)容來創(chuàng)建出一個新String對象。其實不只String,很多Java標(biāo)準(zhǔn)類庫中的類都是不可變的。例如我們要在構(gòu)造器中對一個名叫s的String引用變量進(jìn)行初始化,把它設(shè)置為初始值,應(yīng)當(dāng)這樣做:public class Demo { private String s。因為String被設(shè)計成不可變(immutable)類,所以它的所有對象都是不可變對象。new Test().test()。2內(nèi)部類可以引用它的包含類的成員嗎?有沒有什么限制?完全可以。在外面引用Static Nested Class類的名稱為“”。對于這些細(xì)節(jié),只要在eclipse寫代碼試試,根據(jù)開發(fā)工具提示的各類錯誤信息就可以馬上了解到。2什么是內(nèi)部類?Static Nested Class 和 Inner Class的不同。備注:這道題的思路是先從總體解釋抽象類和接口的基本概念,然后再比較兩者的語法細(xì)節(jié),最后再說兩者的應(yīng)用區(qū)別。接口中沒有普通成員變量,接口中的所有方法必須都是抽象的,不能有非抽象的普通方法。比喻:人吃飯,你看到的是左手,還是右手?2java中實現(xiàn)多態(tài)的機(jī)制是什么?靠的是父類或接口定義的引用變量可以指向子類或具體實現(xiàn)類的實例對象,而程序調(diào)用的方法在運(yùn)行期才動態(tài)綁定,就是引用變量所指向的具體實例對象的方法,也就是內(nèi)存里正在運(yùn)行的那個對象的方法,而不是引用變量的類型中定義的方法。int age。例如,人要在黑板上畫圓,這一共涉及三個對象:人、黑板、圓,畫圓的方法要分配給哪個對象呢?由于畫圓需要使用到圓心和半徑,圓心和半徑顯然是圓的屬性,如果將它們在類中定義成了私有的成員變量,那么,畫圓的方法必須分配給圓,它才能訪問到圓心和半徑這兩個屬性,人以后只是調(diào)用圓的畫圓方法、表示給圓發(fā)給消息而已,畫圓這個方法不應(yīng)該分配在人這個對象上,這就是面向?qū)ο蟮姆庋b性,即將對象封裝成一個高度自治和相對封閉的個體,對象狀態(tài)(屬性)由這個對象自己的行為(方法)來讀取和改變。2面向?qū)ο蟮奶卣饔心男┓矫嬗嬎銠C(jī)軟件系統(tǒng)是現(xiàn)實生活中的業(yè)務(wù)在計算機(jī)中的映射,而現(xiàn)實生活中的業(yè)務(wù)其實就是一個個對象協(xié)作的過程。1構(gòu)造器Constructor是否可被override?構(gòu)造器Constructor不能被繼承,因此不能重寫Override,但可以被重載Overload。這是不行的,我們可以用反證法來說明這個問題,因為我們有時候調(diào)用一個方法時也可以不定義返回結(jié)果變量,即不要關(guān)心其返回結(jié)果,例如,(key)方法時,雖然remove方法有返回值,但是我們通常都不會定義接收返回結(jié)果的變量,這時候假設(shè)該類中有兩個名稱和參數(shù)列表完全相同的方法,僅僅是返回類型不同,java就無法確定編程者倒底是想調(diào)用哪個方法了,因為它無法通過返回結(jié)果類型來判斷。重載Overload表示同一個類中可以有多個名稱相同的方法,但這些方法的參數(shù)列表各不相同(即參數(shù)個數(shù)或類型不同)。1()等於多少? ()等於多少? Math類中提供了三個與取整有關(guān)的方法:ceil、floor、round,這些方法的作用與它們的英文名稱的含義相對應(yīng),例如,ceil的英文意義是天花板,該方法就表示向上取整,()的結(jié)果為12,()的結(jié)果是11;floor的英文意義是地板,該方法就表示向下取整,()的結(jié)果為11,()的結(jié)果是12;最難掌握的是round方法,它表示“四舍五入”,(x+),所以,()的結(jié)果為12,()的結(jié)果為11。因為非static方法是要與對象關(guān)聯(lián)在一起的,必須創(chuàng)建一個對象后,才可以在該對象上進(jìn)行方法調(diào)用,而static方法調(diào)用時不需要創(chuàng)建對象,可以直接調(diào)用。總之,實例變量必須創(chuàng)建對象后才可以通過這個對象來使用,靜態(tài)變量則可以直接使用類名來引用。(“quit”),許多人稍不注意就使用==進(jìn)行比較了,這是錯誤的,隨便從網(wǎng)上找?guī)讉€項目實戰(zhàn)的教學(xué)視頻看看,里面就有大量這樣的錯誤。如果一個變量指向的數(shù)據(jù)是對象類型的,那么,這時候涉及了兩塊內(nèi)存,對象本身占用一塊內(nèi)存(堆內(nèi)存),變量也占用一塊內(nèi)存,例如Objet obj = new Object()。public Biginteger(String val){} public BigInteger add(BigInteger other){ } public BigInteger subtract(BigInteger other){ } public BigInteger multiply(BigInteger other){ } public BigInteger divide(BigInteger other){ }sign =。int b = 。不過,如果某個特殊的漢字沒有被包含在unicode編碼字符集中,那么,這個char型變量中就不能存儲這個特殊漢字。s1 += 1。for(int j=0。i}另外,我個人通常并不使用標(biāo)號這種方式,而是讓外層的循環(huán)條件表達(dá)式的結(jié)果可以受到里層循環(huán)體代碼的控制,例如,要在二維數(shù)組中查找到某個數(shù)字。運(yùn)算,來獲取該整數(shù)的最低4個bit位,例如,0x31 amp。則會拋出NullPointerException異常。都可以用作邏輯與的運(yùn)算符,表示邏輯與(and),當(dāng)運(yùn)算符兩邊的表達(dá)式的結(jié)果都為true時,整個運(yùn)算結(jié)果才為true,否則,只要有一方為false,則結(jié)果為false。Java有沒有g(shù)oto?java中的保留字,現(xiàn)在沒有在java中使用。答題時,先答是什么,再答有什么作用和要注意什么(這部分最重要,展現(xiàn)自己的心得)答案的段落分別,層次分明,條理清晰都非常重要,從這些表面的東西也可以看出一個人的習(xí)慣、辦事風(fēng)格、條理等。.} .}: ()1 ()()99 time error ()簡答題22:怎樣在復(fù)雜的各種形式的網(wǎng)頁中提取mp3下載的結(jié)構(gòu)化數(shù)據(jù)?23:編寫一程序,利用RandomAccessFile類將一個文件的全部內(nèi)容追加到另一個文件的末尾。A.**0** B.**0****2** C.**0****1****2** 20:軟件生命周期的瀑布模型把軟件項目分為3個階段、8個子階段,以下哪一個是正常的開發(fā)順序?、開發(fā)階段、運(yùn)行階段、開發(fā)階段、編碼階段、編碼階段、維護(hù)階段、編碼階段、測試階段21: will happen when you attempt to pile and run the following code? Base .{ i = 99。則執(zhí)行以下程序段的輸出結(jié)果為()。 : 11.{ j = 0。b)amp。public class Test{// do something...} 15:以下的C程序代碼片段運(yùn)行后C和d的值分別是多少Int a =1,b =2。}while(k=10000)。 cctld!= null : “No country code data is available”。 AssertTest().{ = new HashMap()。{(“Doing it for l is:”+l)。 short_s=()。=new String(“game over”)。=b。(“au”, “Australia”)。if(i100)break。s。public class Test{//do something...} .*。b)amp。a39。(j)。case 1:printf(“**1**”)。.} .} class Derived extends Base .{ i =1。27:如果有幾千個session,怎么提高效率。答題就是給別人講道理、擺事實。amp。還具有短路的功能,即如果第一個表達(dá)式為false,則不再計算第二個表達(dá)式,例如,對于if(str!= null amp。amp。amp。for(int i=0。switch語句能否作用在byte上,能否作用在long上,能否作用在String上?在switch(expr1)中,expr1只能是一個整數(shù)表達(dá)式或者枚舉常量(更大字體),整數(shù)表達(dá)式可以是int基本類型或Integer包裝類型,由于,byte,short,char都可以隱含轉(zhuǎn)換為int,所以,這些類型以及這些類型的包裝類型也是可以的。由于s1+1運(yùn)算時會自動提升表達(dá)式的類型,所以結(jié)果是int型,再賦值給short類型s1時,編譯器將報告需要強(qiáng)制轉(zhuǎn)換類型的錯誤。用最有效率的方法算出2乘以8等於幾? 請設(shè)計一個一百億的計算器首先要明白這道題目的考查點(diǎn)是什么,一是大家首先要對計算機(jī)原理的底層細(xì)節(jié)要清楚、要知道加減法的位運(yùn)算原理和知道計算機(jī)中的算術(shù)運(yùn)算會發(fā)生越界的情況,二是要具備一定的面向?qū)ο蟮脑O(shè)計思想。先不考慮long類型,由于int的正數(shù)范圍為2的31次方,表示的最大數(shù)值約等于2*1000*1000*1000,也就是20億的大小,所以,要實現(xiàn)一個一百億的計算器,我們得自己設(shè)計一個類可以用于表示很大的整數(shù),并且提供了與另外一個整數(shù)進(jìn)行加減乘除的功能,大概功能如下:()這個類內(nèi)部有兩個成員變量,一個表示符號,另一個用字節(jié)數(shù)組表示數(shù)值的二進(jìn)制數(shù)()有一個構(gòu)造方法,把一個包含有多位數(shù)值的字符串轉(zhuǎn)換到內(nèi)部的符號和字節(jié)數(shù)組中()提供加減乘除的功能 public class Big