1. 程式人生 > >java面試題-執行緒-JC-垃圾回收等

java面試題-執行緒-JC-垃圾回收等

java基礎
1、垃圾回收的優點和原理。
      Java語言中一個顯著的特點就是引入了垃圾回收機制,使c++程式設計師最頭疼的記憶體管理的問題迎刃

而解,它使得Java程式設計師在編寫程式的時候不再需要考慮記憶體管理。由於有個垃圾回收機制,Java中的對

象不再有“作用域”的概念,只有物件的引用才有“作用域”。垃圾回收可以有效的防止記憶體洩露,有效

的使用可以使用的記憶體。垃圾回收器通常是作為一個單獨的低級別的執行緒執行,不可預知的情況下對記憶體

堆中已經死亡的或者長時間沒有使用的物件進行清楚和回收,程式設計師不能實時的呼叫垃圾回收器對某個對

象或所有物件進行垃圾回收。


2、請說出你所知道的執行緒同步的方法。
wait():使一個執行緒處於等待狀態,並且釋放所持有的物件的lock。
      sleep():使一個正在執行的執行緒處於睡眠狀態,是一個靜態方法,呼叫此方法要捕捉

InterruptedException異常。
      notify():喚醒一個處於等待狀態的執行緒,注意的是在呼叫此方法的時候,並不能確切的喚醒某一

個等待狀態的執行緒,而是由JVM確定喚醒哪個執行緒,而且不是按優先順序。
      Allnotity():喚醒所有處入等待狀態的執行緒,注意並不是給所有喚醒執行緒一個物件的鎖,而是讓它

們競爭。


3、在java中一個類被宣告為final型別,表示了什麼意思?
      表示該類不能被繼承,是頂級類。

4、 Error與Exception有什麼區別?
     Error表示系統級的錯誤和程式不必處理的異常,
     Exception表示需要捕捉或者需要程式進行處理的異常。


5、&和&&的區別。
     &是位運算子。&&是布林邏輯運算子。


6、Collection 和 Collections的區別。
     Collections是個java.util下的類,它包含有各種有關集合操作的靜態方法。
      Collection是個java.util下的介面,它是各種集合結構的父介面。 

7、 HashMap和Hashtable的區別。
    都屬於Map介面的類,實現了將惟一鍵對映到特定的值上。
     HashMap 類沒有分類或者排序。它允許一個 null 鍵和多個 null 值。
     Hashtable 類似於 HashMap,但是不允許 null 鍵和 null 值。它也比 HashMap 慢,因為它是同步的。


8、GC是什麼? 為什麼要有GC? .
     GC是垃圾收集器。Java 程式設計師不用擔心記憶體管理,因為垃圾收集器會自動進行管理。要請求垃圾收

集,可以呼叫下面的方法之一:System.gc()
      Runtime.getRuntime().gc()

9、談談final, finally, finalize的區別。
       final—修飾符(關鍵字)如果一個類被宣告為final,意味著它不能再派生出新的子類,不能作

為父類被繼承。因此一個類不能既被宣告為 abstract的,又被宣告為final的。將變數或方法宣告為

final,可以保證它們在使用中不被改變。被宣告為final的變數必須在宣告時給定初值,而在以後的引用

中只能讀取,不可修改。被宣告為final的方法也同樣只能使用,不能過載。
       finally—再異常處理時提供 finally 塊來執行任何清除操作。如果丟擲一個異常,那麼相匹配

的 catch 子句就會執行,然後控制就會進入 finally 塊(如果有的話)。
      finalize—方法名。Java 技術允許使用 finalize() 方法在垃圾收集器將物件從記憶體中清除出去

之前做必要的清理工作。這個方法是由垃圾收集器在確定這個物件沒有被引用時對這個物件呼叫的。它是

在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統資源或者執行

其他清理工作。finalize() 方法是在垃圾收集器刪除物件之前對這個物件呼叫的。

