yxhxj2006

          常用鏈接

          統(tǒng)計

          最新評論

          java簡介(問答模式)

          一、 JAVA語言 
          1、 面向?qū)ο蟮娜齻€基本特征 
          答:繼承、封裝、多態(tài) 
          2、 方法重載和方法重寫的概念和區(qū)別 
          答:方法重載:方法名稱相同但方法內(nèi)的參數(shù)個數(shù)和參數(shù)類型不一樣。 
          方法重寫:在類的繼承中,當子類的成員變量與父類的成員變量同名時,子類的成員變量會隱藏父類的成員變量;當子類的方法與父類的方法同名,參數(shù)列表、反回值類型相同時,子類的方法將覆蓋父類的方法,當重寫的方法在子類的對象被調(diào)用時,他總是參考在子類中的定義的方法就被隱藏。 
          3、 接口和內(nèi)部類、抽象類的特征 
          答:接口:在一個類里,只有申明沒有實現(xiàn)。 
          內(nèi)部類:是在一個類的內(nèi)部定義的一個類 
          抽象類:是以abstract 定義的,里面至少有一個抽象方法。 
          4、 文件讀寫的基本類 
          答:File Reader 類和FileWriter類分別繼承自Reader類和Writer類。FileReader類用于讀取文件,F(xiàn)ile Writer類用于將數(shù)據(jù)寫入文件,這兩各類在使用前,都必須要調(diào)用其構(gòu)造方法創(chuàng)建相應(yīng)的對象,然后調(diào)用相應(yīng)的read()或 write()方法。 
          5、 串行化的注意事項以及如何實現(xiàn)串行化 
          答:如果有循環(huán)引用是不可以串行化的。對象輸出流的WriteObject方法和 對象輸入流的ReadObect 方法 
          6、 線程的基本概念、線程的本狀態(tài)以及狀態(tài)之間的關(guān)系 
          STOP(),SUSPENG() 
           STOP的本意是中止一個線程。中止的線程的問題根源不在于object locks,而是object的狀態(tài)。當stop()中止一個線程時,會釋放線程持有的所有l(wèi)ocks。但你并不知道當時的代碼正在做什么。 
           Suspend() 原意是暫時懸掛起一個線程對應(yīng)的是resume()函數(shù),用來恢復(fù)先前被懸掛起的線程。它并不釋放將被懸掛之線程所有的LOCKS。 
          7、 線程的同步、如何實現(xiàn)線程的同步 
          答:當兩個或多個線程同時訪問同一個變量,并且以個線程需要修改這個變量。就要用到線程同步。在Java 中,同步是通過 synchronized 關(guān)鍵字來定義的。 諾是想同步化某程序段,可以使用 synchronized(object){}方法,其中{}內(nèi)的程序語句被同步化。 
          8、 幾種常用的數(shù)據(jù)結(jié)構(gòu)以及內(nèi)部實現(xiàn)的原理 
          答:list map使用紅黑樹來實現(xiàn)的 set 。 
          9、 socket通信(tcp/udp區(qū)別及JAVA的實現(xiàn)方式) 
          10、 JAVA的事件委托機制和垃圾回收機制 
          11、 JDBC調(diào)用數(shù)據(jù)庫的基本步驟 
          答:注冊驅(qū)動程序 
          生成連接 
          創(chuàng)建Statement/PreparedStatement對象 
          執(zhí)行命令 
          查看結(jié)果 
          關(guān)閉連接,釋放資源 
          12、 解析XML文件的幾種方式和區(qū)別 
          答:Dom解析 在內(nèi)存中創(chuàng)建一個DOM樹,能隨機訪問文件內(nèi)容,也可以修改原文件內(nèi)容 
          SAX解析 線性解析,不能隨機訪問,也無法修改原文件 
          Dom解析要先用SAX解析創(chuàng)建DOM樹 
          13、 JAVA的四種基本權(quán)限的定義 
          14、 JAVA的國際化 
          答:Java 中提供了諾干國際化明感類,來實現(xiàn)國際化的。例如:dateformat timezone 等等。 
          二、 JSP 
          1、 至少能說出7個隱含對象以及他們的區(qū)別 
          答:request,response, session, application, out, page, exception, pageContext 
          2、 forward和rederect的區(qū)別 
          答:redirect重定向到另外一個頁面,重新開始一個請求 
          forward跳轉(zhuǎn)到另外一個頁面, 請求不斷開 
          3、 jsp的常用的命令 
          答:page, include, talib, forward, 
          三、 servlet 
          1、 什么情況下調(diào)用doget()和什么情況dopost 
          答:當表單提交時method設(shè)置的 是 get 就調(diào)用 doget 方法,如果是 post 就調(diào)用 dopost方法。 http get方法請求一頁面,調(diào)用doget() http post方法請求一頁面,調(diào)用dopost() 
          2、 servlet的init()方法和service()方法的區(qū)別 
          答:初始化時調(diào)用init()方法 
          有請求到達時調(diào)用service()方法,service()根據(jù)請求的類型,調(diào)用doget()或depost()等方法 
          3、 servlet的生命周期 
          答:init()----serviece()----destory() 
          4、 如何實現(xiàn)servlet的單線程模式 
          答:默認就是單線程的 
          5、 servlet的配置 
          6、 四種會話跟蹤技術(shù) 
          答:cookie 
          url重寫 
          session 
          隱藏域 
          四、 ejb 
          1、 ejb 容器提供的服務(wù) 
          答:主要提供聲明周期管理、代碼產(chǎn)生、持續(xù)性管理、安全、事務(wù)管理、鎖和并發(fā)行管理等服務(wù)。 
          2、 ejb的角色和三個對象 
          答:EJB角色主要包括Bean開發(fā)者 應(yīng)用組裝者 部署者 系統(tǒng)管理員 EJB容器提供者 EJB服務(wù)器提供者 
          三個對象是Remote(Local)接口、Home(LocalHome)接口,Bean類 
          3、 ejb的幾種類型 
          會話(Session)Bean ,實體(Entity)Bean 消息驅(qū)動的(Message Driven)Bean 
          會話Bean又可分為有狀態(tài)(Stateful)和無狀態(tài)(Stateless)兩種 
          實體Bean可分為Bean管理的持續(xù)性(BMP)和容器管理的持續(xù)性(CMP)兩種 
          4、 bean實例的生命周期 
          對于Stateless Session Bean、Entity Bean、Message Driven Bean一般存在緩沖池管理,而對于Entity Bean和Statefull Session Bean存在Cache管理,通常包含創(chuàng)建實例,設(shè)置上下文、創(chuàng)建EJB Object(create)、業(yè)務(wù)方法調(diào)用、remove等過程,對于存在緩沖池管理的Bean,在create之后實例并不從內(nèi)存清除,而是采用緩沖池調(diào)度機制不斷重用實例,而對于存在Cache管理的Bean則通過激活和去激活機制保持Bean的狀態(tài)并限制內(nèi)存中實例數(shù)量。 
          5、 remote接口和home接口主要作用 
          remote接口定義了業(yè)務(wù)方法,用于EJB客戶端調(diào)用業(yè)務(wù)方法 
          home接口是EJB工廠用于創(chuàng)建和移除查找EJB實例 
          7、 客服端口調(diào)用EJB對象的幾個基本步驟 
          答;設(shè)置JNDI服務(wù)工廠以及JNDI服務(wù)地址系統(tǒng)屬性 
          查找Home接口 
          從Home接口調(diào)用Create方法創(chuàng)建Remote接口 
          通過Remote接口調(diào)用其業(yè)務(wù)方法 
          五、數(shù)據(jù)庫 
          1、存儲過程的編寫 
          2、基本的SQL語句 
          六、 weblogic 
          1、 weblogic指定大小的內(nèi)存 
          答:在啟動Weblogic的腳本中(位于所在Domian對應(yīng)服務(wù)器目錄下的startServerName),增加set MEM_ARGS=-Xms32m -Xmx200m,可以調(diào)整最小內(nèi)存為32M,最大200M。 
          2、 如何設(shè)定weblogic的熱啟動模式(開發(fā)模式)與產(chǎn)品發(fā)布模式。 
          答:可以在管理控制臺中修改對應(yīng)服務(wù)器的啟動模式為開發(fā)或產(chǎn)品模式之一。或者修改服務(wù)的啟動文件或者commenv文件,增加set PRODUCTION_MODE=true。 
          3、 如何啟動時不需要用戶名和密碼。 
          答:修改服務(wù)啟動文件,增加 WLS_USER和WLS_PW項。也可以在boot.properties文件中增加加密過的用戶名和密碼. 
          4、 在weblogic管理控制臺中對一個應(yīng)用域(或者一個網(wǎng)站)進行jms以及ejb或連接池等相關(guān)信息進行配置,實際保存在什么文件中。 
          答:保存在此Domain的config.xml文件中,它是服務(wù)器的核心配置文件。 
          5、 說說webloic中一個Domain的缺省目錄結(jié)構(gòu)?比如要講一個簡單的helloword.jsp放入何目錄下,在瀏覽器上就可以打入http://主機:端口號//hello.jsp既可以看到結(jié)果,又比如其中用到了一個自己寫的javabean如何辦。 
          答:Domain目錄\服務(wù)器目錄\applications,將應(yīng)用目錄放在此目錄下將可以作為應(yīng)用訪問,如果是Web應(yīng)用,應(yīng)用目錄需要滿足Web應(yīng)用目錄要求,jsp文件可以直接放在應(yīng)用目錄中,Javabean需要放在應(yīng)用目錄的WEB-INF目錄的classes目錄中,設(shè)置服務(wù)器的缺省應(yīng)用將可以實現(xiàn)在瀏覽器上無需輸入應(yīng)用名。 
          6、 如何查看在weblogic中已發(fā)布的ejb。 
          答:可以使用管理控制臺,在它的Deployment中可以查看所有已發(fā)布的EJB 
          7、 如何在weblogic進行ssl的配置與客戶端的認證配置或說說j2ee進行ssl的配置。 
          答:缺省安裝中使用DemoIdentity.jks和DemoTrust.jks KeyStore實現(xiàn)SSL,需要配置服務(wù)器使用Enable SSL,配置其端口,在產(chǎn)品模式下需要從CA獲取私有密鑰和數(shù)字證書,創(chuàng)建identity和trust keystore,裝載獲得的密鑰和數(shù)字證書。可以配置此SSL連接是單向還是雙向的。 
          8、 在weblogic中發(fā)布ejb需要設(shè)計那些配置文件。 
          答:不同類型的EJB涉及的配置文件不同,都涉及到的配置文件包括ejb-jar.xml,weblogic-ejb-jar.xmlCMP實體Bean一般還需要weblogic-cmp-rdbms-jar.xml 
          9、 ejb需直接實現(xiàn)他的業(yè)務(wù)接口或home接口嗎?請簡述理由。 
          答:遠程接口和Home接口不需要直接實現(xiàn),他們的實現(xiàn)代碼是由服務(wù)器產(chǎn)生的,程序運行中對應(yīng)實現(xiàn)類會作為對應(yīng)接口類型的實例被使用。 
          10、 說說在weblogic中開發(fā)消息bean時persistenty與non-persistent的差別。 
          答:persistent方式的MDB可以保證消息傳遞的可靠性,也就是如果EJB容器出現(xiàn)問題而JMS服務(wù)器依然會將消息在此MDB可用的時候發(fā)送過來,而non-persistent方式的消息將被丟棄。 
          11、 說說你所熟悉的j2ee中的幾種常用的模式?以及對設(shè)計模式的一些看法。 
          答:Session Facade Pattern:使用SessionBean訪問EntityBean 
          Message Facade Pattern:實現(xiàn)異步調(diào)用 
          EJB Command Pattern:使用Command JavaBeans取代SessionBean,實現(xiàn)輕量級訪問 
          Data Transfer Object Factory:通過DTO Factory簡化EntityBean數(shù)據(jù)提供特性 
          Generic Attribute Access:通過AttibuteAccess接口簡化EntityBean數(shù)據(jù)提供特性 
          Business Interface:通過遠程(本地)接口和Bean類實現(xiàn)相同接口規(guī)范業(yè)務(wù)邏輯一致性 
          EJB架構(gòu)的設(shè)計好壞將直接影響系統(tǒng)的性能、可擴展性、可維護性、組件可重用性及開發(fā)效率。項目越復(fù)雜,項目隊伍越龐大則越能體現(xiàn)良好設(shè)計的重要性 
          12、 java的調(diào)試如何進行。 
          答:jdb 是java 的調(diào)試器,類似于 UNIX系統(tǒng)的調(diào)試器 dbx,jdb 使用 Java調(diào)試器應(yīng)用程序接口來完成對本地或遠程的Java調(diào)試器的調(diào)用工作。 
          一般是在要測試的代碼段想控制臺打印消息。 
          13、 java中對象之間的通訊采用什么方法。 
          答:直接調(diào)用另一對象方法來進行通訊以及數(shù)據(jù)的交換。 
          14、 applet訪問數(shù)據(jù)庫采用了什么底層機制。 
          15、 tcp/ip在連接是有幾次握手?釋放是有幾次握手? 
          答:建立連接是2次,釋放是3次。 
          16、 談?wù)勀銓wing mvc模式的理解? 
          答:Swing號稱是完全按照MVC的思路來進行設(shè)計的。在設(shè)計開始前,Swing的希望能夠達到的目標就包括: 
          模型驅(qū)動(Model-Driven)的編程方式。 
          提供一套單一的API,但是能夠支持多種視感(look-and-feel),為用戶提供不同的界面。 
          嚴格的說,Swing中的MVC實際上是MVC的一個變體:M-VC。 Swing中只顯示的定義了Model接口,而在一個UI對象中集成了視圖和控制器的部分機制。View和Control比較松散的交叉組合在一起,而更多的控制邏輯是在事件監(jiān)聽者部分引入的。 
          但是,這并沒有妨礙在Swing中體現(xiàn)MVC的精髓。事實上,在Swing的開發(fā)初期,Swing確實是按照標準的MVC模式來設(shè)計的,但是很快的問題就出現(xiàn)了:View和Controller實際上是緊密耦合的,很難作出一個能夠適應(yīng)不同View的一般化的Controller來,而且,一般也沒有很大的必要。 
          17、 Java中線程間怎么通訊?什么叫僵死線程? 
          答:線程之間可以通過管道進行通訊。 
          18、 Java程序怎么優(yōu)化? 
          答:提高JAVA的性能,一般考慮如下的四個主要方面: 
          (1) 程序設(shè)計的方法和模式 
          (2) JAVA布署的環(huán)境。 
          (3) JAVA應(yīng)用程序的實現(xiàn) 
          (4) 硬件和操作系統(tǒng) 
          為了提高JAVA程序的性能,需要遵循如下的六個步驟。 
          a) 明確對性能的具體要求 
          b) 了解當前程序的性能 
          c) 找到程序的性能瓶頸 
          d) 采取適當?shù)拇胧﹣硖岣咝阅?nbsp;
          e) 只進行某一方面的修改來提高性能 
          f) 返回到步驟c,繼續(xù)作類似的工作,一直達到要求的性能為止。 
          19、 Java中如何訪問數(shù)據(jù)庫? 
          答:Java 中是通過 JDBC 進行對數(shù)據(jù)庫的訪問的。 
          20、 Jdbc提供什么方法訪問數(shù)據(jù)庫? 
          答:1. 建立數(shù)據(jù)源 
          2. 建立連接 
          與數(shù)據(jù)庫建立連接的標準方法是調(diào)用方法Drivermanger.getConnection(String url,String user,String password)。Drivermanger類用于處理驅(qū)動程序的調(diào)入并且對新的數(shù)據(jù)庫連接提供支持。 
          3. 執(zhí)行SQL語句 
          JDBC提供了Statement類來發(fā)送SQL語句,Statement類的對象由createStatement方法創(chuàng)建;SQL語句發(fā)送后,返回的結(jié)果通常存放在一個ResultSet類的對象中,ResultSet可以看作是一個表,這個表包含由SQL返回的列名和相應(yīng)的值,ResultSet對象中維持了一個指向當前行的指針,通過一系列的getXXX方法,可以檢索當前行的各個列,從而顯示出來。 
          21、 在java中如何進行socket編程。 
          答:Sockets有兩種主要的操作方式:面向連接的和無連接的。 
          無連接的操作使用數(shù)據(jù)報協(xié)議.這個模式下的socket不需要連接一個目的的socket,它只是簡單地投出數(shù)據(jù)報.無連接的操作是快速的和高效的,但是數(shù)據(jù)安全性不佳. 
          面向連接的操作使用TCP協(xié)議.一個這個模式下的socket必須在發(fā)送數(shù)據(jù)之前與目的地的socket取得一個連接.一旦連接建立了,sockets就可以使用一個流接口:打開-讀-寫-關(guān)閉.所有的發(fā)送的信息都會在另一端以同樣的順序被接收.面向連接的操作比無連接的操作效率更低,但是數(shù)據(jù)的安全性更高. 
          在服務(wù)器,使用ServerSocket監(jiān)聽指定的端口,端口可以隨意指定(由于1024以下的端口通常屬于保留端口,在一些操作系統(tǒng)中不可以隨意使用,所以建議使用大于1024的端口),等待客戶連接請求,客戶連接后,會話產(chǎn)生;在完成會話后,關(guān)閉連接。 
          在客戶端,使用Socket對網(wǎng)絡(luò)上某一個服務(wù)器的某一個端口發(fā)出連接請求,一旦連接成功,打開會話;會話完成后,關(guān)閉Socket。客戶端不需要指定打開的端口,通常臨時的、動態(tài)的分配一個1024以上的端口。 
          22、 用java怎樣實現(xiàn)多線程?線程有那些狀態(tài)? 
          答:Java 中實現(xiàn)多線程的方法有兩種,一是繼承 java.lang 包中的 Thread 類,二是用戶自己的類實現(xiàn) Runnable 接口。 
          初始狀態(tài),就緒狀態(tài),阻塞狀態(tài),運行狀態(tài),死亡狀態(tài)。 
          23、 編譯java用那些命令? 
          答:javac編譯命令。Help命令可以幫助你得到你想要的命令。 
          24、 同時編譯java兩個類應(yīng)帶什么參數(shù)? 
          答:CLASSPATH 
          七、數(shù)據(jù)庫: 
          1、 動態(tài)查詢?nèi)绾螌崿F(xiàn)?表的結(jié)構(gòu)變化后,如果不需要修改程序,如何設(shè)計和實現(xiàn)查詢? 
          答:講查詢封裝進存儲過程中,通過調(diào)用存儲過程實現(xiàn)動態(tài)調(diào)用;表結(jié)構(gòu)發(fā)生變化后修改相應(yīng)的存儲過程即可再不修改程序的情況下實現(xiàn)查詢。 
          2、 如何優(yōu)化數(shù)據(jù)庫,如何提高數(shù)據(jù)庫的性能? 
          答:優(yōu)化數(shù)據(jù)庫主要是優(yōu)化查詢語句,通過高性能的查詢語句提高數(shù)據(jù)庫的性能。 
          3、 設(shè)計數(shù)據(jù)庫應(yīng)注意那些問題 
          答:首先應(yīng)盡量滿足三范式的要求,在一定程度上打破3范式的要求以提高數(shù)據(jù)庫的性能。 
          4、 表與表之間的關(guān)聯(lián)關(guān)系 
          答:分為3種:一對一、一對多、多對多。 
          5、 主鍵和外鍵的區(qū)別 
          答:主鍵在本表中是唯一的、不可唯空的,外鍵可以重復(fù)可以唯空;外鍵和另一張表的主鍵關(guān)聯(lián),不能創(chuàng)建對應(yīng)表中不存在的外鍵。 

          posted on 2012-09-20 00:49 奮斗成就男人 閱讀(185) 評論(0)  編輯  收藏


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 西城区| 东乡族自治县| 黄山市| 汉沽区| 图们市| 乌兰浩特市| 胶州市| 富川| 渝中区| 桐乡市| 鹤庆县| 金乡县| 城口县| 武强县| 岳阳县| 和林格尔县| 厦门市| 广西| 荥经县| 阳春市| 三原县| 铜川市| 宁陕县| 全椒县| 读书| 麻阳| 合阳县| 辽宁省| 崇文区| 南华县| 连山| 洛南县| 从化市| 昌乐县| 枣强县| 宜城市| 明星| 通城县| 叶城县| 伊川县| 岫岩|