Java分布式學(xué)習(xí)資料:分布復(fù)習(xí)大綱_第1頁
Java分布式學(xué)習(xí)資料:分布復(fù)習(xí)大綱_第2頁
Java分布式學(xué)習(xí)資料:分布復(fù)習(xí)大綱_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、復(fù)習(xí)大綱 以林昊的分布式Java應(yīng)用基礎(chǔ)與實(shí)踐,電子工業(yè)出版社一書為基礎(chǔ)。根據(jù)每一章前面的圖提衣攜領(lǐng)地復(fù)習(xí)每一章,即先根據(jù)圖熟悉本章講了幾個(gè)問題,每個(gè)問題又分為那幾個(gè)方面,每個(gè)方面的解決方法是什么。熟悉TCP/IP+BIO、TCP/IP+NIO、UDP/IP+BIO、UDP/IP+NIO實(shí)現(xiàn)基于消息方式實(shí)現(xiàn)系統(tǒng)間通信的主要過程(步驟)。答:TCP/IP+BIO:Java中可基于Socket和ServerSocket實(shí)現(xiàn)TCP/IP+BIO的分布式系統(tǒng)間通信。其中,Socket用于連接和網(wǎng)絡(luò)I/O的操作,ServerSocket用于實(shí)現(xiàn)服務(wù)器端端口的監(jiān)聽及Socket對象的獲取。TCP/IP+B