10、String s = new String("xyz");建立了幾個String Object?
     兩個物件,一個是"xyz",一個是指向"xyz"的引用物件s。


11、Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
     Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;


12、Java有沒有goto?
     Goto—java中的保留字,現在沒有在java中使用。


13、 sleep() 和 wait() 有什麼區別?
     sleep()方法是使執行緒停止一段時間的方法。在sleep 時間間隔期滿後,執行緒不一定立即恢復執行。

這是因為在那個時刻,其它執行緒可能正在執行而且沒有被排程為放棄執行,除非(a)"醒來"的執行緒具有更

高的優先順序 (b)正在執行的執行緒因為其它原因而阻塞。
    wait()是執行緒互動時,如果執行緒對一個同步物件x 發出一個wait()呼叫,該執行緒會暫停執行,被調對

象進入等待狀態,直到被喚醒或等待時間到。
陣列有沒有length()這個方法? String有沒有length()這個方法?
     在java裡面陣列沒有length()這個方法,有length的屬性。String有有length()這個方法。在c#陣列和string只有length屬性,沒有方法.


14、 error和exception有什麼區別?

  1   Error表示系統級的錯誤和程式不必處理的異常,
     Exception表示需要捕捉或者需要程式進行處理的異常。

  2   error 表示恢復不是不可能但很困難的情況下的一種嚴重問題。比如說記憶體溢位。不可能指望程式能處理這樣的情況。
     exception 表示一種設計或實現問題。也就是說,它表示如果程式執行正常,從不會發生的情況。


15、List, Set, Map是否繼承自Collection介面?
      List,Set是 ,Map不是


16、是否可以繼承String類?
      String類是final類故不可以繼承。


17、 構造器Constructor是否可被override?
   不能重寫  Overriding,但可以被過載Overloading。


18、 try {}裡有一個return語句,那麼緊跟在這個try後的finally {}裡的code會不會被執行,什麼時候被

執行,在return前還是後?
     會執行,在return前執行。


19、用最有效率的方法算出2乘以8等於幾?
    2 << 3


20、作用域public,private,protected,以及不寫時的區別
     區別如下:
    作用域當前類同一package 子孫類 其他package
     public        √             √                √            √
     protected   √            √                √            ×
      friendly     √             √               ×             ×
      private       √            ×              ×              ×
      不寫時預設為friendly


21、 abstract class和interface有什麼區別?
宣告方法的存在而不去實現它的類被叫做抽象類(abstract class),它用於要建立一個體現某些基本行

為的類,併為該類宣告方法,但不能在該類中實現該類的情況。不能建立abstract 類的例項。然而可以

建立一個變數,其型別是一個抽象類,並讓它指向具體子類的一個例項。不能有抽象建構函式或抽象靜態

方法。Abstract 類的子類為它們父類中的所有抽象方法提供實現,否則它們也是抽象類為。取而代之,

在子類中實現該方法。知道其行為的其它類可以在類中實現這些方法。
      介面(interface)是抽象類的變體。在介面中,所有方法都是抽象的。多繼承性可通過實現這樣

的介面而獲得。介面中的所有方法都是抽象的,沒有一個有程式體。介面只可以定義static final成員變

量。介面的實現與子類相似,除了該實現類不能從介面定義中繼承行為。當類實現特殊介面時,它定義(

即將程式體給予)所有這種介面的方法。然後,它可以在實現了該介面的類的任何物件上呼叫介面的方法

。由於有抽象類,它允許使用介面名作為引用變數的型別。通常的動態聯編將生效。引用可以轉換到介面

型別或從介面型別轉換,instanceof 運算子可以用來決定某物件的類是否實現了介面

