各大公司Java筆試題匯總_第1頁
各大公司Java筆試題匯總_第2頁
各大公司Java筆試題匯總_第3頁
各大公司Java筆試題匯總_第4頁
各大公司Java筆試題匯總_第5頁
已閱讀5頁,還剩109頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1. JSP和Servlet有哪些相同點(diǎn)和不同點(diǎn),他們之間的聯(lián)系是什么?JSP是Servlet技術(shù)的擴(kuò)展,本質(zhì)上是Servlet的簡易方式,更強(qiáng)調(diào)應(yīng)用的外表表達(dá)。JSP編譯后是類servlet。Servlet和JSP最主要的不同點(diǎn)在于,Servlet的應(yīng)用邏輯是在Java文件中,并且完全從表示層中的HTML里分離開來。而JSP的情況是Java和HTML可以組合成一個(gè)擴(kuò)展名為.jsp的文件。JSP側(cè)重于視圖,Servlet主要用于控制邏輯。2. swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?switch(expr1)中,expr1是一個(gè)整數(shù)表達(dá)式。因此傳

2、遞給 switch 和 case 語句的參數(shù)應(yīng)該是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。3. 如何利用ServletContext和ServletConfig對象獲得初始化參數(shù)String psw = config.getInitParameter(psw);ServletContext ss = config.getServletContext();String ppp = ss.getInitParameter(name);4. 如何用css約束一個(gè)層不可見? -表示不可見 -表示可見 5. 在表單中存在一組名稱為checkb

3、ox1的多選框,如何才能取得這些多選框內(nèi)的值?在頁面中用javaScript方式取值 function sss() var str = document.getElementsByName(checkbox1); var checkValue = new Array(); for(var i=0;istr.length;i+) if(stri.checked) alert(stri.value); Function sss() Var str=document.getElementsByName(“checkbox1”); Var checkValue=new Array()For(var i

4、=0;istr.length;i+)If(stri.checked)Alert(stri.value); 在Servlet中取值 String str = request.getParameterValues(checkbox1);6. 說出數(shù)據(jù)連接池的工作機(jī)制是什么?J2EE服務(wù)器啟動(dòng)時(shí)會(huì)建立一定數(shù)量的池連接,并一直維持不少于此數(shù)目的池連接??蛻舳顺绦蛐枰B接時(shí),池驅(qū)動(dòng)程序會(huì)返回一個(gè)未使用的池連接并將其標(biāo)記為忙。如果當(dāng)前沒有空閑連接,池驅(qū)動(dòng)程序就新建一定數(shù)量的連接,新建連接的數(shù)量由配置參數(shù)決定。當(dāng)使用的池連接調(diào)用完成后,池驅(qū)動(dòng)程序?qū)⒋诉B接表記為空閑,其他調(diào)用就可以使用這個(gè)連接。7. 多線程有

5、幾種實(shí)現(xiàn)方法,都是什么?同步有幾種實(shí)現(xiàn)方法,都是什么? 多線程有兩種實(shí)現(xiàn)方法,分別是繼承Thread類與實(shí)現(xiàn)Runnable接口 同步的實(shí)現(xiàn)方面有兩種,分別是synchronized,wait與notify8. 一個(gè)頁面在打開時(shí),需要處理一些事情(比如彈出一個(gè)廣告頁),需要定義窗口的什么事件? window.onload=function()或是9. HTML的Form和XFORM的區(qū)別10. 描述forward 和redirect的區(qū)別forward是服務(wù)器請求資源,服務(wù)器直接訪問目標(biāo)地址的URL,目標(biāo)地址可以接收request請求參數(shù),然后把結(jié)果發(fā)給瀏覽器,瀏覽器根本不知道服務(wù)器發(fā)送的內(nèi)容

6、是從哪兒來的,所以它的地址欄中還是原來的地址。redirect就是服務(wù)端根據(jù)邏輯,發(fā)送一個(gè)狀態(tài)碼,告訴瀏覽器重新去請求哪個(gè)地址,瀏覽器會(huì)重新進(jìn)行請求,此時(shí)不能用request傳值,瀏覽器的地址欄會(huì)變成新的地址11. Static變量是什么含義 static是靜態(tài)變量,就是變量值不隨函數(shù)執(zhí)行結(jié)束而消失,下次調(diào)用同一函數(shù)時(shí),上次所賦予的值仍存在。12. 垃圾回收器的基本原理是什么?垃圾回收器可以馬上回收內(nèi)存嗎?有什么辦法主動(dòng)通知虛擬機(jī)進(jìn)行垃圾回收對于GC來說,當(dāng)程序員創(chuàng)建對象時(shí),GC就開始監(jiān)控這個(gè)對象的地址、大小以及使用情況。通常,GC采用有向圖的方式記錄和管理堆(heap)中的所有對象。通過這種

