Edzy_Java

            BlogJava :: 首頁 ::  ::  ::  :: 管理 ::
            58 隨筆 :: 12 文章 :: 11 評(píng)論 :: 0 Trackbacks

          JAVA華為面試題

          JAVA方面
          1 面向?qū)ο蟮奶卣饔心男┓矫?

          2 String是最基本的數(shù)據(jù)類型嗎?

          3 int 和 Integer 有什么區(qū)別

          4 String 和StringBuffer的區(qū)別

          5運(yùn)行時(shí)異常與一般異常有何異同?
          異常表示程序運(yùn)行過程中可能出現(xiàn)的非正常狀態(tài),運(yùn)行時(shí)異常表示虛擬機(jī)的通常操作中可能遇到的異常,是一種常見運(yùn)行錯(cuò)誤。java編譯器要求方法必須聲明拋出可能發(fā)生的非運(yùn)行時(shí)異常,但是并不要求必須聲明拋出未被捕獲的運(yùn)行時(shí)異常。

          6 說出一些常用的類,包,接口,請(qǐng)各舉5個(gè)

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

          8設(shè)計(jì)4個(gè)線程,其中兩個(gè)線程每次對(duì)j增加1,另外兩個(gè)線程對(duì)j每次減少1。寫出程序。
          以下程序使用內(nèi)部類實(shí)現(xiàn)線程,對(duì)j增減的時(shí)候沒有考慮順序問題。
          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的內(nèi)置對(duì)象及方法。
          request request表示HttpServletRequest對(duì)象。它包含了有關(guān)瀏覽器請(qǐng)求的信息,并且提供了幾個(gè)用于獲取cookie, header, 和session數(shù)據(jù)的有用的方法。

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

          out out 對(duì)象是javax.jsp.JspWriter的一個(gè)實(shí)例,并提供了幾個(gè)方法使你能用于向?yàn)g覽器回送輸出結(jié)果。

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

          session session表示一個(gè)請(qǐng)求的javax.servlet.http.HttpSession對(duì)象。Session可以存貯用戶的狀態(tài)信息

          application applicaton 表示一個(gè)javax.servle.ServletContext對(duì)象。這有助于查找有關(guān)servlet引擎和servlet環(huán)境的信息

          config config表示一個(gè)javax.servlet.ServletConfig對(duì)象。該對(duì)象用于存取servlet實(shí)例的初始化參數(shù)。

          page page表示從該頁面產(chǎn)生的一個(gè)servlet實(shí)例

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

          11說出Servlet的生命周期,并說出Servlet和CGI的區(qū)別。
          Servlet被服務(wù)器實(shí)例化后,容器運(yùn)行其init方法,請(qǐng)求到達(dá)時(shí)運(yùn)行其service方法,service方法自動(dòng)派遣運(yùn)行與請(qǐng)求對(duì)應(yīng)的doXXX方法(doGet,doPost)等,當(dāng)服務(wù)器決定將實(shí)例銷毀的時(shí)候調(diào)用其destroy方法。
          與cgi的區(qū)別在于servlet處于服務(wù)器進(jìn)程中,它通過多線程方式運(yùn)行其service方法,一個(gè)實(shí)例可以服務(wù)于多個(gè)請(qǐng)求,并且其實(shí)例一般不會(huì)銷毀,而CGI對(duì)每個(gè)請(qǐng)求都產(chǎn)生新的進(jìn)程,服務(wù)完成后就銷毀,所以效率上低于servlet。

          12.EJB是基于哪些技術(shù)實(shí)現(xiàn)的?并說出SessionBean和EntityBean的區(qū)別,StatefulBean和StatelessBean的區(qū)別。

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

          14.說出數(shù)據(jù)連接池的工作機(jī)制是什么?

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

          16應(yīng)用服務(wù)器有那些?

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

          18給你一個(gè):驅(qū)動(dòng)程序A,數(shù)據(jù)源名稱為B,用戶名稱為C,密碼為D,數(shù)據(jù)庫表為T,請(qǐng)用JDBC檢索出表T的所有數(shù)據(jù)。

          19.說出在JSP頁面里是怎么分頁的?
          頁面需要保存以下參數(shù):
          總行數(shù):根據(jù)sql語句得到總行數(shù)
          每頁顯示行數(shù):設(shè)定值
          當(dāng)前頁數(shù):請(qǐng)求參數(shù)
          頁面根據(jù)當(dāng)前頁數(shù)和每頁行數(shù)計(jì)算出當(dāng)前頁第一行行數(shù),定位結(jié)果集到此行,對(duì)結(jié)果集取出每頁顯示行數(shù)的行即可。

          數(shù)據(jù)庫方面:

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

          2. 事務(wù)是什么?
          事務(wù)是作為一個(gè)邏輯單元執(zhí)行的一系列操作,一個(gè)邏輯工作單元必須有四個(gè)屬性,稱為 ACID(原子性、一致性、隔離性和持久性)屬性,只有這樣才能成為一個(gè)事務(wù):
          原子性
          事務(wù)必須是原子工作單元;對(duì)于其數(shù)據(jù)修改,要么全都執(zhí)行,要么全都不執(zhí)行。
          一致性
          事務(wù)在完成時(shí),必須使所有的數(shù)據(jù)都保持一致狀態(tài)。在相關(guān)數(shù)據(jù)庫中,所有規(guī)則都必須應(yīng)用于事務(wù)的修改,以保持所有數(shù)據(jù)的完整性。事務(wù)結(jié)束時(shí),所有的內(nèi)部數(shù)據(jù)結(jié)構(gòu)(如 B 樹索引或雙向鏈表)都必須是正確的。
          隔離性
          由并發(fā)事務(wù)所作的修改必須與任何其它并發(fā)事務(wù)所作的修改隔離。事務(wù)查看數(shù)據(jù)時(shí)數(shù)據(jù)所處的狀態(tài),要么是另一并發(fā)事務(wù)修改它之前的狀態(tài),要么是另一事務(wù)修改它之后的狀態(tài),事務(wù)不會(huì)查看中間狀態(tài)的數(shù)據(jù)。這稱為可串行性,因?yàn)樗軌蛑匦卵b載起始數(shù)據(jù),并且重播一系列事務(wù),以使數(shù)據(jù)結(jié)束時(shí)的狀態(tài)與原始事務(wù)執(zhí)行的狀態(tài)相同。
          持久性
          事務(wù)完成之后,它對(duì)于系統(tǒng)的影響是永久性的。該修改即使出現(xiàn)系統(tǒng)故障也將一直保持。

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

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


          中遠(yuǎn)面試題

          一、JAVA

          1、面向?qū)ο蟮娜齻€(gè)基本特征

          2、方法重載和方法重寫的概念和區(qū)別

          3、接口和內(nèi)部類、抽象類的特性

          4、文件讀寫的基本類

          5、串行化的注意事項(xiàng)以及如何實(shí)現(xiàn)串行化

          6、線程的基本概念、線程的基本狀態(tài)以及狀態(tài)之間的關(guān)系

          7、線程的同步、如何實(shí)現(xiàn)線程的同步

          8、幾種常用的數(shù)據(jù)結(jié)構(gòu)及內(nèi)部實(shí)現(xiàn)原理。

          9、Socket通信(TCP、UDP區(qū)別及Java實(shí)現(xiàn)方式)

          10、Java的事件委托機(jī)制和垃圾回收機(jī)制

          11、JDBC調(diào)用數(shù)據(jù)庫的基本步驟

          12、解析XML文件的幾種方式和區(qū)別

          13、Java四種基本權(quán)限的定義

          14、Java的國際化

          二、JSP

          1、至少要能說出7個(gè)隱含對(duì)象以及他們的區(qū)別

          2、forward 和redirect的區(qū)別

          3、JSP的常用指令

          三、servlet

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

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

          3、servlet的生命周期

          4、如何現(xiàn)實(shí)servlet的單線程模式

          5、servlet的配置

          6、四種會(huì)話跟蹤技術(shù)

          四、EJB

          1、EJB容器提供的服務(wù)
          主要提供聲明周期管理、代碼產(chǎn)生、持續(xù)性管理、安全、事務(wù)管理、鎖和并發(fā)行管理等服務(wù)。

          2、EJB的角色和三個(gè)對(duì)象
          EJB角色主要包括Bean開發(fā)者 應(yīng)用組裝者 部署者 系統(tǒng)管理員 EJB容器提供者 EJB服務(wù)器提供者
          三個(gè)對(duì)象是Remote(Local)接口、Home(LocalHome)接口,Bean類

          3、EJB的幾種類型
          會(huì)話(Session)Bean ,實(shí)體(Entity)Bean 消息驅(qū)動(dòng)的(Message Driven)Bean
          會(huì)話Bean又可分為有狀態(tài)(Stateful)和無狀態(tài)(Stateless)兩種
          實(shí)體Bean可分為Bean管理的持續(xù)性(BMP)和容器管理的持續(xù)性(CMP)兩種

          4、bean 實(shí)例的生命周期
          對(duì)于Stateless Session Bean、Entity Bean、Message Driven Bean一般存在緩沖池管理,而對(duì)于Entity Bean和Statefull Session Bean存在Cache管理,通常包含創(chuàng)建實(shí)例,設(shè)置上下文、創(chuàng)建EJB Object(create)、業(yè)務(wù)方法調(diào)用、remove等過程,對(duì)于存在緩沖池管理的Bean,在create之后實(shí)例并不從內(nèi)存清除,而是采用緩沖池調(diào)度機(jī)制不斷重用實(shí)例,而對(duì)于存在Cache管理的Bean則通過激活和去激活機(jī)制保持Bean的狀態(tài)并限制內(nèi)存中實(shí)例數(shù)量。

          5、激活機(jī)制
          以Statefull Session Bean 為例:其Cache大小決定了內(nèi)存中可以同時(shí)存在的Bean實(shí)例的數(shù)量,根據(jù)MRU或NRU算法,實(shí)例在激活和去激活狀態(tài)之間遷移,激活機(jī)制是當(dāng)客戶端調(diào)用某個(gè)EJB實(shí)例業(yè)務(wù)方法時(shí),如果對(duì)應(yīng)EJB Object發(fā)現(xiàn)自己沒有綁定對(duì)應(yīng)的Bean實(shí)例則從其去激活Bean存儲(chǔ)中(通過序列化機(jī)制存儲(chǔ)實(shí)例)回復(fù)(激活)此實(shí)例。狀態(tài)變遷前會(huì)調(diào)用對(duì)應(yīng)的ejbActive和ejbPassivate方法。

          6、remote接口和home接口主要作用
          remote接口定義了業(yè)務(wù)方法,用于EJB客戶端調(diào)用業(yè)務(wù)方法
          home接口是EJB工廠用于創(chuàng)建和移除查找EJB實(shí)例

          7、客服端調(diào)用EJB對(duì)象的幾個(gè)基本步驟
          (1)設(shè)置JNDI服務(wù)工廠以及JNDI服務(wù)地址系統(tǒng)屬性
          (2)查找Home接口
          (3)從Home接口調(diào)用Create方法創(chuàng)建Remote接口
          (4)通過Remote接口調(diào)用其業(yè)務(wù)方法

          五、數(shù)據(jù)庫

          1、存儲(chǔ)過程的編寫

          2、基本的SQL語句

          六、weblogic

          1、 如何給weblogic指定大小的內(nèi)存?
          在啟動(dòng)Weblogic的腳本中(位于所在Domian對(duì)應(yīng)服務(wù)器目錄下的startServerName),增加set MEM_ARGS=-Xms32m -Xmx200m,可以調(diào)整最小內(nèi)存為32M,最大200M

          2、 如何設(shè)定的weblogic的熱啟動(dòng)模式(開發(fā)模式)與產(chǎn)品發(fā)布模式?
          可以在管理控制臺(tái)中修改對(duì)應(yīng)服務(wù)器的啟動(dòng)模式為開發(fā)或產(chǎn)品模式之一。或者修改服務(wù)的啟動(dòng)文件或者commenv文件,增加set PRODUCTION_MODE=true。

          3、 如何啟動(dòng)時(shí)不需輸入用戶名與密碼?
          修改服務(wù)啟動(dòng)文件,增加 WLS_USER和WLS_PW項(xiàng)。也可以在boot.properties文件中增加加密過的用戶名和密碼.

          4、 在weblogic管理制臺(tái)中對(duì)一個(gè)應(yīng)用域(或者說是一個(gè)網(wǎng)站,Domain)進(jìn)行jms及ejb或連接池等相關(guān)信息進(jìn)行配置后,實(shí)際保存在什么文件中?
          保存在此Domain的config.xml文件中,它是服務(wù)器的核心配置文件。

          5、 說說weblogic中一個(gè)Domain的缺省目錄結(jié)構(gòu)?比如要將一個(gè)簡單的helloWorld.jsp放入何目錄下,然的在瀏覽器上就可打入http://主機(jī):端口號(hào)//helloword.jsp就可以看到運(yùn)行結(jié)果了? 又比如這其中用到了一個(gè)自己寫的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)用將可以實(shí)現(xiàn)在瀏覽器上無需輸入應(yīng)用名。

          6、 如何查看在weblogic中已經(jīng)發(fā)布的EJB?
          可以使用管理控制臺(tái),在它的Deployment中可以查看所有已發(fā)布的EJB

          7、 如何在weblogic中進(jìn)行ssl配置與客戶端的認(rèn)證配置或說說j2ee(標(biāo)準(zhǔn))進(jìn)行ssl的配置
          缺省安裝中使用DemoIdentity.jks和DemoTrust.jks KeyStore實(shí)現(xiàn)SSL,需要配置服務(wù)器使用Enable SSL,配置其端口,在產(chǎn)品模式下需要從CA獲取私有密鑰和數(shù)字證書,創(chuàng)建identity和trust keystore,裝載獲得的密鑰和數(shù)字證書。可以配置此SSL連接是單向還是雙向的。

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

          9、EJB需直接實(shí)現(xiàn)它的業(yè)務(wù)接口或Home接口嗎,請(qǐng)簡述理由.
          遠(yuǎn)程接口和Home接口不需要直接實(shí)現(xiàn),他們的實(shí)現(xiàn)代碼是由服務(wù)器產(chǎn)生的,程序運(yùn)行中對(duì)應(yīng)實(shí)現(xiàn)類會(huì)作為對(duì)應(yīng)接口類型的實(shí)例被使用。

          10、說說在weblogic中開發(fā)消息Bean時(shí)的persistent與non-persisten的差別
          persistent方式的MDB可以保證消息傳遞的可靠性,也就是如果EJB容器出現(xiàn)問題而JMS服務(wù)器依然會(huì)將消息在此MDB可用的時(shí)候發(fā)送過來,而non-persistent方式的消息將被丟棄。

          11、說說你所熟悉或聽說過的j2ee中的幾種常用模式?及對(duì)設(shè)計(jì)模式的一些看法
          Session Facade Pattern:使用SessionBean訪問EntityBean
          Message Facade Pattern:實(shí)現(xiàn)異步調(diào)用
          EJB Command Pattern:使用Command JavaBeans取代SessionBean,實(shí)現(xiàn)輕量級(jí)訪問
          Data Transfer Object Factory:通過DTO Factory簡化EntityBean數(shù)據(jù)提供特性
          Generic Attribute Access:通過AttibuteAccess接口簡化EntityBean數(shù)據(jù)提供特性
          Business Interface:通過遠(yuǎn)程(本地)接口和Bean類實(shí)現(xiàn)相同接口規(guī)范業(yè)務(wù)邏輯一致性
          EJB架構(gòu)的設(shè)計(jì)好壞將直接影響系統(tǒng)的性能、可擴(kuò)展性、可維護(hù)性、組件可重用性及開發(fā)效率。項(xiàng)目越復(fù)雜,項(xiàng)目隊(duì)伍越龐大則越能體現(xiàn)良好設(shè)計(jì)的重要性

          posted on 2006-11-16 20:45 lbfeng 閱讀(1013) 評(píng)論(0)  編輯  收藏 所屬分類: 專業(yè)考試題庫
          主站蜘蛛池模板: 什邡市| 大连市| 凤翔县| 碌曲县| 高唐县| 琼中| 乌拉特前旗| 神木县| 萨迦县| 手机| 蕉岭县| 柘城县| 双辽市| 大理市| 鹤壁市| 黑河市| 隆尧县| 彭阳县| 襄樊市| 和平区| 澄迈县| 元江| 敦化市| 公安县| 玉树县| 新巴尔虎右旗| 临夏县| 土默特左旗| 谢通门县| 陇南市| 乌鲁木齐市| 达拉特旗| 宜丰县| 桂平市| 内乡县| 上栗县| 肃宁县| 大理市| 湖州市| 舒兰市| 祥云县|