想了解java課程網(wǎng)絡(luò)編程嗎?想了解JAVA程序設(shè)計(jì)課程學(xué)習(xí)報(bào)告,Java網(wǎng)絡(luò)編程(一):初體驗(yàn),關(guān)于JAVA基礎(chǔ)的課程設(shè)計(jì)我不會(huì)做,UDP網(wǎng)絡(luò)編程的。請(qǐng)看問(wèn)題補(bǔ)充。,怎樣才能學(xué)好JAVA網(wǎng)絡(luò)編程語(yǔ)言呢?JAVA呀!你愁死你了??!?? 嗎?......本文帶你一探究竟。
1.JAVA程序設(shè)計(jì)課程學(xué)習(xí)報(bào)告
public class QuickSort { /** * 快速排序 */ public static void main(String[] args) { Random random=new Random(); int[] pData=new int[10]; for(int i=0;i
2.Java網(wǎng)絡(luò)編程(一):初體驗(yàn)
有同學(xué)反應(yīng),光寫數(shù)據(jù)結(jié)構(gòu)太枯燥了,能不能搞點(diǎn)有趣的東西。嗯,我決定把網(wǎng)絡(luò)這一部分提到前邊來(lái),做一點(diǎn)有趣的東西。這節(jié)課,我們體驗(yàn)一下Java網(wǎng)絡(luò)編程。Java語(yǔ)言被越來(lái)越多地應(yīng)用在網(wǎng)絡(luò)環(huán)境下,偏重于服務(wù)端的開(kāi)發(fā),還有分布式系統(tǒng),軟件定義硬件功能的場(chǎng)景等等。這些場(chǎng)景下,都非常依賴于語(yǔ)言的網(wǎng)絡(luò)開(kāi)發(fā)的能力。我們今天就嘗試使用一下Java的網(wǎng)絡(luò)編程。Java的網(wǎng)絡(luò)編程的接口大多數(shù)位于 和 java.nio 這兩個(gè)package里,掌握這兩個(gè)package是Java程序員必備的基礎(chǔ)技能。服務(wù)端連接網(wǎng)絡(luò)的過(guò)程和打電話的過(guò)程可以進(jìn)行類比。比如,在手機(jī)網(wǎng)絡(luò)中,每一個(gè)手機(jī)都有一個(gè)手機(jī)號(hào),我們知道了某個(gè)提供服務(wù)的號(hào)碼(比如外賣電話,銀行電話等),撥通這個(gè)號(hào)碼,就可以進(jìn)行通話了。計(jì)算機(jī)網(wǎng)絡(luò)也差不多,在計(jì)算機(jī)網(wǎng)絡(luò)中,每個(gè)計(jì)算機(jī)上的每個(gè)網(wǎng)卡,都會(huì)有一個(gè)號(hào)碼相互識(shí)別,這個(gè)號(hào)碼在不同的場(chǎng)景下,會(huì)有不同的表現(xiàn),比如,網(wǎng)址:知乎 - 與世界分享你的知識(shí)、經(jīng)驗(yàn)和見(jiàn)解,再比如IP地址,再比如mac地址。后面我們會(huì)一點(diǎn)點(diǎn)講解這些地址分別在什么場(chǎng)景下使用的?,F(xiàn)在我們只需要知道一個(gè)服務(wù)端是要有一個(gè)地址的。而在我們的今天的場(chǎng)景下,這個(gè)地址(可以類比手機(jī)號(hào)碼)就是IP地址。不多說(shuō)了,先上代碼,跑起來(lái),大家就明白了。public class Server { public static void main(String args[]) throws { ss = new (8080); Socket conn = ss.accept(); br = new (new (conn.())); bw = new (new (conn.())); String s = br.readLine(); while (s != null) { System.out.println(s); bw.write(s.() + "\n"); bw.flush(); s = br.readLine(); } br.close(); bw.close(); conn.close(); } } 可以看到服務(wù)端在8080端口上開(kāi)啟了一個(gè),等待連接。大家可以單步調(diào)試一下,看看當(dāng)調(diào)用到accept的時(shí)候會(huì)發(fā)生什么情況。然后就是創(chuàng)建一個(gè)Reader用于從網(wǎng)絡(luò)上讀數(shù)據(jù),一個(gè)Writer向網(wǎng)絡(luò)上寫數(shù)據(jù)。讀進(jìn)來(lái)的一行,把它轉(zhuǎn)成大寫,再發(fā)回到客戶端??蛻舳艘舶汛a放上來(lái)public class Client { public static void main(String args[]) throws { Socket conn = new Socket("127.0.0.1", 8080); br = new (new (conn.())); bw = new (new (conn.())); bw.write("hello\n"); bw.flush(); String s = br.readLine(); System.out.println(s); bw.write("world\n"); bw.flush(); s = br.readLine(); System.out.println(s); br.close(); bw.close(); conn.close(); } } 和服務(wù)端對(duì)應(yīng)的,客戶端創(chuàng)建一個(gè)Socket,這個(gè) Socket 在構(gòu)造的時(shí)候就發(fā)起向服務(wù)端的連接。連接了以后,也創(chuàng)建一個(gè) Reader,一個(gè) Writer。接著向服務(wù)端發(fā)送了兩個(gè)小寫字符串。先運(yùn)行服務(wù)端,再運(yùn)行客戶端,我們可以看到這樣的結(jié)果:?jiǎn)栴}今天就先稍微體驗(yàn)一下吧。這里涉及到socket,ip 地址, 端口號(hào)(程序中是8080)這些到底有什么關(guān)系?在Java虛擬機(jī)里到底是如何實(shí)現(xiàn)的?這些問(wèn)題,我們會(huì)在接下來(lái)的課程里慢慢解釋。今天的作業(yè),從控制臺(tái)上輸入一個(gè)字符串,然后發(fā)送到服務(wù)端。上一節(jié)課:數(shù)據(jù)結(jié)構(gòu)(七):二叉樹(shù)的刪除和應(yīng)用舉例下一節(jié)課:分層網(wǎng)絡(luò)協(xié)議目錄:課程目錄
3.關(guān)于JAVA基礎(chǔ)的課程設(shè)計(jì)我不會(huì)做,UDP網(wǎng)絡(luò)編程的。請(qǐng)看問(wèn)題補(bǔ)充。
這個(gè)不是一句兩句解釋的清楚的,就算大家認(rèn)為已經(jīng)很清楚了,可你還是一頭霧水,抓緊時(shí)間看書吧,自己理解是王道,不清楚的時(shí)候在細(xì)節(jié)上再來(lái)糾結(jié)收獲更多,這樣提問(wèn)你將一無(wú)所獲*還得自己去看書
4.怎樣才能學(xué)好JAVA網(wǎng)絡(luò)編程語(yǔ)言呢?JAVA呀!你愁死你了??!
目前 Java 可以說(shuō)是產(chǎn)業(yè)界和學(xué)術(shù)界最熱門的語(yǔ)言,許多讀者都很急切想把 Java 學(xué)好。除非像電影「駭課任務(wù)」(Matrix)一樣能夠把需要的專業(yè)技巧下載到腦海(女主角只花了幾秒下載資料,就馬上具備飛行員的技巧),或是武俠小說(shuō)中的運(yùn)功傳送內(nèi)力的方式,否則花上一段時(shí)間苦學(xué)是免不了的。花時(shí)間,不打緊,就怕方法錯(cuò)誤,事倍功半。我認(rèn)為,學(xué)習(xí) Java 包括了下列的范疇: * 認(rèn)識(shí) Java 的原理 * 學(xué)會(huì) Java 語(yǔ)言 * 物件導(dǎo)向的思維 * API * 開(kāi)發(fā)工具的用法 下面分別就這幾點(diǎn)詳細(xì)闡述。 學(xué)習(xí) Java 的原理 了解 Java 的原理,才有可能真正體會(huì) Java 的一切,學(xué)習(xí)任何事情,只要能掌握原理,就會(huì)比較順利。我發(fā)現(xiàn)許多人使用 Java 已經(jīng)逾年,卻連 Java 最基本的特質(zhì)都不清楚。 一般來(lái)說(shuō),資訊系畢業(yè)的學(xué)生,對(duì)於資訊的新事物學(xué)習(xí)的速度,會(huì)比其他科系來(lái)得快,就是因?yàn)樗哪甑慕逃秊樗麄兊於藢W(xué)習(xí)新事物的基礎(chǔ),這也是資訊系課程的價(jià)值所在。 除非你受過(guò)的基礎(chǔ)訓(xùn)練夠扎實(shí),否則在學(xué)習(xí)或使用 Java 的過(guò)程中,你一定會(huì)需要參考到這些資訊系*的知識(shí)。我建議各位可以在閑暇之余,把資訊系課本的書拿來(lái)讀一讀。這是治本之道,絕非立竿見(jiàn)影的特效藥,必須要有耐心。 學(xué)習(xí) Java 語(yǔ)言 學(xué)習(xí) Java 語(yǔ)言很簡(jiǎn)單,畢竟 Java 語(yǔ)言也只包含五十多個(gè)關(guān)鍵字(keyword)與幾十個(gè)算符(operator),再加上 Java 語(yǔ)法(syntax)也很簡(jiǎn)單,所以一般人可以很快就學(xué)會(huì) Java 語(yǔ)言。危險(xiǎn)的是,很多人認(rèn)為已經(jīng)完全掌控 Java 語(yǔ)言,但其實(shí)對(duì)於內(nèi)部的運(yùn)作機(jī)制仍不能掌握,這些盲點(diǎn)有時(shí)候會(huì)讓你無(wú)法完全掌控 Java 語(yǔ)言??朔@些盲點(diǎn)的方式是看「The Java Language , 2nd Ed.」(沒(méi)有中文版)來(lái)徹底弄懂 Java 程式語(yǔ)言,并看「Inside the Java Virtual Machine, 2nd Ed.」(有中文版,但翻譯得@#%$)來(lái)徹底掌握 Java 虛擬機(jī)器的運(yùn)作方式。 學(xué)習(xí)物件導(dǎo)向的思維 學(xué)會(huì)了語(yǔ)言,并不代表就可以設(shè)計(jì)出好的物件導(dǎo)向系統(tǒng)架構(gòu)。想要成為物件導(dǎo)向的專家,往往需要: * 多看相關(guān)的書,特別是 Design Pattern 和 的書。 * 多觀摩別人的程式(例如 Java API 的 design 與 ) * 多寫程式 學(xué)習(xí) API 學(xué)會(huì) Java 語(yǔ)言之后,還需要學(xué)會(huì)一些 API 才能寫出有用的程式。Java 的 API 非常多,必須規(guī)劃好一個(gè)學(xué)習(xí)路徑,才不會(huì)在浩瀚的 API 大海中迷失。必備的 API 包括了:IO、New IO、 Framework、Network、RMI、JAXP... 等。至於其他的 API,就看你的需求而定,大致上分成: * GUI 類:JavaBean -> Swing -> JavaHelp -> Java2D -> Image IO -> JAI -> Java 3D ... * 類:JDBC -> JDO -> Servlet -> JSP -> EJB -> JMS -> JTA/JTS... * J2ME 類(這一類不是我的專長(zhǎng),無(wú)法提供學(xué)習(xí)順序建議) 學(xué)習(xí)開(kāi)發(fā)工具的用法 只用 JDK,是很難寫出大型程式的,所以通常程式員會(huì)使用 JBuilder/VisualAge/ 等工具,這些軟體賣這麼貴,一定有它的價(jià)值,值得花一些時(shí)間好好學(xué)習(xí)這些開(kāi)發(fā)工具的使用方式,你將會(huì)發(fā)現(xiàn)開(kāi)發(fā)工具所提供的許多功能,可以讓你在開(kāi)發(fā)過(guò)程中生產(chǎn)力大增。
上述文章了解到關(guān)于JAVA程序設(shè)計(jì)課程學(xué)習(xí)報(bào)告,Java網(wǎng)絡(luò)編程(一):初體驗(yàn),關(guān)于JAVA基礎(chǔ)的課程設(shè)計(jì)我不會(huì)做,UDP網(wǎng)絡(luò)編程的。請(qǐng)看問(wèn)題補(bǔ)充。,怎樣才能學(xué)好JAVA網(wǎng)絡(luò)編程語(yǔ)言呢?JAVA呀!你愁死你了??!?? ,讓我們對(duì)java課程網(wǎng)絡(luò)編程 有一個(gè)直觀的認(rèn)知。我們發(fā)現(xiàn),作為一個(gè)優(yōu)秀的Java程序員是多么的自豪。