Java常見面試題集_第1頁
Java常見面試題集_第2頁
Java常見面試題集_第3頁
Java常見面試題集_第4頁
Java常見面試題集_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、Java常見面試題集-面試題全面綜合(一)Java基礎(chǔ)方面: 1、作用域public,private,protected,以及不寫時的區(qū)別 答:區(qū)別如下: 作用域 當(dāng)前類 同一package 子孫類 其他package public protected friendly private 不寫時默認(rèn)為friendlyJava面試題集-Java面試題,J2EE面試題集J2EE面試題集(附答案)Java常見面試題集-面試題全面綜合(一)Java常見面試題集-面試題全面綜合(二)Java面試題集(歡迎大家踴躍提供) 2、ArrayList和Vector的區(qū)別,HashMap和Hashtable的區(qū)別

2、答:就ArrayList與Vector主要從二方面來說. 一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的 二.數(shù)據(jù)增長:當(dāng)需要增長時,Vector 默認(rèn)增長為原來一培,而ArrayList卻是原來的一半 就HashMap與HashTable主要從三方面來說。一.歷史原因:Hashtable是基于陳舊的Dictionary類的,HashMap是Java 1.2引進(jìn)的Map接口的一個實現(xiàn) 二.同步性:Hashtable是線程安全的,也就是說是同步的,而HashMap是線程序不安全的,不是同步的 三.值:只有HashMap可以讓你將空值作為一

3、個表的條目的key或value 3、char型變量中能不能存貯一個中文漢字?為什么? 答:是能夠定義成為一個中文的,因為java中以unicode編碼,一個char占16個字節(jié),所以放一個中文是沒問題的 4、多線程有幾種實現(xiàn)方法,都是什么?同步有幾種實現(xiàn)方法,都是什么? 答:多線程有兩種實現(xiàn)方法,分別是繼承Thread類與實現(xiàn)Runnable接口 同步的實現(xiàn)方面有兩種,分別是synchronized,wait與notify 5、繼承時候類的執(zhí)行順序問題,一般都是選擇題,問你將會打印出什么? 答:父類: package test; public class FatherClass public

4、FatherClass() System.out.println(FatherClass Create); 子類: package test; import test.FatherClass; public class ChildClass extends FatherClass public ChildClass() System.out.println(ChildClass Create); public static void main(String args) FatherClass fc = new FatherClass(); ChildClass cc = new ChildCl

5、ass(); 輸出結(jié)果: C:java test.ChildClass FatherClass Create FatherClass Create ChildClass Create 6、內(nèi)部類的實現(xiàn)方式? 答:示例代碼如下: package test; public class OuterClass private class InterClass public InterClass() System.out.println(InterClass Create); public OuterClass() InterClass ic = new InterClass(); System.out

6、.println(OuterClass Create); public static void main(String args) OuterClass oc = new OuterClass(); 輸出結(jié)果: C:java test/OuterClass InterClass Create OuterClass Create 再一個例題: public class OuterClass private double d1 = 1.0; /insert code here You need to insert an inner class declaration at line 3. Whic

7、h two inner class declarations are valid?(Choose two.) A. class InnerOne public static double methoda() return d1; B. public class InnerOne static double methoda() return d1; C. private class InnerOne double methoda() return d1; D. static class InnerOne protected double methoda() return d1; E. abstr

8、act class InnerOne public abstract double methoda(); 說明如下: 一.靜態(tài)內(nèi)部類可以有靜態(tài)成員,而非靜態(tài)內(nèi)部類則不能有靜態(tài)成員。 故 A、B 錯 二.靜態(tài)內(nèi)部類的非靜態(tài)成員可以訪問外部類的靜態(tài)變量,而不可訪問外部類的非靜態(tài)變量;return d1 出錯。 故 D 錯 三.非靜態(tài)內(nèi)部類的非靜態(tài)成員可以訪問外部類的非靜態(tài)變量。 故 C 正確 四.答案為C、E 7、垃圾回收機(jī)制,如何優(yōu)化程序? 希望大家補(bǔ)上,謝謝 8、float型float f=3.4是否正確? 答:不正確。精度不準(zhǔn)確,應(yīng)該用強(qiáng)制類型轉(zhuǎn)換,如下所示:float f=(float)3

