JSP 試題集

來源:互聯網
上載者:User
1.如何執行一個安全執行緒的JSP?
  答:只需增加如下指令
  <%@ page isThreadSafe="false" %>
2.Collection 和 Collections的區別?
  答:Collection是個java.util下的介面,它是各種集合結構的父介面。
      Collections是個java.util下的類,它包含有各種有關集合操作的靜態方法
3.short i=1;i=i+1; 和short i=1;i+=1;有什麼錯誤?
  答:short s1 = 1; s1 = s1 + 1;有錯,s1是short型,s1+1是int型,不能顯式轉化為short型。可修改為s1 =(short)(s1 + 1) 。
      short s1 = 1; s1 += 1正確。
4.Servlet的生命週期是什麼? Servlet和CGI的區別是什麼
  答:web容器載入servlet,生命週期開始。通過調用servlet的init()方法進行servlet的初始化。通過調用service()方法實現,
      根據請求的不同調用不同的do***()方法。結束服務,web容器調用servlet的destroy()方法。
      與cgi的區別在於servlet處於伺服器處理序中,它通過多線程方式運行其service方法,一個執行個體可以服務於多個請求,
      並且其執行個體一般不會銷毀,而CGI對每個請求都產生新的進程,服務完成後就銷毀,所以效率上低於servlet。
5.jsp指令有哪些?
  答:jsp指令分為兩大類型,page指令和動作指令
      動作指令通常有:useBean,setProperty,getProperty,forward,plugin,include
6.jsp如何使用注釋?
  答:1) <%-- --%> 2); //; 3)/** **/; 4)<!-- -->;
7.設定cookie
  答:Cookie cookie=new Cookie("myCookie",null);
         cookie.setMaxAge(0);
         cookie.setPath("/");
         response.addCookie(cookie);
8.&和&&的區別
  答:&是位元運算符,表示按位與運算,&&是邏輯運算子,表示邏輯與
9.HashTable和HashMap的區別
  答:HashMap是Hashtable的輕量級實現(非安全執行緒的實現),他們都完成了Map介面,主要區別在於HashMap允許空(null)索引值(key),
      由於非安全執行緒,效率上可能高於Hashtable。
      HashMap允許將null作為一個entry的key或者value,而Hashtable不允許。
      HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因為contains方法容易讓人引起誤解。
      Hashtable繼承自Dictionary類,而HashMap是Java1.2引進的Map interface的一個實現。
      最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個線程訪問Hashtable時,
      不需要自己為它的方法實現同步,而HashMap 就必須為之提供外同步。
      Hashtable和HashMap採用的hash/rehash演算法都大概一樣,所以效能不會有很大的差異。
10.JSP中有哪些內建對象
   答:jsp共有9個內建對象
       1) request 使用者端請求,此請求會包含來自POST/GET的參數
       2) response 網頁傳回給用戶端的回應。
       3) pageContext 網頁的屬性在這裡管理
       4) session 與請求有關的會話期
       5) appliation servlet正在執行的內容
       6) out 用來傳送回應的參數
       7) page 表示該頁產生的servlet執行個體
       8) exeption 針對jsp產生的錯誤頁面,未捕捉的例外
       9) config servlet的架構組件
11.描述JSP和Servlet的區別、共同點、各自應用的範圍
   答:儘管JSP在本質上就是SERVLET,但是兩者的建立方式不一樣.Servlet完全是JAVA程式碼構成擅長於流程式控制制和交易處理而通過Servlet
       來產生動態網頁很不直觀;JSP由HTML代碼和JSP標籤構成可以方便地編寫動態網頁因此在實際應用中採用Servlet來控制商務程序,而采
       用JSP來產生動態網頁.在struts架構中,JSP位於MVC設計模式的視圖層,而Servlet位於控制層
12.Set裡的元素是不能重複的,那麼用什麼方法來區分重複與否呢? 是用==還是equals()? 它們有何區別?
   答:Set裡的元素是不能重複的,那麼用iterator()方法來區分重複與否。equals()是判讀兩個Set是否相等。
       equals()和==方法決定引用值是否指向同一對象equals()在類中被覆蓋,為的是當兩個分離的對象的內容和類型相配的話,
       返回真值。
