20165330 2017-2018-2 《Java程式設計》第9周學習總結

來源:互聯網
上載者:User

標籤:基於   知識   set   分布式   oca   學習總結   res   ring   通訊端   

課本知識總結第十三章 Java網路編程
  1. URL類
  • URL類是java.net包中的一個重要的類
  • 一個URL對象包含的三個基本資料:協議、地址和資源
    • 協議:必須是URL對象所在的Java虛擬機器支援的協議,常用的有:Http、Ftp、File協議,由參數protocol指定
    • 地址:必須是能串連的有效IP地址或網域名稱,由參數host指定
    • 資源:可以是主機上的任何一個檔案,由參數file指定
  • 構造方法
    • public URL (String spec) throws MalformedURLException
    • public URL(String protocol,String host,String file) throws MalformedURLException
  • 調用InputStream openStream()方法返回一個輸入資料流
  1. InetAddress類
  • Internet上主機表示地址的兩種方式
    • 網域名稱
    • IP地址
  • 擷取地址
    • 擷取Internet上主機地址:getByName(String s)
    • 擷取本地機地址:getLocalHost()
  1. 通訊端
  • 是基於TCP協議的網路通訊
  • 用戶端通訊端
    • 對象建立方法:使用Socket類
    • Socket構造方法:Socket(String host,int port)
  • ServerSocket對象與伺服器端通訊端
    • 構造方法:ServerSocket(int port)
  • 使用方法accept()將用戶端的通訊端和伺服器端的通訊端串連起來
try{ Socket sc = serverForClient.accept();}catch(IOException e) {}
  • 通訊完畢後,通訊端使用close()方法關閉通訊端串連
  • 多線程技術
    • 伺服器端收到一個用戶端的通訊端時,就會啟動一個專門為該客戶服務的線程
  • 通訊端通訊基本原則
    • 伺服器應當啟動一個專門的線程,在該線程中和客戶的通訊端建立串連
    • 由於通訊端的輸入資料流在讀取資訊時可能發生阻塞,用戶端和伺服器端都需要在一個單獨的線程中讀取資訊
  1. UPD資料報
  • 基於UPD通訊的基本模式
    • 將資料打包發往目的地
    • 接收發來的資料包並查看內容
  • 發送資料包
    • 打包:使用DatagramPacket類
DatagramPacket(byte data[],int length,InetAddtress address,int port)
DatagramPack(byte data[],int offset,int length,InetAddtress address,int port)
  • 發送:使用構造方法DatagramSocket()建立一個對象
  • 接收資料包
    • 使用構造方法DatagramSocket(int port)建立一個對象
    • 使用方法receive(DatagramPacket pack)接收資料包
  1. 廣播資料報
  • A類地址:a<128,則b.c.d表示主機
  • B類地址:128<=a<192,則a.b表示網路地址,c.d表示主機地址
  • C類地址:a>=192,a.b.c表示網路地址,d表示主機地址
  • D類地址:224.0.0.0~224.255.255.255是保留地址
  • 要廣播或接收廣播的主機都必須加入到同一個D類地址
  1. RMI是一種分布式技術,使用RMI可以讓一個虛擬機器(JVM)上的應用程式請求調用位於網路上另一處JVM上的對象方法
遇到的問題及解決方案
  • 在運行本章第一個代碼時出現

    解決方案:將兩個程式分別打包在同一檔案夾下,通過輸入javac -encoding gbk Example13_1.java,然後成功編譯並運行。

代碼託管

上周錯題總結
  1. 解析:

  2. 解析:當main方法中沒有建立其他的線程,main方法返回時,JVM就會結束Java應用程式;當main方法中建立了其他線程,要等到所有線程都結束,JVM才會結束Java應用程式

  3. 解析:C項:先前的實體會成為“垃圾”,並且不會被垃圾收集器收集。D項:當線程進入死亡狀態後,線程就還可以調用isAlive()方法,並且傳回值為false。

20165330 2017-2018-2 《Java程式設計》第9周學習總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.