7、方式確定哪些對象是可達(dá)的,哪些對象是不可達(dá)的。當(dāng)GC確定一些對象為不可達(dá)時(shí),GC就有責(zé)任回收這些內(nèi)存空間??梢浴3绦騿T可以手動(dòng)執(zhí)行System.gc(),通知GC運(yùn)行,但是Java語言規(guī)范并不保證GC一定會(huì)執(zhí)行。13. Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類型? 方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading是一個(gè)類中多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫 (Overrid

8、ing)。子類的對象使用這個(gè)方法時(shí),將調(diào)用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。如果在一個(gè)類中定義了多個(gè)同名的方法,它們或有不同的參數(shù)個(gè)數(shù)或有不同的參數(shù)類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型。14. 說出Servlet的生命周期,并說出Servlet和CGI的區(qū)別Servlet被服務(wù)器實(shí)例化后,容器運(yùn)行其init方法,請求到達(dá)時(shí)運(yùn)行其service方法,service方法自動(dòng)派遣運(yùn)行與請求對應(yīng)的doXXX方法(doGet,doPost)等,當(dāng)服務(wù)器決定將實(shí)例銷毀的時(shí)候調(diào)用其destroy方法。與cgi的區(qū)別在于serv

9、let處于服務(wù)器進(jìn)程中,它通過多線程方式運(yùn)行其service方法,一個(gè)實(shí)例可以服務(wù)于多個(gè)請求,并且其實(shí)例一般不會(huì)銷毀,而CGI對每個(gè)請求都產(chǎn)生新的進(jìn)程,服務(wù)完成后就銷毀,所以效率上低于servlet四:編程題1. 請編寫一JSP程序,它提供一個(gè)征求客戶意見的文本區(qū),在客戶提交意見后,它能將意見及其他客戶以前提交的意見一起顯示出來。2. 寫一個(gè)算法對1,8,5,2,4,9,7進(jìn)行順序排列。 public class OrderbyArray /冒泡排序 Bubble Sort 最簡單的排序方法是冒泡排序方法 public int orderArray(int array) for(int i=0

10、;iarray.length;i+) for(int j=i;jarrayj) int s = arrayi; arrayi = arrayj; arrayj = s; return array; public static void main(String args) int array = 1,8,5,2,4,9,7;OrderbyArray order = new OrderbyArray();array = order.orderArray(array); 3. 寫一段Jdbc連接Oracle的程序,并實(shí)現(xiàn)數(shù)據(jù)查詢。創(chuàng)建一個(gè)連接數(shù)據(jù)庫的工具類 import java.sql.*; pu

11、blic class DbUtil public static Connection getConnection() String driver = ; String url = ; String name = scot; String psw = 123; Connection conn = null; try Class.forName(driver);conn = DriverManager.getConnection(url,name,psw); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLExcept

12、ion e) e.printStackTrace();return conn; import java.sql.*;public class SearchInfo public void searchInfo(int id) Connection conn = null; PreparedStatement pstat = null; ResultSet res = null; String sql = select * from users where id=?; conn = DbUtil.getConnection(); try pstat = conn.prepareStatement