13.給我一個你最常見到的runtime exception
   答:ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException,
       CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException,
       EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException,
       IllegalStateException,ImagingOpException, IndexOutOfBoundsException, MissingResourceException,
       NegativeArraySizeException, NoSuchElementException,NullPointerException,
       ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException,
       UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException
14.abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized
   答:都不可能
15.啟動一個線程是用run()還是start()
   答:啟動一個線程是調用start()方法,使線程所代表的虛擬處理機處於可運行狀態,這意味著它可以由JVM調度並執行。這並不意味著線程就會立即運行。
       run()方法可以產生必須退出的標誌來停止一個線程
16.try {}裡有一個return語句,那麼緊跟在這個try後的finally {}裡的code會不會被執行,什麼時候被執行,在return前還是後?
   答:會執行,在return前執行。
17.用最有效率的方法算出2乘以8等於幾?
   答:2 << 3
18.abstract class和interface有什麼區別?
   答:聲明方法的存在而不去實現它的類被叫做抽象類別(abstract class),它用於要建立一個體現某些基本行為的類,並為該類聲明方法,
       但不能在該類中實現該類的情況。不能建立abstract 類的執行個體。然而可以建立一個變數,其類型是一個抽象類別,並讓它指向具體子類
       的一個執行個體。不能有抽象建構函式或抽象靜態方法。Abstract 類的子類為它們父類中的所有抽象方法提供實現,否則它們也是抽象類別
       為。取而代之,在子類中實現該方法。知道其行為的其它類可以在類中實現這些方法。
       介面(interface)是抽象類別的變體。在介面中,所有方法都是抽象的。多繼承性可通過實現這樣的介面而獲得。介面中的所有方法都
       是抽象的,沒有一個有程式體。介面只可以定義static final成員變數。介面的實現與子類相似,除了該實作類別不能從介面定義中繼承
       行為。當類實現特殊介面時,它定義(即將程式體給予)所有這種介面的方法。然後,它可以在實現了該介面的類的任何對象上調用接
       口的方法。由於有抽象類別,它允許使用介面名作為引用變數的類型。通常的動態聯編將生效。引用可以轉換到介面類型或從介面類型轉換,instanceof 運算子可以用來決定某對象的類是否實現了介面。
19.String s = new String("xyz");建立了幾個String Object?
   答:兩個對象,一個是“xyx”,一個是指向“xyx”的引用對象s。
20.sleep() 和 wait() 有什麼區別?
   答:sleep()方法是使線程停止一段時間的方法。在sleep 時間間隔期滿後,線程不一定立即恢複執行。這是因為在那個時刻,其它線程可
       能正在運行而且沒有被調度為放棄執行,除非(a)“醒來”的線程具有更高的優先順序
      (b)正在啟動並執行線程因為其它原因而阻塞。wait()是線程互動時,如果線程對一個同步對象x 發出一個wait()調用,該線程會暫停執行,
      被調對象進入等待狀態,直到被喚醒或等待時間到。
21.數組有沒有length()這個方法? String有沒有length()這個方法?
   答:數組沒有length()這個方法,有length的屬性。
       String有有length()這個方法。
22.Overload和Override的區別。Overloaded的方法是否可以改變傳回值的類型
   答:方法的重寫Overriding和重載Overloading是Java多態性的不同表現。重寫Overriding是父類與子類之間多態性的一種表現,
       重載Overloading是一個類中多態性的一種表現。如果在子類中定義某方法與其父類有相同的名稱和參數,
       我們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。
       如果在一個類中定義了多個同名的方法,它們或有不同的參數個數或有不同的參數類型,則稱為方法的重載(Overloading)。
       Overloaded的方法是可以改變傳回值的類型。