22、ArrayList和Vector的區別,HashMap和Hashtable的區別
     答:就ArrayList與Vector主要從二方面來說.
     一.同步性:Vector是執行緒安全的,也就是說是同步的,而ArrayList是執行緒序不安全的,不是同步的
     二.資料增長:當需要增長時,Vector預設增長為原來一培,而ArrayList卻是原來的一半
     就HashMap與HashTable主要從三方面來說。
     一.歷史原因:Hashtable是基於陳舊的Dictionary類的,HashMap是Java 1.2引進的Map介面的一個實


     二.同步性:Hashtable是執行緒安全的,也就是說是同步的,而HashMap是執行緒序不安全的,不是同步


     三.值:只有HashMap可以讓你將空值作為一個表的條目的key或value

23、 char型變數中能不能存貯一箇中文漢字?為什麼?
    是能夠定義成為一箇中文的,因為java中以unicode編碼,一個char佔16個位元組,所以放一箇中文是沒問題的


24、 float型float f=3.4是否正確?
   答:不正確。精度不準確,應該用強制型別轉換,如下所示:float f=(float)3.4
STRING與STRINGBUFFER的區別。
    答:STRING的長度是不可變的,STRINGBUFFER的長度是可變的。如果你對字串中的內容經常進行操

作,特別是內容要修改時,那麼使用StringBuffer,如果最後需要String,那麼使用StringBuffer的toString()方法.


25、 說出ArrayList,Vector, LinkedList的儲存效能和特性
      ArrayList和Vector都是使用陣列方式儲存資料,此陣列元素數大於實際儲存的資料以便增加和插

入元素,它們都允許直接按序號索引元素,但是插入元素要涉及陣列元素移動等記憶體操作,所以索引資料

快而插入資料慢, Vector由於使用了synchronized方法(執行緒安全),通常效能上較ArrayList差,而

LinkedList使用雙向連結串列實現儲存,按序號索引資料需要進行前向或後向遍歷,但是插入資料時只需要記

錄本項的前後項即可,所以插入速度較快。
繼承時候類的執行順序問題,以下程式碼顯示什麼結果。
父類:public class FatherClass {
      public FatherClass() {
      System.out.println("FatherClass Create"); }
       }
子類: import FatherClass;
public class ChildClass extends FatherClass {
      public ChildClass() {
      System.out.println("ChildClass Create"); }
      public static void main(String[] args) {
      FatherClass fc = new FatherClass();
      ChildClass cc = new ChildClass(); }
} //執行java ChildClass

jsp

1、jsp有哪些內建物件?作用分別是什麼?
      JSP共有以下9種基本內建元件(可與ASP的6種內部元件相對應):
      request 使用者端請求,此請求會包含來自GET/POST請求的引數
     response 網頁傳回使用者端的迴應
     pageContext 網頁的屬性是在這裡管理
     session 與請求有關的會話期
     application servlet 正在執行的內容
     out 用來傳送回應的輸出
     config servlet的構架部件
     page JSP網頁本身
      exception 針對錯誤網頁,未捕捉的例外
2.jsp有哪些動作?作用分別是什麼?
答:JSP共有以下6種基本動作
jsp:include:在頁面被請求的時候引入一個檔案。
jsp:useBean:尋找或者例項化一個JavaBean。
jsp:setProperty:設定JavaBean的屬性。
jsp:getProperty:輸出某個JavaBean的屬性。
jsp:forward:把請求轉到一個新的頁面。
jsp:plugin:根據瀏覽器型別為Java外掛生成OBJECT或EMBED等標記
3.JSP中動態INCLUDE與靜態INCLUDE的區別?
    答:動態INCLUDE用jsp:include動作實現
     <jsp:include page="included.jsp" flush="true" />它總是會檢查所含檔案中的變化,適合用於

包含動態頁面,並且可以帶引數
   靜態INCLUDE用include偽碼實現,定不會檢查所含檔案的變化,適用於包含靜態頁面
    <%@ include file="included.htm" %>
4.兩種跳轉方式分別是什麼?有什麼區別?
     有兩種,分別為:
     <jsp:include page="included.jsp" flush="true">
     <jsp:forward page= "nextpage.jsp"/>
    前者頁面不會轉向include所指的頁面,只是顯示該頁的結果,主頁面還是原來的頁面。執行完後還