13、(sql);pstat.setInt(1, id);res = pstat.executeQuery();while(res.next()String name = res.getString(name); catch (SQLException e) e.printStackTrace(); 4. 請利用JSP編寫一簡易的購物車程序,它包括一購物界面及往購物車中添加商品與刪除商品功能,并能將用戶當(dāng)前已購的所有商品顯示出來。5. 寫一個(gè)Singleton(單例模式)出來。public class LazySingleton private static LazySingleton instan

14、ce = null;/ 默認(rèn)的私有的構(gòu)造方法,保證外界無法直接實(shí)例化private LazySingleton() / 靜態(tài)方法,返回此類的唯一實(shí)例public static LazySingleton getInstance() if (instance = null) instance = new LazySingleton();return instance;public void pp()System.out.println(lazy ok);6. 用循環(huán)控制語句打印輸出:1+3+5+.+99=?結(jié)果。 int sum = 0;for(int i=1;i100;i+=2)sum = s

15、um+i;System.out.println(1+3+5+.+99 = +sum);7. 請編寫一JSP程序,它能根據(jù)輸入的訂單號(hào)查尋出該訂單的詳細(xì)信息,包括訂單用戶名及價(jià)錢,其中訂單號(hào)以請求參數(shù)的形式傳給該JSP。訂單信息都保存在SQLSERVER數(shù)據(jù)庫中。并要求將查尋到的訂單信息以表格的形式顯示給用戶。IBM筆試題注:IBM筆試題一小時(shí)之內(nèi)完成,題目全部用英文描述,這里用中文表述一、名詞解釋此題大概有15個(gè)左右,還有一些記不清了1、Eclipse2、J2EE3、EJB4、Ajax5、Web service6、二、找出以下代碼問題public class testpublic void p

16、rint(String str) char s=str; public class apublic static void main(String args) puts()三、寫出以下輸出public class Parent public void method() System.out.println(parent); public static void smethod() Sysyem.out.println(parent); public class Child extends parent public void method() System.out.println(child)

17、; public static void smethod() Sysyem.out.println(child); public class test public static void print(String args) Child c=new Child(); Parent p=(Parent)c; p.method(); p.smethod(); 四、編程題(兩題選其一)1、IBM全球有35萬員工,名字由26個(gè)字母組成,長度不一。1)請?jiān)O(shè)計(jì)一個(gè)算法,能夠快速查找出要查詢的名字。2)寫出此算法的時(shí)間復(fù)雜度3)如果對此算法進(jìn)行測試,請寫出測試用例2、用熟悉的c/c+/java寫出一個(gè)完成

18、的函數(shù),此函數(shù)能夠?qū)⒁粋€(gè)值插入一個(gè)排好序的二叉樹中五、Unix命令題此題包含Unix操作系統(tǒng)的常用命令如建目錄、系統(tǒng)啟動(dòng)、磁盤使用情況察看等,大概15個(gè)以上六、英文短文(兩題選其一,不少于200字)1、描述一下你理想中的職業(yè)2、描述一下你心目中的中國文化以及它對于日常工作的影響JAVA面試題-CORE JAVA部分 1 在main(String args)方法內(nèi)是否可以調(diào)用一個(gè)非靜態(tài)方法?答案:不能2 同一個(gè)文件里是否可以有兩個(gè)public類?答案:不能3 方法名是否可以與構(gòu)造器的名字相同? 答案:可以。public class Testpublic Test(String iceboy)Sy

19、stem.out.println(iceboy);public void Test(String iceboy)System.out.println(iceboy);public static void main(String args)Test a = new Test(abc);/輸出“abc”a.Test(iceboy);/輸出“iceboy”4. 初始化了一個(gè)沒有run()方法的線程類,是否會(huì)出錯(cuò)?答案:不會(huì)。第一種方法:直接繼承Thread類。public class Testpublic static void main(String args)ThreadClass t = ne

20、w ThreadClass();t.start();System.out.println(end);/輸出“end”class ThreadClass extends Thread /Thread類已經(jīng)實(shí)現(xiàn)了空的run()方法。第二種方法:實(shí)現(xiàn)Runnable接口public class Testpublic static void main(String args)ThreadClass t = new ThreadClass();Thread thread = new Thread(t);thread.start();System.out.println(end);class Thread

21、Class implements Runnable public void run() /必須有此方法否則編譯報(bào)錯(cuò)。它是Runnable接口中的抽象方法。System.out.println(Threads);4 局部內(nèi)部類是否可以訪問非final變量?答案:不能訪問局部的,可以訪問成員變量(全局的)。class Outprivate String name = ;void print()final String work = out.local.work;/若不是final的則不能被Animal 使用.int age=10;class Animal/定義一個(gè)局部內(nèi)部類.只能在