23.介面是否可繼承介面? 抽象類別是否可實現(implements)介面? 抽象類別是否可繼承實體類(concrete class)
   答:介面可以繼承介面。抽象類別可以實現(implements)介面,抽象類別是否可繼承實體類,但前提是實體類必須有明確的建構函式。
24.是否可以繼承String類
   答:String是final類,故不能繼承。
25.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上
   答:switch(expr1)中,expr1是一個整數運算式。因此傳遞給 switch 和 case 語句的參數應該是 int、 short、 char 或者 byte。
       long,string 都不能作用於swtich。
26.兩個對象值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對不對?
   答:不對,有相同的hash code
27.當一個對象被當作參數傳遞到一個方法後,此方法可改變這個對象的屬性,並可返回變化後的結果,那麼這裡到底是值傳遞還是引用傳遞?
   答:是值傳遞。Java 編程 語言只由值傳遞參數。當一個對象執行個體作為一個參數被傳遞到方法中時,參數的值就是對該對象的引用。
       對象的內容可以在被調用的方法中改變,但對象的引用是永遠不會改變的。
28.當一個線程進入一個對象的一個synchronized方法後,其它線程是否可進入此對象的其它方法?
   答:不能,一個對象的一個synchronized方法只能由一個線程訪問。
29.構造器Constructor是否可被override
   答:不能,因為建構函式不能被繼承,所以不能被重寫,但可以重載
30.反轉函數
   String reverse(String arg)
   {
        if(arg.length()==0)
            return arg;
        else
            return reverse(arg.substring(1,arg.length)+arg.substring(0,1);
   }
31.範圍public,private,protected,以及不寫時的區別
              當前類      所在包      其它包子孫類    其它包非子孫類
    public     √          √          √                 √       
    protected  √          √          √                 ×
    friendly   √          √          ×                 ×
    private    √          ×          ×                 ×
32.ArrayList和Vector的區別
   答:就ArrayList與Vector主要從二方面來說.
      一.同步性:Vector是安全執行緒的,也就是說是同步的,而ArrayList是線程式不安全的,不是同步的
      二.資料增長:當需要增長時,Vector預設增長為原來一培,而ArrayList卻是原來的一半
33.char型變數中能不能存貯一個中文漢字 為什麼
   答:是能夠定義成為一個中文的,因為java中以unicode編碼,一個char佔16個位元組,所以放一個中文是沒問題的
34.多線程有幾種實現方法,都是什麼 同步有幾種實現方法,都是什麼
   答:多線程有兩種實現方法,分別是繼承Thread類與實現Runnable介面
       同步的實現方面有兩種,分別是synchronized,wait與notify
35.float型float f=3.4是否正確
   答:不正確,精度不準確,應該用強制轉換,f=(float)3.4;
36.Class.forName的作用 為什麼要用
   答:調用該訪問返回一個以字串指定類名的類的對象。
37.兩個int 型的整數, 不經過第3方變數進行替換?
   如a =10 b =5
   轉換後 a =5 b =10
   答:1) a=a+b;b=a-b;a=a-b;
       2) a^= b;b ^= a;a ^= b;
38.編一段程式,建立4個線程,2個線程增加,2個線程減
public class ThreadTest1{
  private int j;
  public static void main(String args[]){
      ThreadTest1 tt=new ThreadTest1();
      Inc inc=tt.new Inc();
      Dec dec=tt.new Dec();
      for(int i=0;i<2;i++){
          Thread t=new Thread(inc);
          t.start();
          t=new Thread(dec);
          t.start();
      }
  }
  private synchronized void inc(){
      j++;
      System.out.println(Thread.currentThread().getName()+"-inc:"+j);
  }
  private synchronized void dec(){
      j--;
      System.out.println(Thread.currentThread().getName()+"-dec:"+j);
  }
  class Inc implements Runnable{
    public void run(){
      for(int i=0;i<10;i++){
          inc();
      }
    }
  }
  class Dec implements Runnable{
    public void run(){
      for(int i=0;i<10;i++){
          dec();
      }
    }
  }
}
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.