下面是java基礎筆試題,當時我去筆試,做了1個小時(80道選擇題,后面的簡答題就沒時間做了),結果很嚇人,太挫了,最后被面試官忽悠去培訓去了,呵呵。我偷偷把面試題弄了下來,用來學習吧,也希望能對你們有所幫助。
1.下列說法正確的是() (程序結構) A java程序的main方法必須寫在類甩面 B java程序中可以有多個main方法 C、java程序中類名必須與文件名一樣 D、JAVA程序的main方法中如果只有一條語句,可以不用{}括起來 2.java中,在如卜所示的Test類中,共有()個構造方法,(構造方法) public class Test{ public Test(){ x=35; } public void Test(double f){ this.x = (int)f; } public Test(String s){ } } A. 0 B. 1 C. 2 D. 3 3,變量名命名規范說法正確的是()(命名規范) A、變暈由字母、卜划線、數字、$符號隨意組成; B,變量不能以數字作為開頭: C, A和a在Java中是同一個變撼: D 不同類型的變量,可以起相同的名字: 4 下列javaDoc注釋正確的是()(注釋的規范) A、/*我愛北京大安門**/ B、//我愛北京大安門*/ C、/**我愛北京大安門*/ D、/*我愛北京大安門**/ 5、為一個boolean類型變量賦值時,可以使用()方式 A boolean =1; B boolean a=(9>=10); C boolean a ="真”; D Boolean a=false; 6 . ()不是合法的標識符(標識符的命名規) A、STRING B、x3x; C、void D、de$f 7.表達式((11+3*8)/4%3的值是()(操作符的運算) A、31 B、0 C、1 D、2 8.()表達式不可以作為循環條件 A、i++; B、i>5; C、bEqual=str.equals("q"); D、count==i; 9、運算符優先級別排序正確的是()(運算符優先級) A、由高向低分別是:()、!、算術運算符、關系運算符、邏輯運算符、賦值運算符 B、由高向低分別是:()、關系運算符、算術運算符、賦值運算符、!、邏輯運算符 C、由高向低分別是:()、算術運算符、邏輯運算符、關系運炸符、!、賦值運算符 D、由高向低分別是:()、!、關系運算符、賦值運算符、算一術運算符、邏輯運算符 10、以下程序的運行結果是:()(++操作) public class Increment{ public static void main(String args[]){ int a; a=6; System.out.print{a); System.out.print{a++); System.out.print(a); } A.666 B.667 C.677 D.676 11、下列值不為true的表達式有().(運算符) A."john"=="john" B."john".equals("john") C."john"="john" D."john".equals(new String("john")) 12.下列輸出結果是()(switch語句) int a=0; white(a<5){ switch(a){ case 0: case 3:a=a+2; case 1: case 2:a=a+3; default:a=a+5; } } System.out.print(a) A、0 B、5 C、10 D、其他 13、下列代碼輸出結果是()( while循環) int i=l0; while(i>0){ i=i+1; if(i==10){ break; } } A. while循環執行to次 B.死循環 C,循環一次都不執行 D.循環執行一次 14, 下面有關for循環的描述正確的是()(for循環) A ,for循環體語句中,可以包含多條語句,但要用大括號括起來 B ,for循環只能用於循環次數己經確定的情況 C ,在for循環中,不能使用break語句跳出循環 D ,for循環是先執行循環體語句,后進行條件判斷. 15、下列()屬於引用數據類型(選擇兩項)(引用數據類型) A、String B、char C 用戶自定義的Student類型 D int 16.對象的特征在類中表示為變量,稱為類的()(對象的特征) A.對象 B。屬性 c。方法 D。數據類型 17.在java中下面關於自動類型轉換說法正確的是()(基本數據類型轉換) A。基本數據類型和String相加一定是字符串類型 B.char類型和整形相加一定是字符 C。double可以自動轉換為int D。char+double+int 結果一定是double 18.關於類的敘述正確的是(選擇兩項)()(類的描述) A。在類中定義的變量稱為成員變量,在別的類中可以直接使用 B。局部變量的作用范圍僅在定義它的方法內,或者在定義它的控制流中 C。使用別的類的方法僅僅需要引用方法的名稱即可 D。一個類的方法使用同類中另一個方法時可以直接引用方法名 19.下列關於字符串描述錯誤的是()(選擇兩項)(String和StringBuffer) A.字符串是變量 B。String對象存儲字符串的效率比StringBuffer效率高 C。可以使用StringBuffer sb=“這里是字符串”來聲明並初始化StringBuffer對象sb D。String類提供了很多用來操作字符串的方法:連接,提取,查詢 20.以下( )代碼中,能夠對數組進行初始化(或者默認初始化) (數組) A。int[] a; B.a ={1,2,3,4,5}; C.int[] a=new int[5]{1,2,3,4,5}; D.int[] a= new int[5]; 21.score是一個整形數組,有五個元素,已經正確初始化並賦值,仔細閱讀以下代碼,程序的運行結果是()(數組) tmp =score[0]; for(int index=1;index<5;index++){ if(score[index] < tmp) tmp =score[index]; } A.求最大值 B。求最小值 C。找到數組最后一個元素 D。編譯出錯 22. 下面關於數組的說法中,錯誤的是()(選擇兩項)(數組) A.在類中聲明一個整數數組作為成員變量,如果沒有給它賦值,數組元素值為空 B.數組可以在內存空間連續存儲任意一組數據 C.數組必須先聲明、然后才能使川 D.數組本身是一個對象 23. 在,Java中下而代碼是()條語句 int i;j=123; int j=0,k=0; System.out.println(i+";"+";"+j+""+k); A、3 B、4 C、5 D、6 24,在java中、關於構造方法。下列說法錯誤的是()(構造方法) A、構造方法的名稱必須與類名相同 B、構透方法可以帶參數 C、構透方法不可以重載 D,構造方法絕對不能有返問值 25,執行下面代碼結果()( for語句) for(int i=0 ;;){ system.out.println("這是"+i); break; } A,語法錯誤,缺少表達式2和表達式3 B、死循環 C,程序什么都不輸出 D、輸出:這是0 26. 下面代碼輸出結果是()。(流程控制) int i=0,s=0; do{ if (i%2 ==0){ i++; continue; } i++; s=s+i; }while(i<7) system.out.println(s); A.16 B.12 C.28 D.21 27.下面()不是String類提供的合法的方法。(String 類) A.equal(string) B.trim() C.append() D.indexof() 28. 在java中,以下()類的對象以鍵值對的方式存儲對象(集合) A.java.util.List B.java.util.ArrayList C.java.util.HashMap D.java.util.LinkedList 29. 給定如下所示的java代碼,運行時,會產生()類型的異常(異常) String s=null; s.concat("abc"); A.ArithmeticException B.NullPointException c.IOException D.ClassNotFoundException 30. 給定java代碼如下所示,在A處新增下列()方法,是對cal方的重載(選擇兩項)(方法重載) public class Test{ public void cal(int x,int y, int z){ } //A } A. public int cal(int x,int y,float z){return 0;} B. public int cal(int x,int y,int z){return 0;} C. public int cal(int x,int z){} D. public int cal(int z,int y,int x){} 31.給定如下java代碼片段,編譯運行這段代碼 結果是() java.util.HashMap map =new java.util.HashMap(); map.put("name",null); map.put("name","Jack"); System.out.println(map.get("name")); A null B Jack C nullJack D 運行時出現異常 32. 給定以下JAVA代碼,這段代碼編編譯運行后輸出的結果是()(異常), public class Test { public static int aMathod(int i) throws Exception{ try{ return i/10; }catch{Exception ex) throw new Exception {"exception in a aMothod") }finaily{ System.out.print("finally"); } } public static void main(String[]args){ try{ aMethod(0); }catch(Exception ex){ System.o}}t.print("exception in main"); } System.out.print{"finished"); } A、finallyexception in mainfinished B、exception in mainfinally C、finallyfinished D、tinallyexception in mainfinished 33、在Java中,下面對於構造函數的描述錯誤的是()(選擇兩項)(構造函數) A、類不一定要顯式定義構造函數 B、構造函數的返回類型是void C、如果構造函數不帶任何參數,那么構造函數的名稱和類名可以不同 D、一個類可以定義多個構造函數 34、在Java語言中,下列關於類的繼承的描述,正確的是()。(繼承) A、一個類可以繼承多個父類 B、一個類可以具有多個子類 C、子類可以使用父類的所有方法 D、子類一定比父類有更多的成員方法 35下列選項中關於Java中supe:關鍵字的說法止確的是() (super關鍵字) A.super關鍵字是在子類對象內部指代其父類對象的引用 B. super關鍵字不僅可以指代子類的直接父類,還可以指代父類的父類 C. 子類通過super關鍵字只能調用父類的方法,而不能調用父類的屬性 D. 子類通過super關鍵字只能調用父類的屬性,而不能調用父類的方法 36.在java接口中,下列選項中有效的方法聲明是()(選擇兩項)(接口) A、public void aMethod(); B、void aMethod(); C、protected void aMethod(): D、private void aMethod(): 37.在JAVA異常處理模型中,能單獨和finally語句一起使用的塊是()(異常處理)。 A.try B.catch C.throw D.throws 38.分析如下java代碼,編i爺運行后將輸出() public class Test{ public Test(){} static void print(ArrnyList a1){ al.add(2); a1=new ArrayList(); a1.add(3); a1.add(4); } pubic static; void main(String[] args){ Test test-=new Test(); ArrayList al=new ArraList(); al.add(1); print(al); System.out.println(al.get(1)); } } A.1 B.2 C.3 D.4 39. 在JAVA中,object類是所有類的父親,用戶自定義類默認擴展自Object類,下列選項中的()方法不屬於object類的方法.(object 類) A.equals(object obj) B.getClass() C.toString() D.trim() 40. 下列選項中關於java封裝的說法錯誤的是() A.封裝就是將屬性私有化,提供共有的方法訪問私有屬性 B.屬性的訪問方法包括Getter和Setter方法 C.Setter方法用於賦值,Getter方法用於取值 D.包含屬性的類都必須封裝屬性,否則無法通過編譯 41. java中,如果類c是類b的子類,類b是類a的子類,那么下面描述正確的是() (繼承) A, c不僅繼承b中的成員,也繼承了a中的成員 B、C只繼承了b中的成員 c、c只繼承a中的成員 d, C不能繼承A 和b中的成員 42、分析選項選項中關於java中this關鍵字說法正確的是()(this關鍵字) A, this關鍵字是在對象內部指向自身的引用 B, this關鍵字可以在類中的任意位置使用 C、this關鍵字和類關聯,而不是和特定的對象關聯 D. 同一個類的不同對象共用一個對象 43,在JAVA中,l,inkedlist和ArrayList類同屬集合框架類,下列()選項中的方法 是Linkedlaist類有而ArrayList沒有的。 A、add(Object o) B、add(int index, Object o) C、remove{Object o) D, removeLast() 44,在JAVA中,ArrayList類實現可變大小的數組,便於遍歷元素和隨機訪問元素,已知獲得了 ArrayList的對象 bookTypeList,則下列語句中能夠實現判斷列表中是否存在字符串 “小說”的是()。(集合) A、bookTypeList.add("小說”), B、bookTypeList.get("小說”); C、bookTypeList.contains(”小說"}. D, bookTypeList.remove(”小說”); 45. Java語言具有許多優點和特點,下列選項中,哪個選項放映了java程序並行機制的特點: ()(Java的特點) A. 安全性 B、多線程 C、跨平台 D、可移植 46. 抽象方法:() (抽象方法) A.可以有方法體 B。可以出現在非抽象類中 C. 是沒有方法體的方法 D。抽象類中的方法都是抽象方法 47.關於繼承的說法正確的是:()(繼承) A、子類將繼承父類所有的屬性和方法。 B、子類將繼承父類的非私有屬性和方法。 C、子類只繼承父類public方法和屬性 D、子類只繼承父類的方法,而不繼承屬性 48.關於構造函數的說法哪個正確?()(構造方法) A、一個類只能有一個構造函數 B、一個類可以有多個不同名的構造函數 C、構造函數與類同名 D、構造函數必須自己定義,不能使用父類的構造函數 49.關於接口哪個正確?()(接口) A、實現一個接口必須實現接口的所有方法 B.一個類只能實現一個接口 C.接口間不能有繼承關系 D.接口和抽象類是同一回事 50.關於super的說法正確的是() A、是指當前對象的內存地址 B,是指當前對象的父類對象的內存地址 C、是指當前對象的父類 D、可以用在main()方法中 51.請問,如何強制垃圾回收一個指定的對象?(垃圾回收) A用finalized()方法。 B棄所有對象的引用。 C用所有的內存 D法強制垃圾回收一個指定的對象。 52:請問,如何放掉一個指定占據的內存空間?(垃級回收)請選擇一個正確答案: A用free()方法。 B用system.gc方法。 C值給該項對象的引用為nu11} D序員無法明確強制垃圾回收器運行 53.請問,下列那些事初始化數組的正確語法格式()多選 A.int a[]={1,2,3}; B int x[3]={1,2,3}; C int[ ]x={0.0.0}; D char[] x={‘a’、’b'}; 54請問,以下哪些是字節型數據的的取彼范圍?(基本數據類型的取值范圍) 請選擇一個正確答案: A 0, +255 B -127,+l28 C -128,+127 D 0..65535 55.請問,以下哪些語句用於生命明一個二維數組?( 二維數組) A int a[][)=new ini[ 10,10]: B int a[][]=new int[l0][10]; C int a[ 10,10]=new int[ 10][ 10]; D int [][]a=new int [10][10]: 56.給出以下代碼,請問該程序的運行結果是什么?(位運算) class Example{ public static void main(String args[]){ } 請選擇一個正確答案: A印輸出-1,1 B印輸出1,1 C印輸出1 ,-1 D印輸出 -1,-1 57.給出以下代碼,請問該程序的運行結果是什么?(++操作) class Example{ public static void main(String args[]){ int var=10; int var2=20; System.out.pr'sntln(var+var2+++””+vax2); } } 請選擇一個正確答案: A30 20 B30 21 C31 20 D31 21 58.請問表達式(short)10/10.2*2的運算結果是什么數據類型,請選擇一個正確答案(類型轉換) a short b int c double d float 59.請問,以下哪些描述正確的?(位運算符) A >>為帶符號移位運算符。 >>>為無符號移位運算符。 B >>>為帶符一號移位運算符.>>為無符號移位運算符。 C <<為帶符號移位運算符.<<<為一無符號移位運算符。 d <<<為帶符號移位運算符.<<為無符號移位運算符。 60.給出以下代碼,請問該程序的運行結果是什么? (三目運算符) claSS Example{ pnblic static void main(String args[]}{ String s1 ="ab"; String s2 ="abcd"; String s3="cd"; String s4 =s1+s3; s1 = s4: System.out.println("s1"+((s1==s2)?"==":"!=")+"s2"); } } 請選擇一個正確答案: A s1==s2 B sl!=s2 C s1 D s1==“abcd” 61.給出以下代碼,請問該程序的運行結果是什么?(位運算) class Example{ public static vaid main (String args[]){ System.out.println(111 & 13); } } 請選則一個正確答案: A 3 B 5 C 13 D 9 62.給出以下代碼,請問該程序的運行結果是什么?(位運算) class Example{ public static vaid main (String args[]){ System.out.println(8|9 & 10^11); } 請選擇一個.正確答案: A 8 B 9 C 10 D 11 63.給出以下代碼,請問該程序的運行結果慫什么 class Example{ public static vaid main (String args[]){ char c=-l; System.out.println(c); } } 請選擇一個正確答案: A代碼編譯失敗。 B代碼編譯成功,打印輸出-1。 C變量c不代表任何ASCII碼字符。 D變量c依據代表一個Unicodc編碼字符。 64.給出以下代碼,請問該程序的運行結果是什么: class Check{ public static vaid main (String args[]){ int x,a=6,b=7; X=a++ +b++; System.out.print{“x=”+x); System.out.print(“,a=”+a); System.out.print(“,b=”+b); } } 請選擇一個正確答案: A打印輸出x=15, a=7, b=8 B打印輸出x=15,a=6,b=7 C打印輸出x=13 , a=7, b=8 D打印輸出x=13,a=6,b=7 65。給出一條語句,請問以下哪些有關該語句的描述是正確的個 Private static int i=3; 請選擇所有正確答案: A變量i在被初始化后,其值不能再改變 B變量i只能被靜態方法改變。 C變量i的值被所有其所在的類實例共享 D變量i只能被其所在類訪問 66.給定如下java代碼,編譯運行之后將會輸出()(三目運算符) public class Example{ public static void main(String args[]){ int a =5; System.out.printin(a%2== 1)?(a+1)/2:a/2); } }(選擇一項) A 1 B 2 C 2.5 D 3 67請問,以下那些修飾符用於聲明一個常量? 請選擇一個正確答案: A static B final C abstract D public 68.請問,以下哪些是抽象方法的幣確形式?(抽象方法) 請選擇一個正確答案: A abstract void Example() B abstract void Example(){} C static abstract void Example() D final abstract void Example() 69.請問,以下哪些描述是正確的? 請選擇一個_正確答案: A引用型數據不能進行類型轉換。 B引用型數據在賦值語句中可以進行類型轉換,但在向其方法傳入參數時不能進行類型轉換, C引用型數據在向其方法傳入參數時可以進行類型轉換,但在賦值語句中不能進行類型轉換。 D引用型數據在賦值語句中和在向其方法傳入參數時均可類型轉換, 70.給出以卜代碼,請問第幾行代碼無法編譯? (基本數據類型) 1.byte b=5; 2.char c='5'; 3short s= 55; 4.int i= 555; 5.float f = 555.5f 6.b=s; 7.i=c; 8.if(f>b} 9.f=i; 請選擇一個正確答案: A第1行 B第2行 C第5行 D第6行 71給出以下代碼,請問第兒行代碼無法編譯?(基本數據類型) 1.byte b=2; 2.byte b 1=3; 3._b=b*b1; 請選擇一個正確答案: A第1行 B第2行 C第3行 72.請問以下哪邊些語句是Java語言中用於中斷循環執行的?(循環) 請選擇一個正確的答案: A continue語句 B goto語句 C exit語句 D break語句 73.請問以下代碼錯在何處(for循環) public class Example{ public static void main(String args[]){ for(i=0;j=0,i<10;++i,j+=i){ k+=i*i+ j*j; } } 請選擇所有正確答案 A在語句塊中應超過一條以上的語句 B.在i=0和j=0之間應使用逗號 c.使用了2個循環變量 D 在j=0 和i<10 中間應該使用分號 74. 以下java語句中,String str =”123456789“; str=str.subString(1,3);執行后str中的值為: (選擇一項)(String類) A."23" B."123" C."12" D."234" 75.在java中,要判斷D盤下是否存在文件abc.txt,應該使用以下()判斷語句。(選擇一項) (文件操作) A.if(new File("d:abc.txt").exists()==1) B.if(File.exists("d:abc.txt")==1) C.if(new File("d/abc.txt").exists()) D.if(File.exists("d/abc.txt")) 76.MVC模式中說法不正確的趨()(mvc模式) A MAC是指的表現層·業務層一數據庫這種模式 B Model層實現系統中的業務邏輯 C view層用於與用戶的交互 B Controller層是Model與View之間溝通的橋梁 77.請問以下哪些有關接口的描述的是正確的? 請選擇所有正確答案: A在接口中定義的方法默認為private方法 B在接口中定義的方法默認為public,static,final方法 C一個接口可以繼承多個接口。 D關鍵字implements代喪繼承關系。 78.請問以下哪些描述是正確的? 請選擇所有正確答案: A native關鍵字表明修飾的方法是有其他非lava語言編寫的。 B 能夠出現在Java源文件中的import語句前的只有注釋語句。 c 接口中定義的一方法默認是public和abstract的,不能被private和protected修飾。 D構造器只能被public或protected修飾。 79請問以下哪些體現了多態?(多態的體現) 請選擇所有正確答案: A內部類 B匿名類 C方法過載 D方法重載 80.給出下代碼,請問該程序的運行結果是什么?(數組) public class Example{ public static void main(String args[]){ int[] refToArray ={10,11}; int var =1; refToArray[var-1] =var =2; System.out.printin(refToArray[0]+" " +refToArray[1]); } } 請選擇一個正確答案: A編譯失敗。 B運行期異常。 C打印輸出2 11 D打印輸出102 1。有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子長到第二個月后每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?(兩種方法,面向對象) 2。請用java實現一個簡單的冒泡排序算法 3.Java中值傳遞和引用傳遞有什么區別? 4.Overload和Override的區別 5.說說&和&&的區別 6.switch語句能否作用在byte上,能否作用在long上,能否作川在String上? 7.short s1=l; s1=s1+1;有什么錯?short s1=1; s1+=1;有什么錯? 8.用最有效率的方法算出2乘以8等於幾? 9.“==”和equals方法究競有什么區別 10. 靜態變量和實例變量的區別? 11.請說出作用域pubic ,private ,protected,以及不寫時的區別 12.接口是否可繼承接口?抽象類是否可實現(implements)接口? 抽象類是否可繼承具體類(concrete class)?抽象類中是否可以有靜態的main方法? 13.abstract class和interface有什么區別? 14.內部類可以引用它的包含類的成員嗎?有沒有什么限制? 15.String s="Hello";s=s+”world!”;這兩行代碼執行后,原始的String對象中的內容到底變了沒有? 16.Stringy snew String("xyz");創建了兒個String Object?二者之間有什么區別 17.String和StringBuffer的區別 18.如何把一段逗號分割的字符串轉換成一個數組? 19.final, finally, finalize的區別。 20.請寫出你最常見到的5個runtime exception 21.多線程有幾種實現方法? 22.同步有幾種實現方法? 23.當一個線程進入一個對象的一個synchronized方法后,其它線程是否可講入此對象的其它方法? 24.HashMap和Hashtable的區別 25.List和Map區別? 26.說出一些常用的類,包,接口,請各舉5個 27.Java中有兒種類型的流?jdk為每種類的流提供了一些抽象類以供繼承,請說出他們分別是哪些類? 28.heap和stack有什么區別。 29.GC是什么?為什么要有GC? 30.創建線程的方式有兒種?分別是什么?(多線程)
答案區:
現提供一個我筆試的時候的一個圖片,關於正確答案后續會更新上:
80道題,其中有兩道題還是錯的, 相當於我只做對了45道題,呵呵,比較菜。。。。