隨筆-208  評論-469  文章-30  trackbacks-0

          北京一家JAVA開發公司面試題(留給后人)
          cnliutian (手起刀落,小日本雞雞被砍掉)???? 2004-10-26 12:20:43 在 Java / Web 開發 提問
          1、jsp有哪些內置對象?作用分別是什么?
          2、描述一下servlet的生命周期和基本架構。
          3、多線程有幾種實現方法,都是什么?
          ????? 同步有幾種實現方法,都是什么?
          4、作用域public?? private?? protected以及不寫時的區別?
          5、用JAVA實現數據庫查詢(寫一段完整的程序)。
          6、用正則表達式判斷123456_78不是一個數字。
          7、排序都有哪幾種方法?請列舉。用JAVA實現一個快速排序。
          ---------------------------------------------------------------
          以上是北京一家JAVA開發公司出的面試題,在這里貼出來是想留給剛出道且正在找工作的JAVA兄弟。
          也希望這里的高高手給出正確答案,以給后人一些借鑒,造福于后人!

          out---Jsp.jspWriter的對象,在html上顯示內容
          request---HttpServlet的對象,包含請求信息
          response---HttpServlet的對象,對請求所作出的響應
          session---HttpSession的對象,每個客戶與當前請求建立的唯一的會話
          exception--throwable的子類,請求發生錯誤時拋出的異常
          page--相當于this

          servelt的生命自web服務器啟動時開始至服務器關閉時結束,jvm第一次加載后駐留在內存中,所有請求共享同一個servlet,包括init(),service(),start(),stop(),destrop(),doGet(),doPost()等方法,第一次加載時首先call?? init()方法,然后service()方法,不說了不說了,太羅嗦了,

          1。當一個線程進入moniter(也就是說站用一個object),另一個線程只有等待或返回,而我們把返回就稱為一種模式,這種模式的英文是Balking。??

          2。這兩個線程可以是有序的執行,而不是讓OS來調度,這時我們要用一個object來調度,這種模式稱為Scheduler。(這個詞及其含義其實OS中就有)。??

          3。如果這兩個線程同時讀一個資源,我們可以讓他們執行,但如果同時寫的話,你閉著眼睛都會知道可能出現問題,這時我們就要用另一種模式(Read/Write?? Lock)。??

          4。如果一個線程是為另一個線程服務的話,比如IE中負責數據傳輸的線程和界面顯示的線程,當一個圖片沒有傳完時,另一個線程就無法顯示,至少是部分沒有傳完。那么這時我們要用一個模式稱為生產者和消費者,英文是Producer-Consumer。??

          5。兩個線程的消亡也可以不是完全又OS來控制的,這時我們需要給出一個條件,使得每個線程在符合條件是才消亡,也就是有序的消亡,我們稱為Two-Phase?? Termination。

          1.?????? JSP有哪些內置對象?作用分別是什么?
          (1)?? HttpServletRequest類的Request對象
          作用:代表請求對象,主要用于接受客戶端通過HTTP協議連接傳輸到服務器端的數據。
          (2)?? HttpServletResponse類的Respone對象
          作用:代表響應對象,主要用于向客戶端發送數據
          (3)?? JspWriter類的out對象
          作用:主要用于向客戶端輸出數據;??
          ??????????????? Out的基類是JspWriter
          (4)?? HttpSession類的session對象
          作用:主要用于來分別保存每個用戶信息,與請求關聯的會話;
          ????????????????? 會話狀態維持是Web應用開發者必須面對的問題。
          (5)?? ServletContex類的application對象
          作用:主要用于保存用戶信息,代碼片段的運行環境;
          ??????????????? 它是一個共享的內置對象,即一個容器中的多個用戶共享一個application對象,故其保存的信息被所有用戶所共享.
          (6)?? PageContext類的PageContext對象
          作用:管理網頁屬性,為JSP頁面包裝頁面的上下文,管理對屬于JSP中特殊可見部分中已命名對象的訪問,它的創建和初始化都是由容器來完成的。
          (7)?? ServletConfig類的Config對象
          作用:代碼片段配置對象,表示Servlet的配置。
          (8)?? Object類的Page(相當于this)對象
          作用:處理JSP網頁,是Object類的一個實例,指的是JSP實現類的實例,即它也是JSP本身,只有在JSP頁面范圍之內才是合法的。
          (9)Exception
          作用:處理JSP文件執行時發生的錯誤和異常

          第8份JAVA面試題(出自北京一家JAVA公司,留給后人)
          cnliutian (手起刀落,小日本雞雞被砍掉)???? 2004-11-12 16:06:30 在 Java / Web 開發 提問
          1、要創建一個物理表,包括字段(id?? 整型?? 長度30?? 主鍵,title?? 字符型?? 長度200,content?? 大字段),請分別寫出在Oracle和DB2環境下的建表SQL語句。

          2、在Oracle數據庫中有一張叫做content的表,該表結構如下

          字段名?????? 類型???????????????????? 長度???? 主鍵
          ------???????? ------???? ----?????? ------
          ? id BigDecimal?????????? 是
          Title???????? Varchar2???????????????????? 500
          content???????? clob

          假設該表中有50條數據,要求查出第1000至第1100條之間的數據,請給出查詢SQL語句。

          3、請描述HashMap和Hashtable的區別及各自用途。

          4、如何保證在JAVA應用程序中,一個類class只有一個實例存在,并給出示例代碼。

          5、try{}里有一個return語句,那么緊跟在這個try后的finally{}里的code會不會被執行,什么時候被執行,在return前還是后?

          6、一個try{}后最多可以有多少個catch()語句

          7、給出一個含有匿名內部類的JAVA類文件示例代碼。

          8、分析下面代碼:

          1?? interface?? Inter{}
          2?? class?? A{}
          3?? class?? B?? extends?? A?? implements?? Inter{}
          4?? class?? C?? extends?? B{
          5 public?? static?? void?? main(String[]?? args){
          6 A?? a?? =?? new?? A();
          7 B?? b?? =?? new?? B();
          8 C?? c?? =?? new?? C();
          9 if(a?? instanceof?? B)
          10 System.out.println("Hello");
          11 if(b?? instanceof?? A)
          12 System.out.println("Hello");
          13 if(c?? instanceof?? C)
          14 System.out.println("Hello");
          15 if(c?? instanceof?? Inter)
          16 System.out.println("Hello");
          }
          ??? }
          當運行class?? C時,程序中第10.12.14.16地中哪一行代碼將被執行。


          ④JAVA高級程序員面試題(留給后人)
          cnliutian (手起刀落,小日本雞雞被砍掉)???? 2004-10-30 14:39:34 在 Java / Web 開發 提問
          1、簡單描述一下awt與swing區別。
          2、簡述java編程中事件處理模式。
          3、你編寫過applet嗎?applet的安全權限如何?試列舉java?? application或者applet中與servlet/jsp通信可以采用的方式。

          2.采用動態事件驅動(直接事件驅動)
          1.applet的安全機制在java中有個稱沙箱的安全機制這樣也就限制了它:
          ??????? 如:不允許它調?? 其他程序。
          ??????????????? 文件讀寫(本地磁盤)。
          ????????? 等等。
          JAVA程序員面試題
          cnliutian (手起刀落,小日本雞雞被砍掉)???? 2004-11-11 14:11:42 在 Java / 非技術區 提問
          1、數據庫
          表a和表b具有完全相同的結構,主鍵為indexid。寫出一個sql語句把表b中不存在而表a中存在的數據插入到表b中。
          2、javascript部分
          頁面中有一個名稱都為unitprice的type=text對象。要求輸入的數據不能為空,寫一個函數實現該功能,如果為空時給出提示。
          3、JSP部分
          ①session中存儲一個String變量,變量名稱為studentname,寫出在jsp中如何得到這個session變量的值的語句。
          ②在jsp中引用使用<jsp:useBean?? id="?? "?? ...scope="?? "/>來引用javabean.
          Ⅰscope的值有哪些,這些值的區別是什么?
          Ⅱ不同的jsp頁面中引用javabean時,id能否相同,如果能相同,對scope的值有什么要求?
          4、JAVA部分
          ①輸入一個維數,輸出以下形式的矩陣和數列,以維數n=4為例:
          0000
          0111
          0122
          0123
          ②寫出下面這段程序的運行結果
          int?? a=2,b=3,c=1
          a+=--b+c;
          c-=b+a++;
          System.out.println("a="+a+",b="+b+",c="+c);
          5、有一個Vector對象,其中每一個元素都是一個String對象,請用for循環或while循環輸出Vector中的元素,要求格式為:"第i個元素為:aaa"
          6、有一個HashMap其中key為String對象,value為Integer對象,寫一個方法打印出此Map中的所有鍵值?? 對形如?? key--value
          7、有一個String?? str="001,A001;002,A002;003,A003"的串,寫一個方法,把此串存入列?? 一個HashMap或Hashtable中,說明:如001為key,A001則為value。
          8、面向對象概念:
          ①面向對象基本特征
          ②什么叫多態和重載,它們有什么區別?
          ③用你自己的話描述你理解的j2ee的本質特征是什么?

          第一題:? 寫一個方法,實現刪除鏈表中某個節點的操作(其他條件自己假設,補充)
          public void delete()
          {
          ?if(front>=rear)
          ?{
          ?s[front] =0;
          ?front--;
          ?System.out.println("\ndelete successful");
          ?}
          ?else
          ?{
          ? System.out.println("the link is empty ,can't delete");
          ?}
          }
          第二題:? 寫一個方法,實現堆棧的入棧操作 (其他條件自己假設,補充)

          public class stack{
          ?private int[] s;
          ?int top,bottom;
          ?public stack(int size){
          ? s = new int[size];
          ? top = size-1;
          ? bottom = size-1;
          ? System.out.println("Size of the stack is:"+size);
          ?}
          ?public boolean isEmpty()
          ?{
          ? if(top==s.length-1)
          ? return true;
          ? else
          ? return false;
          ?}
          ?public void push(int n)
          ?{
          ? if(top<0)
          ? {
          ? System.out.println("The stack is full now,you can't push your data!");
          ? return;
          ? }
          ? else
          ? {?
          ? s[top] = n;
          ? top--;
          ? return ;
          ? }
          ?}
          ?public void pop()
          ?{
          ? if(top>=s.length-1)
          ? {
          ?? System.out.println("The stack is empty,Can't pop now!");
          ?? return;
          ? }
          ? else
          ? {
          ?? top++;
          ? }
          ?}
          ?public void print()
          ?{
          ? System.out.println("State of the stack:");
          ? for(int i=s.length-1;i>top;i--)
          ? {
          ?? System.out.print(s[i]+"? ");
          ? }
          ?}
          ?public static void main(String[] a)
          ?{
          ? stack st = new stack(5);
          ? System.out.println("List of the action to the stack:");
          ? System.out.println("push(3):");
          ? st.push(3);
          ? st.print();
          ? System.out.println("? ");
          ? System.out.println("push(6)");
          ? st.push(6);
          ? st.print();
          ? System.out.println("? ");
          ? System.out.println("push(10)");
          ? st.push(10);
          ? st.print();
          ? System.out.println("? ");
          ? System.out.println("pop()");
          ? st.pop();
          ? st.print();
          ? System.out.println("? ");
          ?
          ?}
          }

          ?

          第三題: 使用任意排序算法,寫一個排序示例程序

          import java.io.*;
          class SelectionSort{
          ?
          ?public static void main(String[] args){
          ? int[] a={4,54,8,7,6,98,42,};
          ? sort(a);
          ? for(int i=0;i<a.length;i++){
          ?? System.out.print(a[i]+"?? ");
          ?? }
          ?? System.out.println("");
          }

          ?? static void sort(int[] data){
          ? int next, indexOfNext=0,n;
          ??? for (next=0;next<data.length-1;next++)
          ??? {
          ???
          ??????? indexOfNext=min(data,next,(data.length)-1);
          ???? swap(data,indexOfNext,next);
          ? }
          ? }
          ?
          ? static int min(int[] data,int start,int end){
          ?? int indexOfMin=start;
          ?? for (int i=start+1;i<=end;i++)
          ?? if(data[i]<data[indexOfMin])
          ?? indexOfMin=i;
          ??
          ?? return indexOfMin;
          ? }
          ? static void swap(int[] data,int first,int second){
          ?? int temp;
          ?? temp=data[first];
          ?? data[first]=data[second];
          ?? data[second]=temp;
          ?? }
          ?
          }

          第四題:
          編寫一個servlet,把servlet源碼和此servlet在服務器上的配置文件web.xml作為附件發送到指定的郵箱
          ????? servlet的功能要求:記錄訪問該servlet的客戶端的ip和訪問時間,把記錄寫入client_ip.log文件。 client_ip.log里的格式大致如下:

          ?9:36 2005-4-8 192.168.0.1
          ?9:36 2005-4-8 127.0.0.1

          <BR>獲取客戶的IP地址


          第五題
          ?數據庫中有兩個表tableA和tableB,他們都有一個int型的字段id,請寫出一個sql語句,實現查詢id在tableA中有,而tableB中沒有的記錄
          ?例如tableA中有如下記錄
          ?----------------------------
          ?tableA.id tableA.name
          ?3? Mary
          ?4? Jack
          ?5? Lily
          ?----------------------------
          ?tableB.id
          ?3
          ?5
          ?查詢的結果應該是
          ?----------------------------
          ?tableA.id tableA.name
          ?4? Jack


          select *
          from tableA
          where not exists
          (select *
          from tableB
          where tableA.id=tableB.id)
          第六題?? 簡述jsp和servlet的聯系

          Java Servlet是JSP技術的基礎,而且大型的Web應用程序的開發需要Java Servlet和JSP配合才能完成。現在許多Web服務器都支持Servlet,即使不直接支持Servlet的Web服務器,也可以通過附件的應用服務器和模塊來支持Servlet,這得益于Java的跨平臺特性。另外,由于Servlet內部以線程方式提供提供服務,不必對于每個請求都啟動一個進程,并且利用多線程機制可以同時為多個請求服務,因此Servlet的效率非常高。

          第七題?? 什么是sql注入漏洞,采用什么方法來堵住sql注入漏洞


          隨著B/S模式應用開發的發展,使用這種模式編寫應用程序的程序員也越來越多。但是由于這個行業的入門門檻不高,程序員的水平及經驗也參差不齊,相當大一部分程序員在編寫代碼的時候,沒有對用戶輸入數據的合法性進行判斷,使應用程序存在安全隱患。用戶可以提交一段數據庫查詢代碼,根據程序返回的結果,獲得某些他想得知的數據,這就是所謂的SQL Injection,即SQL注入

          第八題:簡述你對xml的認識,舉例說明xml能干什么,應該怎么做

          XML是Extensible Markup Language的縮寫,意思是可擴展置標語言沒有于置標電子文檔,使起數據具有結構化的置標語言。在我目前淺顯的認識里:,
          XML 是用來傳遞數據的 ,
          XML 讓這些數據有了結構 -- 一個樹型結構? ,
          xml 有全套的操作這種結構的方法???
          xml 規范(或者說的實際點,xml parser)幫你確定你創建的字符串是合法的????
          xml 規范(或者說的實際點,xml parser)中有辦法驗證這個合法性??
          對于XML能用來做什么,我覺得XML可以用來下面幾個方面
          1:有利于開發靈活的web應用軟件
          使用XML來描述數據,可以使數據具有同意的組織結構,其他應用軟件,對象,中間層和服務器都可以對使用XML描述的數據做進一步的處理。并可以提交到瀏覽器中讓讀者閱讀
          2:可以輕松的實現數據在web上發布
          因為XML本身是純文本格式的,它可以不做任何修改就和HTML文檔一樣在網絡中傳輸。
          3:有利于信息的集成
          因為使用XML,可以把不同來源的結構化數據很容易地組織到一起。應用軟件可以在中間層的服務器上對來自于后段數據庫和其他的數據進行集成。最后,數據以XML格式發送到客戶端或者是在其他服務器做進一步處理。
          4:可以使用豐富的樣式來顯示數據
          XML采用結構化的方式來組織數據,描述的是數據本身,不涉及到數據的表現形式。通常來說,使用CSS和 XSL以及XSLT為數據的顯示提供分布的機制,也就是說數據的顯示方式可以根據客戶的要求制定。
          5:可大大增強服務器的可伸縮性
          XML將數據本身和數據的顯示完全分離,從而可以在結構化的數據中嵌套數據的顯示方式描述。這樣,能盡可能地減少客戶端與服務器之間的數據交換,減少服務器的工作量才能大大提高服務器的性能。
          6:采用統一的XML文檔格式來描述多種應用的數據
          7:支持本地數據處理
          因為XML文檔中的數據格式是統一的,當客戶受到數據后,便可以使用客戶自己的應用軟件來解析數據,并對數據進行進一步的編輯和處理。
          8:可以使搜索變得更加簡單和富有成效
          采用統一的XML標識來組織來自不同數據庫的數據,就可以在不了解數據庫數據組織形式的情況下進行數據的檢索。
          9:可以實現數據的獨立更新
          10:開放式的標準
          雖然XML的初衷是為了使具有不同結構的數據文件采用統一的XML格式 在Internet上傳輸,

          第九題
          介紹你做的一個項目,包括實現了什么功能,通過什么方法來實現(算法,邏輯結構...),怎么來保證它的安全和健壯性等.
          (如果沒有項目經驗,可假設你要做一個OA系統,描述一下你怎么來實現它)


          選做
          第十題:

          如何察看linux當前系統正在運行什么服務?

          第十一題:

          linux系統的用戶帳號保存在那一個或哪幾個文件里?

          第十二題

          簡述MVC是什么

          MVC是 Model-View-Controller 的簡稱,也就是 模型-視圖-控制器
          MVC用來處理驗證、流程控制和更新應用程序的狀態等問題。
          Model(模型)
          模型包含應用程序的核心功能。模型封裝了應用程序的狀態。有時它包含的唯一功能就是狀態。它對視圖或控制器一無所知。
          View(視圖)
          視圖提供模型的表示。它是應用程序的外觀。視圖可以訪問模型的讀方法,但不能訪問寫方法。此外,它對控制器一無所知。當更改模型時,視圖應得到通知。
          Controller(控制器)
          控制器對用戶的輸入作出反應。它創建并設置模型。

          ?

          ?

          java面試題集

          基礎知識:
          1.C++或Java中的異常處理機制的簡單原理和應用。

          當JAVA程序違反了JAVA的語義規則時,JAVA虛擬機就會將發生的錯誤表示為一個異常。違反語義規則包括2種情況。一種是JAVA類庫內置的語義檢查。例如數組下標越界,會引發IndexOutOfBoundsException;訪問null的對象時會引發NullPointerException。另一種情況就是JAVA允許程序員擴展這種語義檢查,程序員可以創建自己的異常,并自由選擇在何時用throw關鍵字引發異常。所有的異常都是java.lang.Thowable的子類。

          2. Java的接口和C++的虛類的相同和不同處。

          由于Java不支持多繼承,而有可能某個類或對象要使用分別在幾個類或對象里面的方法或屬性,現有的單繼承機制就不能滿足要求。與繼承相比,接口有更高的靈活性,因為接口中沒有任何實現代碼。當一個類實現了接口以后,該類要實現接口里面所有的方法和屬性,并且接口里面的屬性在默認狀態下面都是public static,所有方法默認情況下是public.一個類可以實現多個接口。

          3. 垃圾回收的優點和原理。并考慮2種回收機制。

          Java語言中一個顯著的特點就是引入了垃圾回收機制,使c++程序員最頭疼的內存管理的問題迎刃而解,它使得Java程序員在編寫程序的時候不再需要考慮內存管理。由于有個垃圾回收機制,Java中的對象不再有“作用域”的概念,只有對象的引用才有“作用域”。垃圾回收可以有效的防止內存泄露,有效的使用可以使用的內存。垃圾回收器通常是作為一個單獨的低級別的線程運行,不可預知的情況下對內存堆中已經死亡的或者長時間沒有使用的對象進行清楚和回收,程序員不能實時的調用垃圾回收器對某個對象或所有對象進行垃圾回收。回收機制有分代復制垃圾回收和標記垃圾回收,增量垃圾回收。

          4. 請說出你所知道的線程同步的方法。

          wait():使一個線程處于等待狀態,并且釋放所持有的對象的lock。

          sleep():使一個正在運行的線程處于睡眠狀態,是一個靜態方法,調用此方法要捕捉InterruptedException異常。

          notify():喚醒一個處于等待狀態的線程,注意的是在調用此方法的時候,并不能確切的喚醒某一個等待狀態的線程,而是由JVM確定喚醒哪個線程,而且不是按優先級。

          Allnotity():喚醒所有處入等待狀態的線程,注意并不是給所有喚醒線程一個對象的鎖,而是讓它們競爭。

          5. 請講一講析構函數和虛函數的用法和作用。

          6. Error與Exception有什么區別?

          Error表示系統級的錯誤和程序不必處理的異常,

          Exception表示需要捕捉或者需要程序進行處理的異常。

          7. 在java中一個類被聲明為final類型,表示了什么意思?

          表示該類不能被繼承,是頂級類。

          8. 描述一下你最常用的編程風格。

          9. heap和stack有什么區別。

          棧是一種線形集合,其添加和刪除元素的操作應在同一段完成。棧按照后進先出的方式進行處理。

          堆是棧的一個組成元素

          10. 如果系統要使用超大整數(超過long長度范圍),請你設計一個數據結構來存儲這種超大型數字以及設計一種算法來實現超大整數加法運算)。

          public class BigInt()

          {

          int[] ArrOne = new ArrOne[1000];

          String intString="";

          public int[] Arr(String s)

          {

          intString = s;

          for(int i=0;i<ArrOne.leght;i++)

          {

          11. 如果要設計一個圖形系統,請你設計基本的圖形元件(Point,Line,Rectangle,Triangle)的簡單實現

          12,談談final, finally, finalize的區別。

            final?修飾符(關鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為 abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變量必須在聲明時給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載。

            finally?再異常處理時提供 finally 塊來執行任何清除操作。如果拋出一個異常,那么相匹配的 catch 子句就會執行,然后控制就會進入 finally 塊(如果有的話)。

            finalize?方法名。Java 技術允許使用 finalize() 方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統資源或者執行其他清理工作。finalize() 方法是在垃圾收集器刪除對象之前對這個對象調用的。

          13,Anonymous Inner Class (匿名內部類) 是否可以extends(繼承)其它類,是否可以implements(實現)interface(接口)?

            匿名的內部類是沒有名字的內部類。不能extends(繼承) 其它類,但一個內部類可以作為一個接口,由另一個內部類實現。

          ?

          14,Static Nested Class 和 Inner Class的不同,說得越多越好(面試題有的很籠統)。

            Nested Class (一般是C++的說法),Inner Class (一般是JAVA的說法)。Java內部類與C++嵌套類最大的不同就在于是否有指向外部的引用上。具體可見http: //www.frontfree.net/articles/services/view.ASP?id=704&page=1

            注: 靜態內部類(Inner Class)意味著1創建一個static內部類的對象,不需要一個外部類對象,2不能從一個static內部類的一個對象訪問一個外部類對象

          第四,&和&&的區別。

            &是位運算符。&&是布爾邏輯運算符。

          15,HashMap和Hashtable的區別。

          ?

            都屬于Map接口的類,實現了將惟一鍵映射到特定的值上。

          ?

            HashMap 類沒有分類或者排序。它允許一個 null 鍵和多個 null 值。

            Hashtable 類似于 HashMap,但是不允許 null 鍵和 null 值。它也比 HashMap 慢,因為它是同步的。

          16,Collection 和 Collections的區別。

            Collections是個java.util下的類,它包含有各種有關集合操作的靜態方法。

            Collection是個java.util下的接口,它是各種集合結構的父接口。

          17,什么時候用assert。

            斷言是一個包含布爾表達式的語句,在執行這個語句時假定該表達式為 true。如果表達式計算為 false,那么系統會報告一個 Assertionerror。它用于調試目的:

          assert(a > 0); // throws an Assertionerror if a <= 0

          斷言可以有兩種形式:

          assert Expression1 ;

          assert Expression1 : Expression2 ;

            Expression1 應該總是產生一個布爾值。

            Expression2 可以是得出一個值的任意表達式。這個值用于生成顯示更多調試信息的 String 消息。

            斷言在默認情況下是禁用的。要在編譯時啟用斷言,需要使用 source 1.4 標記:

            javac -source 1.4 Test.java

            要在運行時啟用斷言,可使用 -enableassertions 或者 -ea 標記。

            要在運行時選擇禁用斷言,可使用 -da 或者 -disableassertions 標記。

            要系統類中啟用斷言,可使用 -esa 或者 -dsa 標記。還可以在包的基礎上啟用或者禁用斷言。

            可以在預計正常情況下不會到達的任何位置上放置斷言。斷言可以用于驗證傳遞給私有方法的參數。不過,斷言不應該用于驗證傳遞給公有方法的參數,因為不管是否啟用了斷言,公有方法都必須檢查其參數。不過,既可以在公有方法中,也可以在非公有方法中利用斷言測試后置條件。另外,斷言不應該以任何方式改變程序的狀態。

          18,GC是什么? 為什么要有GC? (基礎)。

            GC是垃圾收集器。Java 程序員不用擔心內存管理,因為垃圾收集器會自動進行管理。要請求垃圾收集,可以調用下面的方法之一:

          System.gc()

          Runtime.getRuntime().gc()

          19,String s = new String("xyz");創建了幾個String Object?

            兩個對象,一個是“xyx”,一個是指向“xyx”的引用對象s。

          20,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

            Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;

          21,short s1 = 1; s1 = s1 + 1;有什么錯? short s1 = 1; s1 += 1;有什么錯?

            short s1 = 1; s1 = s1 + 1;有錯,s1是short型,s1+1是int型,不能顯式轉化為short型。可修改為s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正確。

          22,sleep() 和 wait() 有什么區別? 搞線程的最愛

            sleep()方法是使線程停止一段時間的方法。在sleep 時間間隔期滿后,線程不一定立即恢復執行。這是因為在那個時刻,其它線程可能正在運行而且沒有被調度為放棄執行,除非(a)“醒來”的線程具有更高的優先級 (b)正在運行的線程因為其它原因而阻塞。

            wait()是線程交互時,如果線程對一個同步對象x 發出一個wait()調用,該線程會暫停執行,被調對象進入等待狀態,直到被喚醒或等待時間到。

          23,Java有沒有goto?

            Goto?java中的保留字,現在沒有在java中使用。

          ?

          24,數組有沒有length()這個方法? String有沒有length()這個方法?

            數組沒有length()這個方法,有length的屬性。

            String有有length()這個方法。

          25,Overload和Override的區別。Overloaded的方法是否可以改變返回值的類型?

            方法的重寫Overriding和重載Overloading是Java多態性的不同表現。重寫Overriding是父類與子類之間多態性的一種表現,重載Overloading是一個類中多態性的一種表現。如果在子類中定義某方法與其父類有相同的名稱和參數,我們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。如果在一個類中定義了多個同名的方法,它們或有不同的參數個數或有不同的參數類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型。

          26,Set里的元素是不能重復的,那么用什么方法來區分重復與否呢? 是用==還是equals()? 它們有何區別?

            Set里的元素是不能重復的,那么用iterator()方法來區分重復與否。equals()是判讀兩個Set是否相等。

            equals()和==方法決定引用值是否指向同一對象equals()在類中被覆蓋,為的是當兩個分離的對象的內容和類型相配的話,返回真值。

          posted on 2006-11-29 01:10 EricWong 閱讀(588) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 都江堰市| 凤冈县| 宜城市| 宿州市| 靖西县| 海门市| 赤壁市| 威远县| 莒南县| 周口市| 望奎县| 桦甸市| 龙井市| 忻州市| 葵青区| 日喀则市| 郸城县| 黄山市| 原平市| 乌什县| 湖口县| 达拉特旗| 西畴县| 高邮市| 贞丰县| 山西省| 开平市| 巨鹿县| 霍山县| 璧山县| 铜川市| 山西省| 旌德县| 全州县| 阳江市| 怀化市| 新化县| 永定县| 鄂伦春自治旗| 金寨县| 金坛市|