會回來,相當於函式呼叫。並且可以帶引數.後者完全轉向新頁面,不會再回來。相當於go to 語句。
5.Class.forName的作用?
呼叫該訪問返回一個以字串指定類名的類的物件。
 
6.Servlet
Servlet的生命週期是什麼?
     servlet有良好的生存期的定義,包括載入和例項化、初始化、處理請求以及服務結束。這個生存期

由javax.servlet.Servlet介面的init,service和destroy方法表達。
7.servlet會話跟蹤技術
    使用者認證,持久cookies,URL重寫,隱藏表單欄位,會話交換和持久

8.XML
xml有哪些解析技術?區別是什麼?
     答:主要有DOM,SAX等
      DOM:處理大型檔案時其效能下降的非常厲害。這個問題是由DOM的樹結構所造成的,這種結構佔用

的記憶體較多,而且DOM必須在解析檔案之前把整個文件裝入記憶體,適合對XML的隨機訪問
      SAX:不同於DOM,SAX是事件驅動型的XML解析方式。它順序讀取XML檔案,不需要一次全部裝載整個

檔案。當遇到像檔案開頭,文件結束,或者標籤開頭與標籤結束時,它會觸發一個事件,使用者通過在其回

調事件中寫入處理程式碼來處理XML檔案,適合對XML的順序訪問
9.專案中主要用到xml技術的哪些方面?如何實現的?
    答:用到了資料存貯,資訊配置兩方面。在做資料交換平臺時,將不同資料來源的資料組裝成XML檔案,

然後將XML檔案壓縮打包加密後通過網路傳送給接收者,接收解密與解壓縮後再同XML檔案中還原相關資訊

進行處理。
    在做軟體配置時,利用XML可以很方便的進行,軟體的各種配置引數都存貯在XML檔案中。
10.EJB

EJB與JAVA BEAN的區別?
    答:Java Bean 是可複用的元件,對Java Bean並沒有嚴格的規範,理論上講,任何一個Java類都可以

是一個Bean。但通常情況下,由於Java Bean是被容器所建立(如Tomcat)的,所以Java Bean應具有一個

無參的構造器,另外,通常Java Bean還要實現Serializable介面用於實現Bean的永續性。Java Bean實際

上相當於微軟COM模型中的本地程序內COM元件,它是不能被跨程序訪問的。Enterprise Java Bean 相當

於DCOM,即分散式元件。它是基於Java的遠端方法呼叫(RMI)技術的,所以EJB可以被遠端訪問(跨程序

、跨計算機)。但EJB必須被佈署在諸如Webspere、WebLogic這樣的容器中,EJB客戶從不直接訪問真正的

EJB元件,而是通過其容器訪問。EJB容器是EJB元件的代理,EJB元件由容器所建立和管理。客戶通過容器

來訪問真正的EJB元件。
EJB容器提供的服務
    主要提供宣告週期管理、程式碼產生、持續性管理、安全、事務管理、鎖和併發行管理等服務。
EJB的角色和三個物件
    EJB角色主要包括Bean開發者 應用組裝者 部署者 系統管理員 EJB容器提供者 EJB伺服器提供者
    三個物件是Remote(Local)介面、Home(LocalHome)介面,Bean類
EJB 的幾種型別
    會話(Session)Bean ,實體(Entity)Bean 訊息驅動的(Message Driven)Bean
     會話Bean又可分為有狀態(Stateful)和無狀(Stateless)兩種
     實體Bean可分為Bean管理的持續性(BMP)和容器管理的持續性(CMP)兩種
11.bean 例項的生命週期
    對於Stateless Session Bean、Entity Bean、Message Driven Bean一般存在緩衝池管理,而對於

Entity Bean和Statefull Session Bean存在Cache管理,通常包含建立例項,設定上下文、建立EJB