9、.4 9、介紹JAVA中的Collection FrameWork(包括如何寫自己的數(shù)據(jù)結(jié)構(gòu))? 答:Collection FrameWork如下: Collection List LinkedList ArrayList Vector Stack Set Map Hashtable HashMap WeakHashMap Collection是最基本的集合接口,一個Collection代表一組Object,即Collection的元素(Elements) Map提供key到value的映射 10、Java中異常處理機(jī)制,事件機(jī)制? 11、JAVA中的多形與繼承? 希望大家補(bǔ)上,謝謝 12、抽

10、象類與接口? 答:抽象類與接口都用于抽象,但是抽象類(JAVA中)可以有自己的部分實現(xiàn),而接口則完全是一個標(biāo)識(同時有多重繼承的功能)。 13、Java 的通信編程,編程題(或問答),用JAVA SOCKET編程,讀服務(wù)器幾個字符,再寫入本地顯示? 答:Server端程序: package test; import .*; import java.io.*; public class Server private ServerSocket ss; private Socket socket; private BufferedReader in; private PrintWriter out;

11、 public Server() try ss=new ServerSocket(10000); while(true) socket = ss.accept(); String RemoteIP = socket.getInetAddress().getHostAddress(); String RemotePort = :+socket.getLocalPort(); System.out.println(A client come in!IP:+RemoteIP+RemotePort); in = new BufferedReader(new InputStreamReader(sock

12、et.getInputStream(); String line = in.readLine(); System.out.println(Cleint send is : + line); out = new PrintWriter(socket.getOutputStream(),true); out.println(Your Message Received!); out.close(); in.close(); socket.close(); catch (IOException e) out.println(wrong); public static void main(String

13、args) new Server(); ; Client.1,10000); System.out.println(The Server Connected!); System.out.println(Please enter some Character:); BufferedReader line = new BufferedReader(new InputStreamReader(System.in); out = new PrintWriter(socket.getOutputStream(),true); out.println(line.readLine(); in = new B

14、ufferedReader(new InputStreamReader(socket.getInputStream(); System.out.println(in.readLine(); out.close(); in.close(); socket.close(); catch(IOException e) out.println(Wrong); public static void main(String args) new Client(); ; 14、用JAVA實現(xiàn)一種排序,JAVA類實現(xiàn)序列化的方法(二種)? 如在COLLECTION框架中,實現(xiàn)比較要實現(xiàn)什么樣的接口? 答:用插入

15、法進(jìn)行排序代碼如下 package test; import java.util.*; class InsertSort ArrayList al; public InsertSort(int num,int mod) al = new ArrayList(num); Random rand = new Random(); System.out.println(The ArrayList Sort Before:); for (int i=0;i al.add(new Integer(Math.abs(rand.nextInt() % mod + 1); System.out.println(

16、al+i+=+al.get(i); public void SortIt() Integer tempInt; int MaxSize=1; for(int i=1;i tempInt = (Integer)al.remove(i); if(tempIValue()=(Integer)al.get(MaxSize-1).intValue() al.add(MaxSize,tempInt); MaxSize+; System.out.println(al.toString(); else for (int j=0;j if (Integer)al.get(j).intValue()=tempIV

17、alue() al.add(j,tempInt); MaxSize+; System.out.println(al.toString(); break; System.out.println(The ArrayList Sort After:); for(int i=0;i System.out.println(al+i+=+al.get(i); public static void main(String args) InsertSort is = new InsertSort(10,100); is.SortIt(); JAVA類實現(xiàn)序例化的方法是實現(xiàn)java.io.Serializabl

18、e接口 Collection框架中實現(xiàn)比較要實現(xiàn)Comparable 接口和 Comparator 接口 15、編程:編寫一個截取字符串的函數(shù),輸入為一個字符串和字節(jié)數(shù),輸出為按字節(jié)截取的字符串。 但是要保證漢字不被截半個,如我ABC4,應(yīng)該截為我AB,輸入我ABC漢DEF,6,應(yīng)該輸出為我ABC而不是我 ABC+漢的半個。 答:代碼如下: package test; class SplitString String SplitStr; int SplitByte; public SplitString(String str,int bytes) SplitStr=str; SplitByte

19、=bytes; System.out.println(The String is:+SplitStr+;SplitBytes=+SplitByte); public void SplitIt() int loopCount; loopCount=(SplitStr.length()%SplitByte=0)?(SplitStr.length()/SplitByte):(SplitStr.length()/Split Byte+1); System.out.println(Will Split into +loopCount); for (int i=1;i上一頁 Xml方面 1、xml有哪些解

20、析技術(shù)?區(qū)別是什么? 答:有DOM,SAX,STAX等 DOM:處理大型文件時其性能下降的非常厲害。這個問題是由DOM的樹結(jié)構(gòu)所造成的,這種結(jié)構(gòu)占用的內(nèi)存較多,而且DOM必須在解析文件之前把整個文檔裝 入內(nèi)存,適合對XML的隨機(jī)訪問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) 2、你在項目中用到了xml技術(shù)的哪些方面?

21、如何實現(xiàn)的? 答:用到了數(shù)據(jù)存貯,信息配置兩方面。在做數(shù)據(jù)交換平臺時,將不能數(shù)據(jù)源的數(shù)據(jù)組裝成XML文件,然后將XML文件壓縮打包加密后通過網(wǎng)絡(luò)傳送給接收者, 接收解密與解壓縮后再同XML文件中還原相關(guān)信息進(jìn)行處理。在做軟件配置時,利用XML可以很方便的進(jìn)行,軟件的各種配置參數(shù)都存貯在XML文件中。 3、用jdom解析xml文件時如何解決中文問題?如何解析? 答:看如下代碼,用編碼方式加以解決 package test; import java.io.*; public class DOMTest private String inFile = c:people.xml; private St

22、ring outFile = c:people.xml; public static void main(String args) new DOMTest(); public DOMTest() try javax.xml.parsers.DocumentBuilder builder = javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder(); org.w3c.dom.Document doc = builder.newDocument(); org.w3c.dom.Element root =

23、doc.createElement(老師); org.w3c.dom.Element wang = doc.createElement(王); org.w3crm.TransformerFactory.newInstance().newTransformer(); transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING, gb2312); transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT, yes); transformer.

24、transform(new javax.xml.transform.dom.DOMSource(doc), new javax.xml.transform.stream.StreamResult(outFile); catch (Exception e) System.out.println (e.getMessage(); 4、編程用JAVA解析XML的方式. 答:用SAX方式解析XML,XML文件如下: 王小明 信息學(xué)院 6258113 男,1955年生,博士,95年調(diào)入海南大學(xué) 事件回調(diào)類SAXHandler.java import java.io.*; import java.util

25、.Hashtable; import org.xml.sax.*; public class SAXHandler extends HandlerBase private Hashtable table = new Hashtable(); private String currentElement = null; private String currentValue = null; public void setTable(Hashtable table) this.table = table; public Hashtable getTable() return table; publi

26、c void startElement(String tag, AttributeList attrs) throws SAXException currentElement = tag; public void characters(char ch, int start, int length) throws SAXException currentValue = new String(ch, start, length); public void endElement(String name) throws SAXException ionContext; public class Add

27、Bean Implements SessionBean /some method declare J2EE,MVC方面 1、MVC的各個部分都有那些技術(shù)來實現(xiàn)?如何實現(xiàn)? 答:MVC是ModelViewController的簡寫。Model 代表的是應(yīng)用的業(yè)務(wù)邏輯(通過JavaBean,EJB組件實現(xiàn)), View 是應(yīng)用的表示面(由JSP頁面產(chǎn)生),Controller 是提供應(yīng)用的處理過程控制(一般是一個Servlet),通過這種設(shè)計模型把應(yīng)用邏輯,處理過程和顯示邏輯分成不同的組件實現(xiàn)。這些組件可以進(jìn)行交互和重 用。 2、應(yīng)用服務(wù)器與WEB SERVER的區(qū)別? 希望大家補(bǔ)上,謝謝 3、J

28、2EE是什么? 答:Je22是Sun公司提出的多層(multi-diered),分布式(distributed),基于組件(component-base)的企業(yè) 級應(yīng)用模型(enterpriese application model).在這樣的一個應(yīng)用系統(tǒng)中,可按照功能劃分為不同的組件,這些組件又可在不同計算機(jī)上,并且處于相應(yīng)的層次(tier)中。所屬層次包括客戶 層(clietn tier)組件,web層和組件,Business層和組件,企業(yè)信息系統(tǒng)(EIS)層。 4、WEB SERVICE名詞解釋。JSWDL開發(fā)包的介紹。JAXP、JAXM的解釋。SOAP、UDDI,WSDL解釋。 答:W

29、eb Service描述語言WSDL SOAP即簡單對象訪問協(xié)議(Simple Object Access Protocol),它是用于交換XML編碼信息的輕量級協(xié)議。 UDDI 的目的是為電子商務(wù)建立標(biāo)準(zhǔn);UDDI是一套基于Web的、分布式的、為Web Service提供的、信息注冊中心的實現(xiàn)標(biāo)準(zhǔn)規(guī)范,同時也包含一組使企業(yè)能將自身提供的Web Service注冊,以使別的企業(yè)能夠發(fā)現(xiàn)的訪問協(xié)議的實現(xiàn)標(biāo)準(zhǔn)。 5、BS與CS的聯(lián)系與區(qū)別。 希望大家補(bǔ)上,謝謝 6、STRUTS的應(yīng)用(如STRUTS架構(gòu)) 答:Struts是采用Java Servlet/JavaServer Pages技術(shù),開發(fā)W

30、eb應(yīng)用程序的開放源碼的framework。 采用Struts能開發(fā)出基于MVC(Model-View-Controller)設(shè)計模式的應(yīng)用構(gòu)架。 Struts有如下的主要功能: 一.包含一個controller servlet,能將用戶的請求發(fā)送到相應(yīng)的Action對象。 二.JSP自由tag庫,并且在controller servlet中提供關(guān)聯(lián)支持,幫助開發(fā)員創(chuàng)建交互式表單應(yīng)用。 三.提供了一系列實用對象:XML處理、通過Java reflection APIs自動處理JavaBeans屬性、國際化的提示和消息。 設(shè)計模式方面 1、開發(fā)中都用到了那些設(shè)計模式?用在什么場合? 答:每個模式

31、都描述了一個在我們的環(huán)境中不斷出現(xiàn)的問題,然后描述了該問題的解決方案的核心。通過這種方式,你可以無數(shù)次地使用那些已有的解決方案,無需 在重復(fù)相同的工作。主要用到了MVC的設(shè)計模式。用來開發(fā)JSP/Servlet或者J2EE的相關(guān)應(yīng)用。簡單工廠模式等。 2、UML方面 答:標(biāo)準(zhǔn)建模語言UML。用例圖,靜態(tài)圖(包括類圖、對象圖和包圖),行為圖,交互圖(順序圖,合作圖),實現(xiàn)圖, JavaScript方面 1、如何校驗數(shù)字型? Var re=/d1,8$|.d1,2$/; var str=document.form1.all(i).value; var r=str.match(re); if (r=

32、null) sign=-4; break; else document.form1.all(i).value=parseFloat(str); CORBA方面 1、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è)計語言書寫 在不同的進(jìn)程中運行 為不同的操作系統(tǒng)開發(fā)

33、 LINUX方面 1、LINUX下線程,GDI類的解釋。 答:LINUX實現(xiàn)的就是基于核心輕量級進(jìn)程的一對一線程模型,一個線程實體對應(yīng)一個核心輕量級進(jìn)程,而線程之間的管理在核外函數(shù)庫中實現(xiàn)。 GDI類為圖像設(shè)備編程接口類庫。=一些著名的大公司面試題目往往很基礎(chǔ). 一、Java基礎(chǔ)知識1. Java有那些基本數(shù)據(jù)類型,String是不是基本數(shù)據(jù)類型,他們有何區(qū)別。Integer literals,Floating-point literals,character literals,Boolean literal,String iteral.String 不是基本數(shù)據(jù)類型2. 字符串的操作:寫一個

34、方法,實現(xiàn)字符串的反轉(zhuǎn),如:輸入abc,輸出cba public static String reverse(String s) int length=s.length(); StringBuffer result=new StringBuffer(length); for(int i=length-1;i=0;i-) result.append(s.charAt(i); return result.toString(); 寫一個方法,實現(xiàn)字符串的替換,如:輸入bbbwlirbbb,輸出bbbhhtccc。3. 數(shù)據(jù)類型之間的轉(zhuǎn)換如何將數(shù)值型字符轉(zhuǎn)換為數(shù)字(Integer,Double)如何將

35、數(shù)字轉(zhuǎn)換為字符如何去小數(shù)點前兩位,并四舍五入。4. 日期和時間如何取得年月日,小時分秒Date dat=new Date();dat.getYear();dat.getMonth();dat.getDay();dat.getHours();如何取得從1970年到現(xiàn)在的毫秒數(shù)long now=dat.getTime();如何獲取某個日期是當(dāng)月的最后一天如何格式化日期DateFormate df=DateFormate.getInstance();df.Format(dat);5. 數(shù)組和集合6. 文件和目錄(I/O)操作如何列出某個目錄下的所有文件如何列出某個目錄下的所有子目錄判斷一個文件或目錄

36、是否存在如何讀寫文件7. Java多態(tài)的實現(xiàn)(繼承、重載、覆蓋)8. 編碼轉(zhuǎn)換,怎樣實現(xiàn)將GB2312編碼的字符串轉(zhuǎn)換為ISO-8859-1編碼的字符串。9. Java中訪問數(shù)據(jù)庫的步驟,Statement和PreparedStatement之間的區(qū)別。10. 找出下列代碼可能存在的錯誤,并說明原因:二、JSP&Servlet技術(shù)1. 描述JSP和Servlet的區(qū)別、共同點、各自應(yīng)用的范圍2. 在Web開發(fā)中需要處理HTML標(biāo)記時,應(yīng)做什么樣的處理,要篩選那些字符( & )3. 在JSP中如何讀取客戶端的請求,如何訪問CGI變量,如何確定某個Jsp文件的真實路徑。4. 描述Cookie和Se

37、ssion的作用,區(qū)別和各自的應(yīng)用范圍,Session工作原理。5. 列出Jsp中包含外部文件的方式,兩者有何區(qū)別。6. 說明Jsp中errorPage的作用,應(yīng)用范圍。7. 介紹在Jsp中如何使用JavaBeans。8. 簡單介紹JSP的標(biāo)記庫9. Jsp和Servlet中的請求轉(zhuǎn)發(fā)分別如何實現(xiàn)。三、J2EE相關(guān)知識1. 介紹J2EE、J2SE、J2SE的區(qū)別。2. J2EE是一種技術(shù)還是一種平臺,他提供了那些技術(shù)。3. 什么是Application Server,它有什么功能和優(yōu)點。4. 簡單介紹連接池的優(yōu)點和原理。5. Web.xml的作用四、其他1. Web安全性的考慮(表單驗證、瀏覽

38、器Basic方式的驗證,應(yīng)用程序的安全性,SSL,代碼考慮)2. 簡單介紹您所了解的MVC。3. 簡單介紹所了解的XML。4. 文檔和編碼規(guī)范5. Java中的分頁、效率考慮。6. 簡單介紹您所了解的structs。找出以下程序錯誤。Class Test private String par1; private String par2; Test() public static void main(String arg) int a ; if(a) System.out.println(par1=+par1); else System.out.println(par2= + par2); =p

39、ublic class Test public static int a = 5; public static void main(String args) Test test = new Test(); test = null; System.out.println(test.a); 答案是5,a為靜態(tài)變量;不依賴對象,即使為空。J2EE初學(xué)者需要理解的問題 一、J2EE提出的背景 1、 企業(yè)級應(yīng)用框架的需求 在許多企業(yè)級應(yīng)用中,例如數(shù)據(jù)庫連接、郵件服務(wù)、事務(wù)處理等都是一些通用企業(yè)需求模塊,這些模塊如果每次再開發(fā)中都由開發(fā)人員來完成的話,將會造成開發(fā)周期長和代碼可*性差等問題。于是許多大公司

40、開發(fā)了自己的通用模塊服務(wù)。這些服務(wù)性的軟件系列統(tǒng)稱為中間件。 2、 為了通用必須要提出規(guī)范,不然無法達(dá)到通用 在上面的需求基礎(chǔ)之上,許多公司都開發(fā)了自己的中間件,但其與用戶的溝通都各有不同,從而導(dǎo)致用戶無法將各個公司不同的中間件組裝在一塊為自己服務(wù)。從而產(chǎn)生瓶頸。于是提出標(biāo)準(zhǔn)的概念。其實J2EE就是基于JAVA技術(shù)的一系列標(biāo)準(zhǔn)。 注:中間件的解釋 中間件處在操作系統(tǒng)和更高一級應(yīng)用程序之間。他充當(dāng)?shù)墓δ苁牵簩?yīng)用程序運行環(huán)境與操作系統(tǒng)隔離,從而實現(xiàn)應(yīng)用程序開發(fā)者不必為更多系統(tǒng)問題憂慮,而直接關(guān)注該應(yīng)用程序在解決問題上的能力 。我們后面說到的容器的概念就是中間件的一種。 二、相關(guān)名詞解釋 容器:充

41、當(dāng)中間件的角色 WEB容器:給處于其中的應(yīng)用程序組件(JSP,SERVLET)提供一個環(huán)境,使JSP,SERVLET直接更容器中的環(huán)境變量接口交互,不必關(guān)注其它 系統(tǒng)問題。主要有WEB服務(wù)器來實現(xiàn)。例如:TOMCAT,WEBLOGIC,WEBSPHERE等。該容器提供的接口嚴(yán)格遵守J2EE規(guī)范中的WEB APPLICATION 標(biāo)準(zhǔn)。我們把遵守以上標(biāo)準(zhǔn)的WEB服務(wù)器就叫做J2EE中的WEB容器。 EJB容器:Enterprise java bean 容器。更具有行業(yè)領(lǐng)域特色。他提供給運行在其中的組件EJB各種管理功能。只要滿足J2EE規(guī)范的EJB放入該容器,馬上就會被容器進(jìn)行高效率的管理。并

42、且可以通過現(xiàn)成的接口來獲得系統(tǒng)級別的服務(wù)。例如郵件服務(wù)、事務(wù)管理。 WEB容器和EJB容器在原理上是大體相同的,更多的區(qū)別是被隔離的外界環(huán)境。WEB容器更多的是跟基于HTTP的請求打交道。而EJB容器不是。它是更 多的跟數(shù)據(jù)庫、其它服務(wù)打交道。但他們都是把與外界的交互實現(xiàn)從而減輕應(yīng)用程序的負(fù)擔(dān)。例如SERVLET不用關(guān)心HTTP的細(xì)節(jié),直接引用環(huán)境變量 session,request,response就行、EJB不用關(guān)心數(shù)據(jù)庫連接速度、各種事務(wù)控制,直接由容器來完成。 RMI/IIOP:遠(yuǎn)程方法調(diào)用/internet對象請求中介協(xié)議,他們主要用于通過遠(yuǎn)程調(diào)用服務(wù)。例如,遠(yuǎn)程有一臺計算機(jī)上運行一

43、個程序,它提供股票 分析服務(wù),我們可以在本地計算機(jī)上實現(xiàn)對其直接調(diào)用。當(dāng)然這是要通過一定的規(guī)范才能在異構(gòu)的系統(tǒng)之間進(jìn)行通信。RMI是JAVA特有的。 JNDI:JAVA命名目錄服務(wù)。主要提供的功能是:提供一個目錄系統(tǒng),讓其它各地的應(yīng)用程序在其上面留下自己的索引,從而滿足快速查找和定位分布式應(yīng)用程序的功能。 JMS:JAVA消息服務(wù)。 主要實現(xiàn)各個應(yīng)用程序之間的通訊。包括點對點和廣播。 JAVAMAIL:JAVA郵件服務(wù)。提供郵件的存儲、傳輸功能。他是JAVA編程中實現(xiàn)郵件功能的核心。相當(dāng)MS中的EXCHANGE開發(fā)包。 JTA:JAVA事務(wù)服務(wù)。提供各種分布式事務(wù)服務(wù)。應(yīng)用程序只需調(diào)用其提供的

44、接口即可。 JAF:JAVA安全認(rèn)證框架。提供一些安全控制方面的框架。讓開發(fā)者通過各種部署和自定義實現(xiàn)自己的個性安全控制策略。 EAI:企業(yè)應(yīng)用集成。是一種概念,從而牽涉到好多技術(shù)。J2EE技術(shù)是一種很好的集成實現(xiàn)。 三、J2EE的優(yōu)越性 1、 基于JAVA 技術(shù),平臺無關(guān)性表現(xiàn)突出 2、 開放的標(biāo)準(zhǔn),許多大型公司已經(jīng)實現(xiàn)了對該規(guī)范支持的應(yīng)用服務(wù)器。如BEA ,IBM,ORACLE等。 3、 提供相當(dāng)專業(yè)的通用軟件服務(wù)。 4、 提供了一個優(yōu)秀的企業(yè)級應(yīng)用程序框架,對快速高質(zhì)量開發(fā)打下基礎(chǔ) 四、現(xiàn)狀 J2EE是由SUN 公司開發(fā)的一套企業(yè)級應(yīng)用規(guī)范。現(xiàn)在最高版本是1.4。支持J2EE的應(yīng)用服務(wù)器

45、有IBM WEBSPHERE APPLICATION SERVER,BEA WEBLOGIC SERVER,JBOSS,ORACLE APPLICATION SERVER,SUN ONE APPLICATION SERVER 等。 學(xué)習(xí)Java的30個基本概念 Java概述:目前Java主要應(yīng)用于中間件的開發(fā)(middleware)處理客戶機(jī)于服務(wù)器之間的通信技術(shù),早期的實踐證明,Java不適合pc應(yīng)用程序的開 發(fā),其發(fā)展逐漸變成在開發(fā)手持設(shè)備,互聯(lián)網(wǎng)信息站,及車載計算機(jī)的開發(fā).Java于其他語言所不同的是程序運行時提供了平臺的獨立性,稱許可以在 windows,solaris,linux其他

46、操作系統(tǒng)上使用完全相同的代碼.Java的語法與C+語法類似,C+/C程序員很容易掌握,而且 Java是完全的徹底的面向?qū)ο蟮?其中提出了很好的GC(Garbage Collector)垃圾處理機(jī)制,防止內(nèi)存溢出Java的白皮書為我們提出了Java語言的11個關(guān)鍵特性.(1)Easy:Java的語法比C+的相對簡單,另一個方面就是Java能使軟件在很小 的機(jī)器上運行,基礎(chǔ)解釋其和類庫的支持的大小約為40kb,增加基本的標(biāo)準(zhǔn)庫和線程支持的內(nèi)存需要增加125kb.(2)分布式:Java帶有很強(qiáng)大的 TCP/IP協(xié)議族的例程庫,Java應(yīng)用程序能夠通過URL來穿過網(wǎng)絡(luò)來訪問遠(yuǎn)程對象,由于servlet

47、機(jī)制的出現(xiàn),使Java編程非常的高效,現(xiàn)在 許多的大的web server都支持servlet.(3)OO:面向?qū)ο笤O(shè)計是把重點放在對象及對象的接口上的一個編程技術(shù).其面向?qū)ο蠛虲+有很多不同,在與多重繼 承的處理及Java的原類模型.(4)健壯特性:Java采取了一個安全指針模型,能減小重寫內(nèi)存和數(shù)據(jù)崩潰的可能性。(5)安全:Java用來設(shè)計網(wǎng)路 和分布系統(tǒng),這帶來了新的安全問題,Java可以用來構(gòu)建防病毒和防攻擊的System.事實證明Java在防毒這一方面做的比較好.(6)中立體系結(jié) 構(gòu):Java編譯其生成體系結(jié)構(gòu)中立的目標(biāo)文件格式可以在很多處理器上執(zhí)行,編譯器產(chǎn)生的指令字節(jié)碼(Java

48、bytecode)實現(xiàn)此特性,此字節(jié)碼可 以在任何機(jī)器上解釋執(zhí)行.(7)可移植性:Java中對基本數(shù)據(jù)結(jié)構(gòu)類型的大小和算法都有嚴(yán)格的規(guī)定所以可移植性很好.(8)多線程:Java處理多線程 的過程很簡單,Java把多線程實現(xiàn)交給底下操作系統(tǒng)或線程程序完成.所以多線程是Java作為服務(wù)器端開發(fā)語言的流行原因之一(9)Applet和 servlet:能夠在網(wǎng)頁上執(zhí)行的程序叫Applet,需要支持Java的瀏覽器很多,而applet支持動態(tài)的網(wǎng)頁,這是很多其他語言所不能做到的. 基本概念:1.OOP中唯一關(guān)系的是對象的接口是什么,就像計算機(jī)的銷售商她不管電源內(nèi)部結(jié)構(gòu)是怎樣的,他只關(guān)系能否給你提供電就行

49、了,也就是只要知道 can or not而不是how and why.所有的程序是由一定的屬性和行為對象組成的,不同的對象的訪問通過函數(shù)調(diào)用來完成,對象間所有的交流都是通過方法調(diào)用,通過對封裝對象數(shù)據(jù),很大 限度上提高復(fù)用率.2.OOP中最重要的思想是類,類是模板是藍(lán)圖,從類中構(gòu)造一個對象,即創(chuàng)建了這個類的一個實例(instance)3.封裝:就是把 數(shù)據(jù)和行為結(jié)合起在一個包中)并對對象使用者隱藏數(shù)據(jù)的實現(xiàn)過程,一個對象中的數(shù)據(jù)叫他的實例字段(instance field)4.通過擴(kuò)展一個類來獲得一個新類叫繼承(inheritance),而所有的類都是由Object根超類擴(kuò)展而得,根超類下文會

50、做介 紹.5.對象的3個主要特性 behavior說明這個對象能做什么. State當(dāng)對象施加方法時對象的反映.Identity與其他相似行為對象的區(qū)分標(biāo)志.每個對象有唯一的indentity 而這3者之間相互影響.6.類之間的關(guān)系:use-a :依賴關(guān)系has-a :聚合關(guān)系is-a :繼承關(guān)系-例:A類繼承了B類,此時A類不僅有了B類的方法,還有其自己的方法.(個性存在于共性中)7.構(gòu)造對象使用構(gòu)造器:構(gòu)造器的提出,構(gòu)造器 是一種特殊的方法,構(gòu)造對象并對其初始化.例:Data類的構(gòu)造器叫Datanew Data()構(gòu)造一個新對象,且初始化當(dāng)前時間.Data happyday=new Dat

51、a()把一個對象賦值給一個變量happyday,從而使該對象能夠多次使用,此處要聲明的使變量與對象變量二者是不同的.new返回的值是 一個引用.構(gòu)造器特點:構(gòu)造器可以有0個,一個或多個參數(shù)構(gòu)造器和類有相同的名字一個類可以有多個構(gòu)造器構(gòu)造器沒有返回值構(gòu)造器總是和new運算符一起使 用.8.重載:當(dāng)多個方法具有相同的名字而含有不同的參數(shù)時,便發(fā)生重載.編譯器必須挑選出調(diào)用哪個方法.9.包(package)Java允許把一個或 多個類收集在一起成為一組,稱作包,以便于組織任務(wù),標(biāo)準(zhǔn)Java庫分為許多包.java.lang java.util java,net等,包是分層次的所有的java包都在java和javax包層次內(nèi).10.繼承思想:允許在已經(jīng)存在的類的基礎(chǔ)上構(gòu)建新的類,當(dāng)你繼承 一個已經(jīng)存在的類時,那么你就復(fù)用了這個類的方法和字段,同時你可以在新類中添加新的方法和字段.11.擴(kuò)展類:擴(kuò)展類充分體現(xiàn)了is-a的繼承關(guān)系. 形式為:class (子類) extends (基類).12.多態(tài):在java中,對象變量是多態(tài)的.而java中不支持多重繼承.13.動態(tài)綁定:調(diào)用對象方法的機(jī)制.(1)編譯器檢查對象聲明的 類型和方法名.(2)編譯器檢查方法調(diào)用的參數(shù)類型.(3)靜態(tài)綁定:若方法類型為priavte static

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論