22、print()方法中使用./局部類中不能使用外部的非final的局部變量.全局的可以.public void eat()System.out.println(work);/ok/age=20;error not finalSystem.out.println(name);/ok.Animal local = new Animal();local.eat();5 選擇語句case中,允許使用的值有哪些? 答案:int,short,char,byte(都在int范圍之內(nèi),且是整數(shù))6 Math,String是不可繼承的。(final類)Instanceof 后面跟的應(yīng)該是OBJECT。構(gòu)造器可以是

23、私有的。(private)=與=意義是完全不同的。一個(gè)是賦值,一個(gè)是等于。全局變量可以不進(jìn)行初始化,如果使用一個(gè)局部變量,則這個(gè)局部變量要被初始化。7 在try-catch-finally塊中的退出語句。public class Testpublic static void main(String args)int a=1;trya=a/0;catch(Exception e)System.out.println(catch);return;/當(dāng)return時(shí),finally中的語句會(huì)執(zhí)行。/System.exit(0);/若用上這句,finally中的語句不會(huì)執(zhí)行。直接返回,退出程序。fin

24、ally /當(dāng)沒有System.exit(0);時(shí),無論是否發(fā)生異常它都會(huì)執(zhí)行。System.out.println(finally);注:try-catch-finally塊的順序不能調(diào)換。8 下面都是正確的main方法簽名。public static void main(String args)public static final void main(String args)static public void main(String args)static public synchronized void main(String args)static public abstract

25、void main(String args)/錯(cuò)誤9 if(-0.0 = 0.0)是相等還是不等?答案:相等。10一個(gè)抽象類是否可以沒有抽象方法?答案:可以。11RandomAccessFile 類繼承Object,并且實(shí)現(xiàn)了DataInput和DataOutput接口。答案:正確12Collection與Collections的區(qū)別?答案:Collection是一個(gè)接口,但 Collections卻是一個(gè)輔助類,里面有很多靜態(tài)的工具方法。而且很有用的。如:reverse(Listlist);sort(Listlist, Comparatorc)等。Collections沒有實(shí)現(xiàn)任何接口。它直

26、接繼承了Object。13class Child extends Parentsclass Parents是否可以這樣聲明類,在一個(gè)文件中?答案:可以。無所謂的。14. 數(shù)組,無論是當(dāng)前的,還是類等級(jí)的,都會(huì)被初始化。String 是被初始化為 null,不是空字符。null,“,” “,都是不同的?!癱ontinue”只能在一個(gè)循環(huán)里(如for,do,while),它不能在case語句中出現(xiàn)。Primitive(int,char,long等)數(shù)組是不能互相賦值的,即使它們本身可以。一個(gè)Constructor可以拋出任何異常。初始化塊是按照聲明的順序執(zhí)行的。所有關(guān)于 NaN(Not a Num

27、ber) 和 non-NaN 的比較,都返回false.這條很重要。=會(huì)產(chǎn)生編譯錯(cuò)誤,如果兩邊類型不匹配的話。equals() 返回 false 如果對象類型不同,但不產(chǎn)生 編譯錯(cuò)誤。15Java成員變量默認(rèn)初始化的值。成員變量類型取值 byte-0 short-0 int-0 long-0L char-u0000 float-0.0F double-0.0D boolean-false所有引用類型null16. integer和long 操作 /和% 的話, 可能會(huì)拋出ArithmeticException,比如除0。但是 float與double不會(huì),即使是除以0。double a=0;a

28、=a/0;則a等于NaN。17普通內(nèi)部類不可以擁有靜態(tài)變量,但靜態(tài)內(nèi)部類可以。File類沒有 任何 處理文件內(nèi)容的方法。InputStream 和 OutputStream 是 抽象類, DataInput 和 DataOutput是 接口。DataInputStream實(shí)現(xiàn)了DataInput接口。18面向?qū)ο蟮奶卣饔心男┓矫??答案:最基本特征:封裝,繼承,多態(tài)。其他特征:抽象關(guān)聯(lián),聚合,組合,內(nèi)聚,耦合19String是最基本的數(shù)據(jù)類型嗎? String 和StringBuffer的區(qū)別?答案:String不是一最基本的數(shù)據(jù)類型。STRING的長度是不可變的,STRINGBUFFER的長