Object(create)、業務方法呼叫、remove等過程,對於存在緩衝池管理的Bean,在create之後例項並不

從記憶體清除,而是採用緩衝池排程機制不斷重用例項,而對於存在Cache管理的Bean則通過啟用和去啟用

機制保持Bean的狀態並限制記憶體中例項數量。

12.weblogic
如何設定的weblogic的熱啟動模式(開發模式)與產品釋出模式?
    可以在管理控制檯中修改對應伺服器的啟動模式為開發或產品模式之一。或者修改服務的啟動檔案或

者commenv檔案,增加
      set PRODUCTION_MODE=true
如何啟動服務時不需輸入使用者名稱與密碼?
     修改服務啟動檔案,增加 WLS_USER和WLS_PW項。也可以在boot.properties檔案中增加加密過的用

戶名和密碼.

在weblogic管理制臺中對一個應用域(或者說是一個網站,Domain)進行jms及ejb或連線池等相關資訊進行

配置後,實際儲存在什麼檔案中?
     儲存在此Domain的config.xml檔案中,它是伺服器的核心配置檔案。
如何檢視在weblogic中已經發布的EJB?
     可以使用管理控制檯,在它的Deployment中可以檢視所有已釋出的EJB
說說weblogic中一個Domain的預設目錄結構?比如要將一個簡單的helloWorld.jsp放入何目錄下,然的在瀏

覽器上就可打入http://主機:埠號//helloword.jsp就可以看到執行結果了? 又比如這其中用到了一個

13.自己寫的javaBean該如何辦?
     Domain目錄/伺服器目錄/applications,將應用目錄放在此目錄下將可以作為應用訪問,如果是Web

應用,應用目錄需要滿足Web應用目錄要求,jsp檔案可以直接放在應用目錄中,Javabean需要放在應用目

錄的WEB-INF目錄的classes目錄中,設定伺服器的預設應用將可以實現在瀏覽器上無需輸入應用名。
在weblogic中釋出ejb需涉及到哪些配置檔案
    不同型別的EJB涉及的配置檔案不同,都涉及到的配置檔案包括ejb-jar.xml,weblogic-ejb-

jar.xmlCMP實體Bean一般還需要weblogic-cmp-rdbms-jar.xml
EJB需直接實現它的業務介面或Home介面嗎,請簡述理由.
     遠端介面和Home介面不需要直接實現,他們的實現程式碼是由伺服器產生的,程式執行中對應實現類

會作為對應介面型別的例項被使用。

JAVA華為面試題
    JAVA方面:
1 面向物件的特徵有哪些方面  
2 String是最基本的資料型別嗎?
3 int 和 Integer 有什麼區別
4 String 和StringBuffer的區別
5執行時異常與一般異常有何異同?
6 說出一些常用的類,包,介面,請各舉5個
7 說出ArrayList,Vector, LinkedList的儲存效能和特性
8.設計4個執行緒,其中兩個執行緒每次對j增加1,另外兩個執行緒對j每次減少1。寫出程式。
9. JSP的內建物件及方法。
10.用socket通訊寫出客戶端和伺服器端的通訊,要求客戶傳送資料後能夠回顯相同的資料。
11用socket通訊寫出客戶端和伺服器端的通訊,要求客戶傳送資料後能夠回顯相同的資料。
12.EJB是基於哪些技術實現的?並說出SessionBean和EntityBean的區別,StatefulBean和StatelessBean

的區別。
13.EJB包括(SessionBean,EntityBean)說出他們的生命週期,及如何管理事務的?
14.說出資料連線池的工作機制是什麼?
15同步和非同步有和異同,在什麼情況下分別使用他們?舉例說明。
16應用伺服器有那些?
17你所知道的集合類都有哪些?主要方法?
18給你一個:驅動程式A,資料來源名稱為B,使用者名稱稱為C,密碼為D,資料庫表為T,請用JDBC檢索出表T的所有