2、IO實(shí)現(xiàn)基于消息方式實(shí)現(xiàn)系統(tǒng)間通信的主要過程是:客戶端:創(chuàng)建連接Socket socket = new Socket(目標(biāo)IP,目標(biāo)端口); (2) 創(chuàng)建讀取服務(wù)器端返回流的BufferReader BufferReader in = new BufferReader(new InputStreamReader(socket.getInputStream(); (3) 創(chuàng)建向服務(wù)器寫入流的PrinterWriter PrinterWriter out = new PrinterWriter(socket.getOututStream(), true); (4)像服務(wù)器端發(fā)送字符串Out.pri

3、ntln(“消息內(nèi)容”); (5) 阻塞讀取服務(wù)器的返回信息。該阻塞過程會(huì)持續(xù)到服務(wù)器返回信息或網(wǎng)絡(luò)異常為止。 In.readline( );服務(wù)器端核心代碼:創(chuàng)建本地指定端口的監(jiān)聽ServerSocket ss = new ServerSocket(監(jiān)聽端口)接受客戶端建連接請求Socket socket = ss.accept( );2、熟悉WebService調(diào)用過程。答:WebService是一種跨語言的系統(tǒng)間交互標(biāo)準(zhǔn),服務(wù)端以HTTP方式提供服務(wù),該服務(wù)采用WSDL(Web Service Description Language)描述。WSDL文件描述服務(wù)使用的協(xié)議、期望的參數(shù)、返

4、回的參數(shù)格式等。調(diào)用端通過SOAP(Simple Object Access Protocol)方式進(jìn)行交互。 WebService調(diào)用的具體過程是:首先把服務(wù)器端的服務(wù)描述成WSDL文件,并把該WSDL文件放入HTTP服務(wù)器,用Java輔助工具根據(jù)WSDL文件生成客戶端stub代碼。Stub代碼的作用是把產(chǎn)生的對象請求信息封裝為標(biāo)準(zhǔn)的SOAP格式數(shù)據(jù),并發(fā)送到服務(wù)器端。服務(wù)器端在收到SOAP格式數(shù)據(jù)時(shí)進(jìn)行轉(zhuǎn)化,反射調(diào)用的Java類。熟悉Java Collection的基本數(shù)據(jù)類型,重點(diǎn)掌握使用(對象建立、元素插入、刪除、遍歷等)。重點(diǎn)掌握Set(兩種)和Map的遍歷方法(Map類的迭代器可采

5、用哪兩類方式訪問)。答:Map是重要數(shù)據(jù)集,提供了數(shù)據(jù)的插入、刪除、索引、查找、遍歷等數(shù)據(jù)訪問功能。Map類通常采用兩類迭代器訪問Map類,一種是keySet,一種是entrySet,示例代碼如下: String tmpkey = String.format(%d, index); if(hashmapTest.containsKey(tmpkey) System.out.println(found the key); else System.out.println(Not found the key); Iterator ite; ite = hashmapTest.keySet().ite

6、rator(); while(ite.hasNext() String tempkey = (String)ite.next(); System.out.println(Key + tempkey + value : + hashmapTest.get(tempkey); ite = hashmapTest.entrySet().iterator(); while(ite.hasNext() Map.Entry entry = (Map.Entry) ite.next(); String key = entry.getKey(); Double value = entry.getValue()

7、; System.out.println(Key + key + value : + value); 4. 熟悉Java的Concurrent數(shù)據(jù)類型,例如,ArrayList和CopyOnWriteArrayList應(yīng)用的主要不同是什么。ArrayList和CopyOnWriteArrayList都是數(shù)據(jù)集類型,ArrayList是通常的數(shù)據(jù)集合,而CopyOnWriteArrayList是并發(fā)的數(shù)據(jù)集合。 二者的不同體現(xiàn)在,(1)二者的基類不同,ArrayList的基類是java.util.ArrayList;CopyOnWriteArrayList的基類是java.util.concur

8、rent.CopyOnWriteArrayList; (2)二者支持的數(shù)據(jù)操作類型不同,ArrayList是單線程操作,而CopyOnWriteArrayList支持多線程操作。 (3)二者的性能在小規(guī)模數(shù)據(jù),二者的性能接近,隨著數(shù)據(jù)規(guī)模的增大,CopyOnWriteArrayList的性能逐漸優(yōu)于ArrayList。5.序列化和反序列化的作用是什么,以及二者的主要實(shí)現(xiàn)步驟是怎樣的。答:分布式系統(tǒng)傳送的數(shù)據(jù)類型很多,包括音頻、視頻、文字、圖像等,這些不同類型的數(shù)據(jù)在網(wǎng)絡(luò)中傳輸時(shí)都要進(jìn)行序列化和飯序列化操作。序列化操作把要在網(wǎng)絡(luò)系統(tǒng)傳送的數(shù)據(jù)序列化為二進(jìn)制流,反序列化則把二進(jìn)制數(shù)據(jù)反序列化為原數(shù)

9、據(jù)。 序列化的常用方法:創(chuàng)建一個(gè)字節(jié)數(shù)組輸出流 ByteArrayOutputStream output = new ByteArrayOutputStream();把字節(jié)數(shù)組包裝為ObjectOutputStream ObjectOutputStream objectOut = new ObjectOutputStream(output);把對象寫入ObjectOutputStreamobjectOut.writeObject(序列化數(shù)據(jù)) (4)關(guān)閉數(shù)據(jù)objectOut.close();output.close(); 反序列化的常用方法:(1) 創(chuàng)建一個(gè)字節(jié)數(shù)組輸入流 ByteArray

10、InutStream input = new ByteArrayInutStream (); (2)把字節(jié)數(shù)組包裝為ObjectInputStream ObjectInputStream objecIn = new ObjectInputStream(input); (3)從ObjectOutputStream對象讀出數(shù)據(jù)objecIn.readObject(序列化數(shù)據(jù))(4)關(guān)閉數(shù)據(jù)objectIn.close();input.close();6復(fù)習(xí)第6章、第7章首頁的內(nèi)容結(jié)構(gòu)圖,對避免故障使系統(tǒng)具有高可用性(第6章)、保證分布式系統(tǒng)緩存一致性(第7章)等問題。7什么是水平伸縮、垂直伸縮,常見的水平伸縮、垂直伸縮架構(gòu)是什么。8水平伸縮架構(gòu)下,負(fù)載均衡機(jī)采用什么樣的策略把把用戶請求轉(zhuǎn)發(fā)到業(yè)務(wù)處理機(jī)。書p229-23

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論