29、度是可變的。如果你對字符串中的內(nèi)容經(jīng)常進(jìn)行操作,特別是內(nèi)容要修改時(shí),那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法 20int 和 Integer 有什么區(qū)別 答案:int是基本類型。Integer是引用類型。Integer可以把String轉(zhuǎn)換成int。21.運(yùn)行時(shí)異常與一般異常有何異同? 答案:異常表示程序運(yùn)行過程中可能出現(xiàn)的非正常狀態(tài),運(yùn)行時(shí)異常表示虛擬機(jī)的通常操作中可能遇到的異常,是一種常見運(yùn)行錯(cuò)誤。java編譯器要求方法必須聲明拋出可能發(fā)生的非運(yùn)行時(shí)異常,但是并不要求必須聲明拋出未被捕獲的運(yùn)行時(shí)異常。22說出一些

30、常用的類,包,接口,請各舉5個(gè)?答案:常用類-System,ArrayList,FileInputStream,Thread,Socket.常用的包-java.io,java.util,java.sql,java.javax.naming,常用接口-Collection,Connection, Cloneable, Comparable, Serializable23.說出ArrayList,Vector, LinkedList的存儲(chǔ)性能和特性.答案:ArrayList和Vector都是使用數(shù)組方式存儲(chǔ)數(shù)據(jù),此數(shù)組元素?cái)?shù)大于實(shí)際存儲(chǔ)的數(shù)據(jù)以便增加和插入元素,它們都允許直接按序號(hào)索引元素,但是插

31、入元素要涉及數(shù)組元素移動(dòng)等內(nèi)存操作,所以索引數(shù)據(jù)快而插入數(shù)據(jù)慢,Vector由于使用了synchronized方法(線程安全),通常性能上較ArrayList差,而LinkedList使用雙向鏈表實(shí)現(xiàn)存儲(chǔ),按序號(hào)索引數(shù)據(jù)需要進(jìn)行前向或后向遍歷,但是插入數(shù)據(jù)時(shí)只需要記錄本項(xiàng)的前后項(xiàng)即可,所以插入速度較快。 24設(shè)計(jì)4個(gè)線程,其中兩個(gè)線程每次對j增加1,另外兩個(gè)線程對j每次減少1。寫出程序。 注:因?yàn)檫@4個(gè)線程共享J,所以線程類要寫到內(nèi)部類中。加線程:每次對j加一。減線程:每次對j減一。public class TestThreadsprivate int j=1;/加線程private clas

32、s Inc implements Runnablepublic void run()for(int i = 0;i 10;i+)inc();/減線程private class Dec implements Runnablepublic void run()for(int i = 0;i 10;i+)dec();/加1private synchronized void inc()j+;System.out.println(Thread.currentThread().getName()+-inc:+j); /減1private synchronized void dec()j-;System.o

33、ut.println(Thread.currentThread().getName()+-dec:+j); /測試程序public static void main(String args)TestThreads test = new TestThreads();/創(chuàng)建兩個(gè)線程類Thread thread = null;Inc inc = test.new Inc();Dec dec = test.new Dec();/啟動(dòng)4個(gè)線程for(int i = 0;i 2;i+)thread = new Thread(inc);thread.start();thread = new Thread(d

34、ec);thread.start();25數(shù)組轉(zhuǎn)換問題。Object object = new Person2;Person person = new Person 3;person = (Person )object;/可以轉(zhuǎn)換int i = new int2;long l = new int3;i = (long)l;/不可以轉(zhuǎn)換26用socket通訊寫出客戶端和服務(wù)器端的通訊,要求客戶發(fā)送數(shù)據(jù)后能夠回顯相同的數(shù)據(jù)。 Server.java:源代碼import .*;import java.io.*;class Serverpublic Server()BufferedReader br

