yxhxj2006

          常用鏈接

          統計

          最新評論

          java簡介(問答模式)

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

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


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


          網站導航:
           
          主站蜘蛛池模板: 元氏县| 汤原县| 九台市| 高清| 左权县| 通州市| 孟连| 都昌县| 盐津县| 巨鹿县| 武穴市| 工布江达县| 昌宁县| 阜宁县| 德兴市| 鄢陵县| 炉霍县| 济源市| 石狮市| 长宁县| 临澧县| 襄城县| 宣化县| 恭城| 渑池县| 吴江市| 富裕县| 东乡| 西青区| 彭水| 喀喇沁旗| 攀枝花市| 桂阳县| 南京市| 瓦房店市| 库伦旗| 龙门县| 太谷县| 绥江县| 海阳市| 天峻县|