漁人碼頭

          天行健,君子以自強不息。地勢坤,君子以厚德載物。
          posts - 12, comments - 16, trackbacks - 0, articles - 43
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          JAVA相關(guān)基礎(chǔ)知識4

          Posted on 2007-03-05 22:44 Fisher 閱讀(296) 評論(0)  編輯  收藏 所屬分類: Java面試題

          JAVA相關(guān)基礎(chǔ)知識355、

          char型變量中能不能存貯一個中文漢字?為什么?
          能夠定義成為一個中文的,因為java中以unicode編碼,一個char占16個字節(jié),所以放一個中文是沒問題的
          56、多線程有幾種實現(xiàn)方法,都是什么?同步有幾種實現(xiàn)方法,都是什么?
          多線程有兩種實現(xiàn)方法,分別是繼承Thread類與實現(xiàn)Runnable接口
          同步的實現(xiàn)方面有兩種,分別是synchronized,wait與notify
          57、JSP的內(nèi)置對象及方法。
          request表示HttpServletRequest對象。它包含了有關(guān)瀏覽器請求的信息,并且提供了幾個用于獲取cookie, header, 和session數(shù)據(jù)的有用的方法。
          ??? response表示HttpServletResponse對象,并提供了幾個用于設(shè)置送回 瀏覽器的響應(yīng)的方法(如cookies,頭信息等)
          ??? out對象是javax.jsp.JspWriter的一個實例,并提供了幾個方法使你能用于向瀏覽器回送輸出結(jié)果。
          ??? pageContext表示一個javax.servlet.jsp.PageContext對象。它是用于方便存取各種范圍的名字空間、servlet相關(guān)的對象的API,并且包裝了通用的servlet相關(guān)功能的方法。
          ??? session表示一個請求的javax.servlet.http.HttpSession對象。Session可以存貯用戶的狀態(tài)信息
          ??? applicaton 表示一個javax.servle.ServletContext對象。這有助于查找有關(guān)servlet引擎和servlet環(huán)境的信息
          ??? config表示一個javax.servlet.ServletConfig對象。該對象用于存取servlet實例的初始化參數(shù)。
          ??? page表示從該頁面產(chǎn)生的一個servlet實例
          58、線程的基本概念、線程的基本狀態(tài)以及狀態(tài)之間的關(guān)系
          線程指在程序執(zhí)行過程中,能夠執(zhí)行程序代碼的一個執(zhí)行單位,每個程序至少都有一個線程,也就是程序本身。
          Java中的線程有四種狀態(tài)分別是:運行、就緒、掛起、結(jié)束。
          59、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://......"%>
          60、什么情況下調(diào)用doGet()和doPost()?
          Jsp頁面中的form標(biāo)簽里的method屬性為get時調(diào)用doGet(),為post時調(diào)用doPost()。
          61、servlet的生命周期
          web容器加載servlet,生命周期開始。通過調(diào)用servlet的init()方法進行servlet的初始化。通過調(diào)用service()方法實現(xiàn),根據(jù)請求的不同調(diào)用不同的do***()方法。結(jié)束服務(wù),web容器調(diào)用servlet的destroy()方法。
          62、如何現(xiàn)實servlet的單線程模式
          <%@ page isThreadSafe="false"%>
          63、頁面間對象傳遞的方法
          request,session,application,cookie等
          64、JSP和Servlet有哪些相同點和不同點,他們之間的聯(lián)系是什么?
          JSP是Servlet技術(shù)的擴展,本質(zhì)上是Servlet的簡易方式,更強調(diào)應(yīng)用的外表表達。JSP編譯后是"類servlet"。Servlet和JSP最主要的不同點在于,Servlet的應(yīng)用邏輯是在Java文件中,并且完全從表示層中的HTML里分離開來。而JSP的情況是Java和HTML可以組合成一個擴展名為.jsp的文件。JSP側(cè)重于視圖,Servlet主要用于控制邏輯。
          65、四種會話跟蹤技術(shù)
          會話作用域ServletsJSP 頁面描述
          page否是代表與一個頁面相關(guān)的對象和屬性。一個頁面由一個編譯好的 Java servlet 類(可以帶有任何的 include 指令,但是沒有 include 動作)表示。這既包括 servlet 又包括被編譯成 servlet 的 JSP 頁面
          request是是代表與 Web 客戶機發(fā)出的一個請求相關(guān)的對象和屬性。一個請求可能跨越多個頁面,涉及多個 Web 組件(由于 forward 指令和 include 動作的關(guān)系)
          session是是代表與用于某個 Web 客戶機的一個用戶體驗相關(guān)的對象和屬性。一個 Web 會話可以也經(jīng)常會跨越多個客戶機請求
          application是是代表與整個 Web 應(yīng)用程序相關(guān)的對象和屬性。這實質(zhì)上是跨越整個 Web 應(yīng)用程序,包括多個頁面、請求和會話的一個全局作用域
          66、Request對象的主要方法:
          setAttribute(String name,Object):設(shè)置名字為name的request的參數(shù)值
          getAttribute(String name):返回由name指定的屬性值
          getAttributeNames():返回request對象所有屬性的名字集合,結(jié)果是一個枚舉的實例
          getCookies():返回客戶端的所有Cookie對象,結(jié)果是一個Cookie數(shù)組
          getCharacterEncoding():返回請求中的字符編碼方式
          getContentLength():返回請求的Body的長度
          getHeader(String name):獲得HTTP協(xié)議定義的文件頭信息
          getHeaders(String name):返回指定名字的request Header的所有值,結(jié)果是一個枚舉的實例
          getHeaderNames():返回所以request Header的名字,結(jié)果是一個枚舉的實例
          getInputStream():返回請求的輸入流,用于獲得請求中的數(shù)據(jù)
          getMethod():獲得客戶端向服務(wù)器端傳送數(shù)據(jù)的方法
          getParameter(String name):獲得客戶端傳送給服務(wù)器端的有name指定的參數(shù)值
          getParameterNames():獲得客戶端傳送給服務(wù)器端的所有參數(shù)的名字,結(jié)果是一個枚舉的實例
          getParameterValues(String name):獲得有name指定的參數(shù)的所有值
          getProtocol():獲取客戶端向服務(wù)器端傳送數(shù)據(jù)所依據(jù)的協(xié)議名稱
          getQueryString():獲得查詢字符串
          getRequestURI():獲取發(fā)出請求字符串的客戶端地址
          getRemoteAddr():獲取客戶端的IP地址
          getRemoteHost():獲取客戶端的名字
          getSession([Boolean create]):返回和請求相關(guān)Session
          getServerName():獲取服務(wù)器的名字
          getServletPath():獲取客戶端所請求的腳本文件的路徑
          getServerPort():獲取服務(wù)器的端口號
          removeAttribute(String name):刪除請求中的一個屬性
          67、J2EE是技術(shù)還是平臺還是框架?
          ??? J2EE本身是一個標(biāo)準(zhǔn),一個為企業(yè)分布式應(yīng)用的開發(fā)提供的標(biāo)準(zhǔn)平臺。
          ??? J2EE也是一個框架,包括JDBC、JNDI、RMI、JMS、EJB、JTA等技術(shù)。
          68、我們在web應(yīng)用開發(fā)過程中經(jīng)常遇到輸出某種編碼的字符,如iso8859-1等,如何輸出一個某種編碼的字符串?
          ? Public String translate (String str) {
          ??? String tempStr = "";
          ??? try {
          ????? tempStr = new String(str.getBytes("ISO-8859-1"), "GBK");
          ????? tempStr = tempStr.trim();
          ??? }
          ??? catch (Exception e) {
          ????? System.err.println(e.getMessage());
          ??? }
          ??? return tempStr;
          ? }
          69、簡述邏輯操作(&,|,^)與條件操作(&&,||)的區(qū)別。
          區(qū)別主要答兩點:a.條件操作只能操作布爾型的,而邏輯操作不僅可以操作布爾型,而且可以操作數(shù)值型
          b.邏輯操作不會產(chǎn)生短路
          70、XML文檔定義有幾種形式?它們之間有何本質(zhì)區(qū)別?解析XML文檔有哪幾種方式?
          a: 兩種形式 dtd? schema,b: 本質(zhì)區(qū)別:schema本身是xml的,可以被XML解析器解析(這也是從DTD上發(fā)展schema的根本目的),c:有DOM,SAX,STAX等
          ??? DOM:處理大型文件時其性能下降的非常厲害。這個問題是由DOM的樹結(jié)構(gòu)所造成的,這種結(jié)構(gòu)占用的內(nèi)存較多,而且DOM必須在解析文件之前把整個文檔裝入內(nèi)存,適合對XML的隨機訪問
          SAX:不現(xiàn)于DOM,SAX是事件驅(qū)動型的XML解析方式。它順序讀取XML文件,不需要一次全部裝載整個文件。當(dāng)遇到像文件開頭,文檔結(jié)束,或者標(biāo)簽開頭與標(biāo)簽結(jié)束時,它會觸發(fā)一個事件,用戶通過在其回調(diào)事件中寫入處理代碼來處理XML文件,適合對XML的順序訪問
          ??? STAX:Streaming API for XML (StAX)
          71、簡述synchronized和java.util.concurrent.locks.Lock的異同 ?
          主要相同點:Lock能完成synchronized所實現(xiàn)的所有功能
          主要不同點:Lock有比synchronized更精確的線程語義和更好的性能。synchronized會自動釋放鎖,而Lock一定要求程序員手工釋放,并且必須在finally從句中釋放。
          72、EJB的角色和三個對象
          一個完整的基于EJB的分布式計算結(jié)構(gòu)由六個角色組成,這六個角色可以由不同的開發(fā)商提供,每個角色所作的工作必須遵循Sun公司提供的EJB規(guī)范,以保證彼此之間的兼容性。這六個角色分別是EJB組件開發(fā)者(Enterprise Bean Provider) 、應(yīng)用組合者(Application Assembler)、部署者(Deployer)、EJB 服務(wù)器提供者(EJB Server Provider)、EJB 容器提供者(EJB Container Provider)、系統(tǒng)管理員(System Administrator)
          三個對象是Remote(Local)接口、Home(LocalHome)接口,Bean類
          73、EJB容器提供的服務(wù)
          主要提供聲明周期管理、代碼產(chǎn)生、持續(xù)性管理、安全、事務(wù)管理、鎖和并發(fā)行管理等服務(wù)。
          74、EJB規(guī)范規(guī)定EJB中禁止的操作有哪些?
          ??? 1.不能操作線程和線程API(線程API指非線程對象的方法如notify,wait等),2.不能操作awt,3.不能實現(xiàn)服務(wù)器功能,4.不能對靜態(tài)屬生存取,5.不能使用IO操作直接存取文件系統(tǒng),6.不能加載本地庫.,7.不能將this作為變量和返回,8.不能循環(huán)調(diào)用。
          75、remote接口和home接口主要作用
          remote接口定義了業(yè)務(wù)方法,用于EJB客戶端調(diào)用業(yè)務(wù)方法。
          home接口是EJB工廠用于創(chuàng)建和移除查找EJB實例
          76、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ù)量。
          77、EJB的激活機制
          以Stateful Session Bean 為例:其Cache大小決定了內(nèi)存中可以同時存在的Bean實例的數(shù)量,根據(jù)MRU或NRU算法,實例在激活和去激活狀態(tài)之間遷移,激活機制是當(dāng)客戶端調(diào)用某個EJB實例業(yè)務(wù)方法時,如果對應(yīng)EJB Object發(fā)現(xiàn)自己沒有綁定對應(yīng)的Bean實例則從其去激活Bean存儲中(通過序列化機制存儲實例)回復(fù)(激活)此實例。狀態(tài)變遷前會調(diào)用對應(yīng)的ejbActive和ejbPassivate方法。
          78、EJB的幾種類型
          會話(Session)Bean ,實體(Entity)Bean 消息驅(qū)動的(Message Driven)Bean
          會話Bean又可分為有狀態(tài)(Stateful)和無狀態(tài)(Stateless)兩種
          實體Bean可分為Bean管理的持續(xù)性(BMP)和容器管理的持續(xù)性(CMP)兩種
          79、客服端調(diào)用EJB對象的幾個基本步驟
          設(shè)置JNDI服務(wù)工廠以及JNDI服務(wù)地址系統(tǒng)屬性,查找Home接口,從Home接口調(diào)用Create方法創(chuàng)建Remote接口,通過Remote接口調(diào)用其業(yè)務(wù)方法。
          80、如何給weblogic指定大小的內(nèi)存?
          在啟動Weblogic的腳本中(位于所在Domian對應(yīng)服務(wù)器目錄下的startServerName),增加set MEM_ARGS=-Xms32m -Xmx200m,可以調(diào)整最小內(nèi)存為32M,最大200M
          81、如何設(shè)定的weblogic的熱啟動模式(開發(fā)模式)與產(chǎn)品發(fā)布模式?
          可以在管理控制臺中修改對應(yīng)服務(wù)器的啟動模式為開發(fā)或產(chǎn)品模式之一。或者修改服務(wù)的啟動文件或者commenv文件,增加set PRODUCTION_MODE=true。
          82、如何啟動時不需輸入用戶名與密碼?
          修改服務(wù)啟動文件,增加 WLS_USER和WLS_PW項。也可以在boot.properties文件中增加加密過的用戶名和密碼.
          83、在weblogic管理制臺中對一個應(yīng)用域(或者說是一個網(wǎng)站,Domain)進行jms及ejb或連接池等相關(guān)信息進行配置后,實際保存在什么文件中?
          保存在此Domain的config.xml文件中,它是服務(wù)器的核心配置文件。
          84、說說weblogic中一個Domain的缺省目錄結(jié)構(gòu)?比如要將一個簡單的helloWorld.jsp放入何目錄下,然的在瀏覽器上就可打入http://主機:端口號//helloword.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)用名。
          85、在weblogic中發(fā)布ejb需涉及到哪些配置文件
          不同類型的EJB涉及的配置文件不同,都涉及到的配置文件包括ejb-jar.xml,weblogic-ejb-jar.xmlCMP實體Bean一般還需要weblogic-cmp-rdbms-jar.xml
          86、如何在weblogic中進行ssl配置與客戶端的認證配置或說說j2ee(標(biāo)準(zhǔn))進行ssl的配置
          缺省安裝中使用DemoIdentity.jks和DemoTrust.jks? KeyStore實現(xiàn)SSL,需要配置服務(wù)器使用Enable SSL,配置其端口,在產(chǎn)品模式下需要從CA獲取私有密鑰和數(shù)字證書,創(chuàng)建identity和trust keystore,裝載獲得的密鑰和數(shù)字證書。可以配置此SSL連接是單向還是雙向的。
          87、如何查看在weblogic中已經(jīng)發(fā)布的EJB?
          可以使用管理控制臺,在它的Deployment中可以查看所有已發(fā)布的EJB
          88、CORBA是什么?用途是什么?
          CORBA 標(biāo)準(zhǔn)是公共對象請求代理結(jié)構(gòu)(Common Object Request Broker Architecture),由對象管理組織 (Object Management Group,縮寫為 OMG)標(biāo)準(zhǔn)化。它的組成是接口定義語言(IDL), 語言綁定(binding:也譯為聯(lián)編)和允許應(yīng)用程序間互操作的協(xié)議。 其目的為:用不同的程序設(shè)計語言書寫在不同的進程中運行,為不同的操作系統(tǒng)開發(fā)。
          89、說說你所熟悉或聽說過的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è)計的重要性。
          90、說說在weblogic中開發(fā)消息Bean時的persistent與non-persisten的差別
          persistent方式的MDB可以保證消息傳遞的可靠性,也就是如果EJB容器出現(xiàn)問題而JMS服務(wù)器依然會將消息在此MDB可用的時候發(fā)送過來,而non-persistent方式的消息將被丟棄。

          主站蜘蛛池模板: 哈巴河县| 马龙县| 娄底市| 兴仁县| 突泉县| 南阳市| 邵阳市| 儋州市| 会理县| 博白县| 东兰县| 湘阴县| 任丘市| 灵寿县| 邵阳县| 修水县| 家居| 沈丘县| 建德市| 南郑县| 太仓市| 高州市| 白朗县| 芜湖市| 扎囊县| 墨江| 获嘉县| 易门县| 大同市| 荆门市| 永福县| 灵寿县| 正定县| 盐山县| 赤峰市| 新营市| 瑞安市| 庆阳市| 台湾省| 香港| 葫芦岛市|