Edzy_Java

            BlogJava :: 首頁 ::  ::  ::  :: 管理 ::
            58 隨筆 :: 12 文章 :: 11 評論 :: 0 Trackbacks

          JAVA華為面試題

          JAVA方面
          1 面向對象的特征有哪些方面

          2 String是最基本的數據類型嗎?

          3 int 和 Integer 有什么區別

          4 String 和StringBuffer的區別

          5運行時異常與一般異常有何異同?
          異常表示程序運行過程中可能出現的非正常狀態,運行時異常表示虛擬機的通常操作中可能遇到的異常,是一種常見運行錯誤。java編譯器要求方法必須聲明拋出可能發生的非運行時異常,但是并不要求必須聲明拋出未被捕獲的運行時異常。

          6 說出一些常用的類,包,接口,請各舉5個

          7 說出ArrayList,Vector, LinkedList的存儲性能和特性
          ArrayList和Vector都是使用數組方式存儲數據,此數組元素數大于實際存儲的數據以便增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉及數組元素移動等內存操作,所以索引數據快而插入數據慢,Vector由于使用了synchronized方法(線程安全),通常性能上較ArrayList差,而LinkedList使用雙向鏈表實現存儲,按序號索引數據需要進行前向或后向遍歷,但是插入數據時只需要記錄本項的前后項即可,所以插入速度較快。

          8設計4個線程,其中兩個線程每次對j增加1,另外兩個線程對j每次減少1。寫出程序。
          以下程序使用內部類實現線程,對j增減的時候沒有考慮順序問題。
          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<100;i++){
          ??? inc();
          ??? }
          ? }
          }
          class Dec implements Runnable{
          ? public void run(){
          ??? for(int i=0;i<100;i++){
          ??? dec();
          ??? }
          ? }
          }
          }

          9. JSP的內置對象及方法。
          request request表示HttpServletRequest對象。它包含了有關瀏覽器請求的信息,并且提供了幾個用于獲取cookie, header, 和session數據的有用的方法。

          response response表示HttpServletResponse對象,并提供了幾個用于設置送回 瀏覽器的響應的方法(如cookies,頭信息等)

          out out 對象是javax.jsp.JspWriter的一個實例,并提供了幾個方法使你能用于向瀏覽器回送輸出結果。

          pageContext pageContext表示一個javax.servlet.jsp.PageContext對象。它是用于方便存取各種范圍的名字空間、servlet相關的對象的API,并且包裝了通用的servlet相關功能的方法。

          session session表示一個請求的javax.servlet.http.HttpSession對象。Session可以存貯用戶的狀態信息

          application applicaton 表示一個javax.servle.ServletContext對象。這有助于查找有關servlet引擎和servlet環境的信息

          config config表示一個javax.servlet.ServletConfig對象。該對象用于存取servlet實例的初始化參數。

          page page表示從該頁面產生的一個servlet實例

          10.用socket通訊寫出客戶端和服務器端的通訊,要求客戶發送數據后能夠回顯相同的數據。
          參見課程中socket通訊例子。

          11說出Servlet的生命周期,并說出Servlet和CGI的區別。
          Servlet被服務器實例化后,容器運行其init方法,請求到達時運行其service方法,service方法自動派遣運行與請求對應的doXXX方法(doGet,doPost)等,當服務器決定將實例銷毀的時候調用其destroy方法。
          與cgi的區別在于servlet處于服務器進程中,它通過多線程方式運行其service方法,一個實例可以服務于多個請求,并且其實例一般不會銷毀,而CGI對每個請求都產生新的進程,服務完成后就銷毀,所以效率上低于servlet。

          12.EJB是基于哪些技術實現的?并說出SessionBean和EntityBean的區別,StatefulBean和StatelessBean的區別。

          13.EJB包括(SessionBean,EntityBean)說出他們的生命周期,及如何管理事務的?

          14.說出數據連接池的工作機制是什么?

          15同步和異步有和異同,在什么情況下分別使用他們?舉例說明。

          16應用服務器有那些?

          17你所知道的集合類都有哪些?主要方法?

          18給你一個:驅動程序A,數據源名稱為B,用戶名稱為C,密碼為D,數據庫表為T,請用JDBC檢索出表T的所有數據。

          19.說出在JSP頁面里是怎么分頁的?
          頁面需要保存以下參數:
          總行數:根據sql語句得到總行數
          每頁顯示行數:設定值
          當前頁數:請求參數
          頁面根據當前頁數和每頁行數計算出當前頁第一行行數,定位結果集到此行,對結果集取出每頁顯示行數的行即可。

          數據庫方面:

          1. 存儲過程和函數的區別
          存儲過程是用戶定義的一系列sql語句的集合,涉及特定表或其它對象的任務,用戶可以調用存儲過程,而函數通常是數據庫已定義的方法,它接收參數并返回某種類型的值并且不涉及特定用戶表。

          2. 事務是什么?
          事務是作為一個邏輯單元執行的一系列操作,一個邏輯工作單元必須有四個屬性,稱為 ACID(原子性、一致性、隔離性和持久性)屬性,只有這樣才能成為一個事務:
          原子性
          事務必須是原子工作單元;對于其數據修改,要么全都執行,要么全都不執行。
          一致性
          事務在完成時,必須使所有的數據都保持一致狀態。在相關數據庫中,所有規則都必須應用于事務的修改,以保持所有數據的完整性。事務結束時,所有的內部數據結構(如 B 樹索引或雙向鏈表)都必須是正確的。
          隔離性
          由并發事務所作的修改必須與任何其它并發事務所作的修改隔離。事務查看數據時數據所處的狀態,要么是另一并發事務修改它之前的狀態,要么是另一事務修改它之后的狀態,事務不會查看中間狀態的數據。這稱為可串行性,因為它能夠重新裝載起始數據,并且重播一系列事務,以使數據結束時的狀態與原始事務執行的狀態相同。
          持久性
          事務完成之后,它對于系統的影響是永久性的。該修改即使出現系統故障也將一直保持。

          3. 游標的作用?如何知道游標已經到了最后?
          游標用于定位結果集的行,通過判斷全局變量@@FETCH_STATUS可以判斷是否到了最后,通常此變量不等于0表示出錯或到了最后。

          4. 觸發器分為事前觸發和事后觸發,這兩種觸發有和區別。語句級觸發和行級觸發有何區別。
          事前觸發器運行于觸發事件發生之前,而事后觸發器運行于觸發事件發生之后。通常事前觸發器可以獲取事件之前和新的字段值。
          語句級觸發器可以在語句執行前或后執行,而行級觸發在觸發器所影響的每一行觸發一次。


          中遠面試題

          一、JAVA

          1、面向對象的三個基本特征

          2、方法重載和方法重寫的概念和區別

          3、接口和內部類、抽象類的特性

          4、文件讀寫的基本類

          5、串行化的注意事項以及如何實現串行化

          6、線程的基本概念、線程的基本狀態以及狀態之間的關系

          7、線程的同步、如何實現線程的同步

          8、幾種常用的數據結構及內部實現原理。

          9、Socket通信(TCP、UDP區別及Java實現方式)

          10、Java的事件委托機制和垃圾回收機制

          11、JDBC調用數據庫的基本步驟

          12、解析XML文件的幾種方式和區別

          13、Java四種基本權限的定義

          14、Java的國際化

          二、JSP

          1、至少要能說出7個隱含對象以及他們的區別

          2、forward 和redirect的區別

          3、JSP的常用指令

          三、servlet

          1、什么情況下調用doGet()和doPost()?

          2、servlet的init()方法和service()方法的區別

          3、servlet的生命周期

          4、如何現實servlet的單線程模式

          5、servlet的配置

          6、四種會話跟蹤技術

          四、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、激活機制
          以Statefull Session Bean 為例:其Cache大小決定了內存中可以同時存在的Bean實例的數量,根據MRU或NRU算法,實例在激活和去激活狀態之間遷移,激活機制是當客戶端調用某個EJB實例業務方法時,如果對應EJB Object發現自己沒有綁定對應的Bean實例則從其去激活Bean存儲中(通過序列化機制存儲實例)回復(激活)此實例。狀態變遷前會調用對應的ejbActive和ejbPassivate方法。

          6、remote接口和home接口主要作用
          remote接口定義了業務方法,用于EJB客戶端調用業務方法
          home接口是EJB工廠用于創建和移除查找EJB實例

          7、客服端調用EJB對象的幾個基本步驟
          (1)設置JNDI服務工廠以及JNDI服務地址系統屬性
          (2)查找Home接口
          (3)從Home接口調用Create方法創建Remote接口
          (4)通過Remote接口調用其業務方法

          五、數據庫

          1、存儲過程的編寫

          2、基本的SQL語句

          六、weblogic

          1、 如何給weblogic指定大小的內存?
          在啟動Weblogic的腳本中(位于所在Domian對應服務器目錄下的startServerName),增加set MEM_ARGS=-Xms32m -Xmx200m,可以調整最小內存為32M,最大200M

          2、 如何設定的weblogic的熱啟動模式(開發模式)與產品發布模式?
          可以在管理控制臺中修改對應服務器的啟動模式為開發或產品模式之一?;蛘咝薷姆盏膯游募蛘遚ommenv文件,增加set PRODUCTION_MODE=true。

          3、 如何啟動時不需輸入用戶名與密碼?
          修改服務啟動文件,增加 WLS_USER和WLS_PW項。也可以在boot.properties文件中增加加密過的用戶名和密碼.

          4、 在weblogic管理制臺中對一個應用域(或者說是一個網站,Domain)進行jms及ejb或連接池等相關信息進行配置后,實際保存在什么文件中?
          保存在此Domain的config.xml文件中,它是服務器的核心配置文件。

          5、 說說weblogic中一個Domain的缺省目錄結構?比如要將一個簡單的helloWorld.jsp放入何目錄下,然的在瀏覽器上就可打入http://主機:端口號//helloword.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,裝載獲得的密鑰和數字證書??梢耘渲么薙SL連接是單向還是雙向的。

          8、在weblogic中發布ejb需涉及到哪些配置文件
          不同類型的EJB涉及的配置文件不同,都涉及到的配置文件包括ejb-jar.xml,weblogic-ejb-jar.xmlCMP實體Bean一般還需要weblogic-cmp-rdbms-jar.xml

          9、EJB需直接實現它的業務接口或Home接口嗎,請簡述理由.
          遠程接口和Home接口不需要直接實現,他們的實現代碼是由服務器產生的,程序運行中對應實現類會作為對應接口類型的實例被使用。

          10、說說在weblogic中開發消息Bean時的persistent與non-persisten的差別
          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架構的設計好壞將直接影響系統的性能、可擴展性、可維護性、組件可重用性及開發效率。項目越復雜,項目隊伍越龐大則越能體現良好設計的重要性

          posted on 2006-11-16 20:45 lbfeng 閱讀(1014) 評論(0)  編輯  收藏 所屬分類: 專業考試題庫
          主站蜘蛛池模板: 嘉禾县| 张家港市| 宜宾市| 墨竹工卡县| 拉萨市| 樟树市| 西昌市| 惠东县| 兖州市| 米易县| 定南县| 崇文区| 子长县| 方城县| 新巴尔虎右旗| 麻城市| 永新县| 喀什市| 新乡县| 巨鹿县| 东阿县| 福海县| 大石桥市| 奉节县| 容城县| 广德县| 东兰县| 阿巴嘎旗| 临湘市| 奉节县| 云龙县| 阿勒泰市| 陈巴尔虎旗| 嘉鱼县| 凭祥市| 贵阳市| 商水县| 辉县市| 闵行区| 武邑县| 永寿县|