程序員經(jīng)典面試題及答案
程序員經(jīng)典面試題及答案
Java中的線程有四種狀態(tài)分別是:運行、就緒、掛起、結束。下面就由學習啦小編為大家介紹一下程序員經(jīng)典面試題及答案的文章,歡迎閱讀。
程序員經(jīng)典面試題及答案篇1
1、垃圾回收的優(yōu)點和原理。并考慮2種回收機制。
Java語言中一個顯著的特點就是引入了垃圾回收機制,使c++程序員最頭疼的內(nèi)存管理 的問題迎刃而解,它使得Java程序員在編寫程序的時候不再需要考慮內(nèi)存管理。由于有個垃圾回收機制,Java中的對象不再有“作用域”的概念,只有對象 的引用才有“作用域”。垃圾回收可以有效的防止內(nèi)存泄露,有效的使用可以使用的內(nèi)存。垃圾回收器通常是作為一個單獨的低級別的線程運行,不可預知的情況下 對內(nèi)存堆中已經(jīng)死亡的或者長時間沒有使用的對象進行清楚和回收,程序員不能實時的調(diào)用垃圾回收器對某個對象或所有對象進行垃圾回收?;厥諜C制有分代復制垃 圾回收和標記垃圾回收,增量垃圾回收
2、請說出你所知道的線程同步的方法。
wait():使一個線程處于等待狀態(tài),并且釋放所持有的對象的lock。sleep():使一個 正在運行的線程處于睡眠狀態(tài),是一個靜態(tài)方法,調(diào)用此方法要捕捉InterruptedException異常。notify():喚醒一個處于等待狀態(tài) 的線程,注意的是在調(diào)用此方法的時候,并不能確切的喚醒某一個等待狀態(tài)的線程,而是由JVM確定喚醒哪個線程,而且不是按優(yōu)先級。Allnotity ():喚醒所有處入等待狀態(tài)的線程,注意并不是給所有喚醒線程一個對象的鎖,而是讓它們競爭。
3、你所知道的集合類都有哪些?主要方法?
最常用的集合類是 List 和 Map。 List 的具體實現(xiàn)包括 ArrayList 和 Vector,它們是可變大小的列表,比較適合構建、存儲和操作任何類型對象的元素列表。 List 適用于按數(shù)值索引訪問元素的情形。 Map 提供了一個更通用的元素存儲方法。 Map 集合類用于存儲元素對(稱作“鍵”和“值”),其中每個鍵映射到一個值。
4、描述一下JVM加載class文件的原理機制?
JVM中類的裝載是由ClassLoader和它的子類來實現(xiàn)的,Java ClassLoader 是一個重要的Java運行時系統(tǒng)組件。它負責在運行時查找和裝入類文件的類。
5、char型變量中能不能存貯一個中文漢字?為什么?
能夠定義成為一個中文的,因為java中以unicode編碼,一個char占16個字節(jié),所以放一個中文是沒問題的
程序員經(jīng)典面試題及答案篇2
1、線程有幾種實現(xiàn)方法,都是什么?同步有幾種實現(xiàn)方法,都是什么?
多線程有兩種實現(xiàn)方法,分別是繼承Thread類與實現(xiàn)Runnable接口 ,同步的實現(xiàn)方面有兩種,分別是synchronized,wait與notify
2、JSP的內(nèi)置對象及方法。
request表示HttpServletRequest對象。它包含了有關瀏覽器請求的信息,并且提供了 幾個用于獲取cookie, header, 和session數(shù)據(jù)的有用的方法,response表示HttpServletResponse對象,并提供了幾個用于設置送回 瀏覽器的響應的方法(如cookies,頭信息等)
out對象是javax.jsp.JspWriter的一個實例,并提供了幾個方法使你能 用于向瀏覽器回送輸出結果。 pageContext表示一個javax.servlet.jsp.PageContext對象。它是用于方便存取各種范圍的名字空間、servlet 相關的對象的API,并且包裝了通用的servlet相關功能的方法。 session表示一個請求的javax.servlet.http.HttpSession對象。Session可以存貯用戶的狀態(tài)信息 applicaton 表示一個javax.servle.ServletContext對象。這有助于查找有關servlet引擎和servlet環(huán)境的信息 config表示一個javax.servlet.ServletConfig對象。該對象用于存取servlet實例的初始化參數(shù)。 page表示從該頁面產(chǎn)生的一個servlet實例
程序員經(jīng)典面試題及答案篇3
1、線程的基本概念、線程的基本狀態(tài)以及狀態(tài)之間的關系?
線程指在程序執(zhí)行過程中,能夠執(zhí)行程序代碼的一個執(zhí)行單位,每個程序至少都有一個線程,也就是程序本身。
Java中的線程有四種狀態(tài)分別是:運行、就緒、掛起、結束。
2、JSP的常用指令
<%@page language=”java” contenType=”text/html;charset=gb2312” session=”true” buffer=”64kb” autoFlush=”true” isThreadSafe=”true” info=”text” errorPage=”error.jsp” isErrorPage=”true” isELIgnored=”true” pageEncoding=”gb2312” import=”java.sql.*”%>isErrorPage(是否能使用Exception對象),isELIgnored(是否忽略表達 式) <%@include file=”filename”%><%@taglib prefix=”c”uri=”http://……”%>
3、什么情況下調(diào)用doGet()和doPost()?
Jsp頁面中的form標簽里的method屬性為get時調(diào)用doGet(),為post時調(diào)用doPost()。