資料。
19說出在JSP頁面裡是怎麼分頁的?
資料庫方面:
20.儲存過程和函式的區別
21事務是什麼?
22. 遊標的作用?如何知道遊標已經到了最後?
23.觸發器分為事前觸發和事後觸發,這兩種觸發有和區別。語句級觸發和行級觸發有何區別。

相關推薦

java試題-執行-JC-垃圾回收

java基礎1、垃圾回收的優點和原理。      Java語言中一個顯著的特點就是引入了垃圾回收機制,使c++程式設計師最頭疼的記憶體管理的問題迎刃而解,它使得Java程式設計師在編寫程式的時候不再需要考慮記憶體管理。由於有個垃圾回收機制,Java中的對象不再有“作用域”的概

JAVA試題 執行的生命週期包括哪幾個階段?

面試官:您知道執行緒的生命週期包括哪幾個階段? 應聘者: 執行緒的生命週期包含5個階段,包括:新建、就緒、執行、阻塞、銷燬。 新建:就是剛使用new方法,new出來的執行緒; 就緒:就是呼叫的執行緒的start()方法後,這時候執行緒處於等待CPU分配資源階段,誰先搶的CPU資源,誰開

試題-執行

今天公司新來的小夥伴問了我這樣一個面試題: 他不清楚為什麼最後輸出的是thread中的方法,而不是runnable中的方法,然後我看了下他從網上搜出的別人寫的答案,很多東西對於懂的人來說很容易就能看懂,但是對於剛剛踏入這一行業的人來說,他不明白。所以希望很多在這塊迷茫的小夥伴能夠更好的掌握

Android-JVM中的多執行&垃圾回收