35、= null;PrintWriter pw = null;tryServerSocket server = new ServerSocket(8888);/建立服務(wù)器端Socket socket = server.accept();/監(jiān)聽客戶端/得到該連接的輸入流br = new BufferedReader(new InputStreamReader(socket.getInputStream();/得到該連接的輸出流pw = new PrintWriter(socket.getOutputStream(),true);/先讀后寫String data = br.readLine();Sys

36、tem.out.println(data);/輸出到控制臺(tái)pw.println(data);/轉(zhuǎn)發(fā)給客戶端catch(Exception e)e.printStackTrace();finallytry/關(guān)閉讀寫流br.close();pw.close();catch(Exception e)public static void main(String args) Server server = new Server();Client.java:源代碼import .*;import java.io.*;class Clientpublic Client()BufferedReader br

37、= null;PrintWriter pw = null;try Socket socket = new Socket(localhost,8888);/與服務(wù)器建立連接,服務(wù)器要先啟 /得到Socket的輸入與輸出流 br = new BufferedReader(new InputStreamReader(socket.getInputStream(); pw = new PrintWriter(socket.getOutputStream(),true); /先寫后讀 pw.println(Client:你好!); String data = null; while(true) data

38、 = br.readLine(); if(data!=null) break; System.out.println(data);catch(Exception e)e.printStackTrace();finallytrybr.close();pw.close();catch(Exception e)public static void main(String args) Client c = new Client();27談?wù)刦inal, finally, finalize的區(qū)別。答案:final 用于聲明屬性,方法和類,分別表示屬性不可變,注意:如果是基本類型說明變量本身不能改變,如果

39、是引用類型,說明它不能指向其他的對象了。但對象還是可以改變的。方法不可覆蓋,類不可繼承。finally是異常處理語句結(jié)構(gòu)的一部分,表示無論是否出現(xiàn)異??偸菆?zhí)行。finalize是Object類的一個(gè)方法,在垃圾收集器執(zhí)行的時(shí)候會(huì)調(diào)用被回收對象的此方法,可以覆蓋此方法提供垃圾收集時(shí)的其他資源回收,例如關(guān)閉文件等。28Anonymous Inner Class (匿名內(nèi)部類) 是否可以extends(繼承)其它類,是否可以implements(實(shí)現(xiàn))interface(接口)? 答案:可以繼承其他類或完成其他接口,在swing編程中常用此方式。29.Static Nested Class 和 In

40、ner Class的不同,說得越多越好(面試題有的很籠統(tǒng))。 答案:Static Nested Class是被聲明為靜態(tài)(static)的內(nèi)部類,它可以不依賴于外部類實(shí)例 被實(shí)例化。而通常的內(nèi)部類需要在外部類實(shí)例化后才能實(shí)例化。30.&和&的區(qū)別。 答案:&是位運(yùn)算符,表示按位與運(yùn)算,&是邏輯運(yùn)算符,表示邏輯與(and).另外,也可以用于邏輯運(yùn)算,與的區(qū)別在于是非短路運(yùn)算符,是短路運(yùn)算符31.HashMap和Hashtable的區(qū)別。 答案:HashMap是Hashtable的輕量級(jí)實(shí)現(xiàn)(非線程安全的實(shí)現(xiàn)),他們都實(shí)現(xiàn)了Map接口, 主要區(qū)別在于HashMap允許空(null)鍵值(key)與

41、空值(value),由于非線程安全,效率上可能高于Hashtable,Hashtable不允許有空(null)鍵值(key)與空值(value)。32什么時(shí)候用assert? 答案:1.4新增關(guān)鍵字(語法),用于測試boolean表達(dá)式狀態(tài),可用于調(diào)試程序。使用方法 assert ,表示如果表達(dá)式為真(true),則下面的語句執(zhí)行,否則拋出AssertionError。33GC是什么? 為什么要有GC? 答案:GC是垃圾收集的意思(Gabage Collection),內(nèi)存處理是編程人員容易出現(xiàn)問題的地方,忘記或者錯(cuò)誤的內(nèi)存回收會(huì)導(dǎo)致程序或系統(tǒng)的不穩(wěn)定甚至崩潰,Java提供的GC功能可以自動(dòng)監(jiān)

42、測對象是否超過作用域從而達(dá)到自動(dòng)回收內(nèi)存的目的,Java語言沒有提供釋放已分配內(nèi)存的顯式操作方法。 34String s = new String(xyz);創(chuàng)建了幾個(gè)String Object? 答案:兩個(gè),一個(gè)是對象,一個(gè)是對象的引用。35Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 答案:Math.round(11.5)=12Math.round(-11.5)=-11,總是返回接近0的數(shù)。36short s1 = 1; s1 = s1 + 1;有什么錯(cuò)? short s1 = 1; s1 += 1;有什么錯(cuò)? 答案:short s1 = 1;

43、s1 = s1 + 1; 有錯(cuò)(s1+1運(yùn)算結(jié)果是int型,需要強(qiáng)制轉(zhuǎn)換類型)short s1 = 1; s1 += 1;(沒有錯(cuò),s1=2)37.sleep() 和 wait() 有什么區(qū)別? 答案:sleep是線程類(Thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時(shí)間(休息),把執(zhí)行機(jī)會(huì)給其他線程,但是監(jiān)控狀態(tài)依然保持,到時(shí)后會(huì)自動(dòng)恢復(fù),時(shí)間到了會(huì)繼續(xù)運(yùn)行。調(diào)用sleep不會(huì)釋放對象鎖。wait是Object類的方法,對此對象調(diào)用wait方法導(dǎo)致本線程放棄對象鎖,進(jìn)入等待此對象的等待鎖定池,只有針對此對象發(fā)出notify方法(或notifyAll)后本線程才進(jìn)入對象鎖定池準(zhǔn)備獲得對象鎖進(jìn)入運(yùn)

44、行狀態(tài)。38Java有沒有g(shù)oto語句? 答案:沒有39數(shù)組有沒有l(wèi)ength()這個(gè)方法? String有沒有l(wèi)ength()這個(gè)方法?答案:數(shù)組沒有l(wèi)ength()這個(gè)方法,有l(wèi)ength的屬性。String有l(wèi)ength()這個(gè)方法。40數(shù)組是不是基本類型?答案:不是。41Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類型?答案:方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重載Overload是一個(gè)類中多態(tài)性的一種表現(xiàn),方法名必需相同,參數(shù)列表必需不同.(長度不同或類型不同),與返回值類型沒有關(guān)系. 構(gòu)造

45、器也可以重載.方法名和參數(shù)列表都相同,只有返回類型不相同則是方法重復(fù)定義.編譯出錯(cuò). Overloaded的方法是可以改變返回值的類型。重寫Override是父類與子類之間多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫 (Overriding)。子類的對象使用這個(gè)方法時(shí),將調(diào)用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。42Set里的元素能重復(fù)嗎?那么用什么方法區(qū)分是否重復(fù)? 答案:Set里的元素是不能重復(fù)的,如果重復(fù)就重復(fù)的就不加到里面。用iterator()方法來區(qū)分 重復(fù)與否。應(yīng)該覆蓋equals()判斷兩個(gè)Set是否相等。43.”=”與

46、equal有何區(qū)別?答案:“=”比較的是內(nèi)存地址,equal比較的是內(nèi)容本身。44給我一個(gè)你最常見到的runtime exception。答案:IndexOutOfBoundsException 數(shù)組越界NullPointerException 空指針異常SystemException 系統(tǒng)異常45error和exception有什么區(qū)別?答案:Error表示系統(tǒng)級(jí)的錯(cuò)誤和程序不必處理的異常,我們無法處理它。 Exception表示是可以捕捉或者需要程序進(jìn)行處理的異常。 46List, Set, Map是否繼承自Collection接口?答案:List,Set是。Map不是47abstract

47、 class和interface有什么區(qū)別?答案:一個(gè)只能繼承一個(gè)抽象類,但卻可以實(shí)現(xiàn)多個(gè)接口。抽象類中可以有也可以沒有抽象方法。并且可以定義和常規(guī)類一樣的變量和方法。而接口中所有的方法都是抽象的,所有的變量都是靜態(tài)不可修改的。48abstract的method是否可同時(shí)是static,是否可同時(shí)是native,是否可同時(shí)是synchronized?答案:都不能。49接口是否可繼承接口? 抽象類是否可實(shí)現(xiàn)(implements)接口? 抽象類是否可繼承實(shí)體類答(concrete class)?答案:接口可以繼承接口。接口間繼承(extends),不能實(shí)現(xiàn)(implements)。抽象類可以實(shí)現(xiàn)(implements)接口,但接口不能實(shí)現(xiàn)抽象類。抽象類間也用繼承(extends)。抽象類是否可繼承實(shí)體類,但前提是實(shí)體類必須有無參的構(gòu)造函數(shù)。50啟動(dòng)一個(gè)線程是用run()還是start()?有什么區(qū)別?答案:啟動(dòng)一個(gè)線程是調(diào)用start()方法,這并不意味著線程就會(huì)立即運(yùn)行,只是進(jìn)入了可運(yùn)行狀態(tài)。直接調(diào)用run()方法不會(huì)產(chǎn)生線程,而是把它當(dāng)作普通的方法調(diào)用,馬上執(zhí)行。51Constructor是否可被override?答案:

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論