Java語言是為數不多支援多執行緒技術的程式語言,而這多執行緒就不得不提到JVM虛擬機器   先看程式碼案例:(JVM收垃圾) package android.java.thread; class Demo { /** * 此方法是Object最終父類提供的方法

試題)有關JVM垃圾回收機制的那些演算法

三種垃圾回收演算法 標記-清除(年老代) 標記-整理(即標記-壓縮)(年老代) 複製(年輕代) 1、標記-清除演算法   原理: 從根集合節點進行掃描,標記出所有的存活物件,最後掃描整個記憶體空間並清除沒有標記的物件(即死亡物件)

黑馬程式設計師7k試題 執行

執行緒池的概念與Executors類的應用首先介紹在TCP伺服器程式設計模型的原理,當一個客戶端連線到伺服器,伺服器要起一個執行緒為之服,當客戶端的回話結束時,執行緒也就結束了,即每一個客戶端連線,伺服器 就要為之建立一個新的執行緒,這好比假設每個報名學員都要通過我來親自接 待,以便給每個學員一種好的感覺,

試題:執行是什麼?多執行

執行緒在面試中已經是常客了,也是我們必備的知識點,關於執行緒,問的最多的便是執行緒是什麼?為什麼使用多執行緒?多執行緒的示例以及解決方案?執行緒池是什麼? 一.執行緒是什麼? Thread類中有這樣的明確定義:執行緒是程式中執行的執行緒,Java虛擬機器允許程式

記一個有意思的試題執行交替輸出問題

開心一刻 大年初一,一起嗨起來!!!   強調一句很重要的心裡話:祝大家在 2021 年,健康好運,平安幸福! 問題描述   用兩個執行緒,一個輸出數字,一個輸出字母,交替輸出 1A2B3C4D...26Z   該如何實現? 解決方式   據說解決方式有上百種,但有些是脫了褲子放屁,有些是民間偏方,所

JNI字串,陣列,欄位和方法,物件引用,異常處理,多執行,記憶體回收

  JNI中字串,陣列,欄位和方法,區域性引用和全域性引用,異常處理,多執行緒等核心內容。-- finalize的作用: 1.finalize()是Object的protected方法,子類可以覆蓋該方法以實現資源清理工作,GC在回收物件之前呼叫該方法。 2.finalize

Java試題:Servlet是執行安全的嗎?

轉自: http://www.cnblogs.com/chanshuyi/p/5052426.html   Servlet不是執行緒安全的。 要解釋為什麼Servlet為什麼不是執行緒安全的,需要了解Servlet容器(即Tomcat)使如何響應HTTP請求的。

Java試題執行

1、Thread類中的yield方法有什麼作用? Yield方法可以暫停當前正在執行的執行緒物件,讓其它有相同優先順序的執行緒執行。它是一個靜態方法而且只保證當前執行緒放棄CPU佔用而不能保證使其它執行緒一定能佔用CPU,執行yield()的執行緒有可能在進入到暫停狀態後馬上又

Java試題--多執行併發&鎖&jvm

一 多執行緒、併發、鎖 執行緒的生命週期,狀態是如何轉移的 NEW:A thread that has not yet started is in this state. RUNABLE: A thread executing in the Java vi

java 試題 (一)——— 集合 、執行

由於本人最近在換工作,所以可能在整理面試題,下面就是最近面試情況,最常會問到的面試題,有執行緒、集合、IO/NIO、異常,反射、JVM等等,所以也在網上找了大量的資料,那麼現在就先放一點找到的資料,下面就是一些集合、執行緒有關的 面試題 ,稍後也會把一些常見的、重點的面試題整

java試題之什麼是執行ThreadLocal?作用是什麼?

定義:執行緒區域性變數是侷限於執行緒內的變數,屬於執行緒自身所有,不在多個執行緒間共享。java提供ThreadLocal類來支援執行緒區域性變數,是一個實現執行緒安全的方式。 任何執行緒區域性變數一旦在工作完成後沒有釋放,java應用就存在記憶體洩露的風險   作用:ThreadLocal是

Java試題——多執行高併發

什麼是執行緒? 執行緒是程序中的一個實體,是被系統獨立排程和分派的基本單位,它被包含在程序之中,是程序中的實際運作單位。執行緒自己不擁有系統資源,只擁有一點兒在執行中必不可少的資源,但它可與同屬一個程序的其它執行緒共享程序所擁有的全部資源。一個執行緒可以建立

10042---Java試題:Servlet是執行安全的嗎?

servlet不是執行緒安全的。 要解釋為什麼Servlet為什麼不是執行緒安全的,需要了解Servlet容器(即Tomcat)使如何響應HTTP請求的。 當Tomcat接收到Client的HTTP請求時,Tomcat從執行緒池中取出一個執行緒,之後找到該請求對應的Serv

Java之多執行試題

很多核心Java面試題來源於多執行緒(Multi-Threading)和集合框架(Collections Framework),理解核心執行緒概念時,嫻熟的實際經驗是必需的。這篇文章收集了 Java 執行緒方面一些典型的問題,這些問題經常被高階工程師所問到。 0.Java

經典的一道JAVA試題:A、B執行迴圈列印A、B

1、問題描述 通過Java多執行緒方式實現迴圈順序列印A、B,而且保證無論多少次迴圈,都不亂序? 2、問題的解決方案 其實這個問題,背後考察的是一個生產者和消費者的問題。即:要保證當前一個執行緒的任務完成之後,再去執行另一個執行緒的任務。由多種解決方法: 1、利用w

java試題---請用多執行寫死鎖

java面試題---用多執行緒寫死鎖 (請參考本部落格對同步鎖的文章進行理解) public class dead { public static void main(String[] args)

一道非常棘手的 Java 試題:i++ 是執行安全的嗎

i++ 是執行緒安全的嗎? 相信很多中高階的 Java 面試者都遇到過這個問題,很多對這個不是很清楚的肯定是一臉蒙逼。內心肯定還在質疑,i++ 居然還有執行緒安全問題?只能說自己瞭解的不夠多,自己的水平有限。 先來看下面的示例來驗證下 i++ 到底是不是執行緒安全的。