導航:首頁 > 編程語言 > Java網路編程基礎

Java網路編程基礎

發布時間:2022-02-10 12:17:39

① 如何學習java網路編程 知乎

建議報一個培訓班,都是零基礎入學的,這是網路編程的全部課程,要是感興趣的話可以了解一下:
第一階段
1、計算機操作基礎
2、Office辦公自動化
3、計算機組裝與維護
4、C語言

第二階段
1、SQL Server2005資料庫設計
2、和高級查詢
3、數據結構
4、C#面向對象程序設計
5、HTML5與CSS3開發
6、JavaScript
7、jQuery高級編程
8、PHP開發

第三階段
APP Development
1、JavaScript特效製作
2、jQuery應用開發
3、HTML5與CSS3開發
4、Java面向對象程序設計

第四階段
JAVAWEB Development
1、產品流程應用
2、移動平台界面設計
3、Oracle資料庫開發
4、JavaWeb應用開發
Mobile APP Development
1、實訓一:WEB前端設計與開發
2、實訓二:J2EE項目開發

② java網路編程方向具體該怎麼去學。。。

Java前景是很不錯的,像Java這樣的專業還是一線城市比較好,師資力量跟得上、就業的薪資也是可觀的,學習Java可以按照路線圖的順序,

0基礎學習Java是沒有問題的,關鍵是找到靠譜的Java培訓機構,你可以深度了解機構的口碑情況,問問周圍知道這家機構的人,除了口碑再了解機構的以下幾方面:

1. 師資力量雄厚

要想有1+1>2的實際效果,很關鍵的一點是師資隊伍,你接下來無論是找個工作還是工作中出任哪些的人物角色,都越來越愛你本身的技術專業java技術性,也許的技術專業java技術性則絕大多數來自你的技術專業java教師,一個好的java培訓機構必須具備雄厚的師資力量。

2. 就業保障完善

實現1+1>2效果的關鍵在於能夠為你提供良好的發展平台,即能夠為你提供良好的就業保障,讓學員能夠學到實在實在的知識,並向java學員提供一對一的就業指導,確保學員找到自己的心理工作。

3. 學費性價比高

一個好的Java培訓機構肯定能給你帶來1+1>2的效果,如果你在一個由專業的Java教師領導並由Java培訓機構自己提供的平台上工作,你將獲得比以往更多的投資。

希望你早日學有所成。

③ JAVA網路編程基礎應用練習,200分! 大家幫我做一下。 謝謝了 就是我服務端有一些學生信息。

一下代碼僅作參考 swing界面使用NetBeans生成的

ClientView.java見附件

Client.java

package;

importjava.io.DataInputStream;
importjava.io.DataOutputStream;
importjava.io.IOException;
importjava.net.Socket;

publicclassClient{
privateClientViewclientView;
privateSocketsocket;
privateDataInputStreamdis;
privateDataOutputStreamdos;

publicClient(){
clientView=newClientView(this);
clientView.setVisible(true);

}

publicClientViewgetClientView(){
returnclientView;
}

publicvoidsetClientView(ClientViewclientView){
this.clientView=clientView;
}

publicstaticvoidmain(String[]args){
newClient();
}

publicSocketgetSocket(){
returnsocket;
}

publicvoidsetSocket(Socketsocket){
this.socket=socket;
}

/**
*連接伺服器
*@return成功返回true否則返回false
*/
publicbooleanconnectServer(){
try{
socket=newSocket("127.0.0.1",8853);
dis=newDataInputStream(socket.getInputStream());
dos=newDataOutputStream(socket.getOutputStream());
}catch(IOExceptione){
e.printStackTrace();
returnfalse;
}
returntrue;
}

/**
*從服務端讀取消息
*@return成功返回對應的字元串否則返回null
*/
publicStringgetMessage(){
Stringresult;
try{
result=dis.readUTF();
}catch(IOExceptione){
e.printStackTrace();
returnnull;
}
returnresult;

}

/**
*發送消息到服務端
*@parammessage
*@return
*/
publicbooleansendMessage(Stringmessage){
try{
dos.writeUTF(message);
}catch(IOExceptione){
e.printStackTrace();
returnfalse;
}
returntrue;
}

/**
*把字元串解碼成學生類
*
*@params
*@return
*/
publicStudentdeCode(Strings){
String[]ss=s.split(",");
Studentstudent=newStudent(Integer.parseInt(ss[0]),ss[1],Integer.parseInt(ss[2]),ss[3],ss[4]);
returnstudent;
}

}

Server.java

package;

importjava.io.DataInputStream;
importjava.io.DataOutputStream;
importjava.io.IOException;
importjava.net.ServerSocket;
importjava.net.Socket;
importjava.util.Collection;
importjava.util.HashMap;
importjava.util.Iterator;
importjava.util.Map;

publicclassServer{

privateintport;
privateStringip;
;
privateSocketsocket;
privateDataInputStreamdis;
privateDataOutputStreamdos;
privateMap<Integer,Student>studentMap;
/**
*下一個新學生的學號
*/
privatestaticintnextId=101;

publicServer(intport)throwsIOException{
this.port=port;
serverSocket=newServerSocket(port);
studentMap=newHashMap<>();

studentMap.put(101,newStudent(101,"吳冰",25,"男","04軟體3班"));
studentMap.put(102,newStudent(102,"曾小梅",21,"女","01軟體4班"));
studentMap.put(103,newStudent(103,"廖蔣龍",22,"男","01軟體1班"));
studentMap.put(104,newStudent(104,"李世強",24,"男","04軟體2班"));
studentMap.put(105,newStudent(105,"曹鵬",20,"男","01軟體2班"));
studentMap.put(106,newStudent(106,"盧剛",23,"男","01軟體3班"));
studentMap.put(107,newStudent(107,"吳偉堅",20,"男","04軟體3班"));

nextId+=studentMap.size();
}

publicintgetPort(){
returnport;
}

publicvoidsetPort(intport){
this.port=port;
}

publicStringgetIp(){
returnip;
}

publicvoidsetIp(Stringip){
this.ip=ip;
}

(){
returnserverSocket;
}

publicvoidsetServerSocket(ServerSocketserverSocket){
this.serverSocket=serverSocket;
}

publicMap<Integer,Student>getStudentMap(){
returnstudentMap;
}

publicvoidsetStudentMap(Map<Integer,Student>studentMap){
this.studentMap=studentMap;
}

publicSocketgetSocket(){
returnsocket;
}

publicvoidsetSocket(Socketsocket){
this.socket=socket;
}

publicDataInputStreamgetDis(){
returndis;
}

publicvoidsetDis(DataInputStreamdis){
this.dis=dis;
}

publicDataOutputStreamgetDos(){
returndos;
}

publicvoidsetDos(DataOutputStreamdos){
this.dos=dos;
}

publicSocketaccept()throwsIOException{
socket=serverSocket.accept();
System.out.println("客戶端"+socket.getRemoteSocketAddress()+"連接上來了.");
dis=newDataInputStream(socket.getInputStream());
dos=newDataOutputStream(socket.getOutputStream());
returnsocket;
}

publicStringreadUTF()throwsIOException{
returndis.readUTF();
}

publicbooleansendMessage(Stringmessage){
try{
dos.writeUTF(message);
}catch(IOExceptione){
e.printStackTrace();
returnfalse;
}
returntrue;
}

publicstaticvoidmain(String[]args){
Serverserver;
try{
server=newServer(8853);
server.accept();

Stringmessage="";
while(!message.equals("quit")){
try{
message=server.readUTF();
System.out.println(message);
}catch(IOExceptione){
server.close();
//e.printStackTrace();
System.out.println("接收客戶端命令時出錯,客戶端可能已經關閉.");
break;
}
server.doCommond(message);
}

}catch(IOExceptione){
e.printStackTrace();
System.exit(-1);
}

}

publicvoidclose(){
try{
if(dis!=null){
dis.close();
}

if(dos!=null){
dos.close();
}

if(socket!=null){
socket.close();
}

if(serverSocket!=null){
serverSocket.close();
}

}catch(IOExceptione){
e.printStackTrace();
}

}

/**
*服務端與客戶端的交互處理方法
*
*@parammessage
*@return
*/
publicbooleandoCommond(Stringmessage){

if(message.startsWith("getAll")){
/**
*查詢所有學生
*/
Stringresult="";
Collection<Student>students=studentMap.values();
Iterator<Student>studentIte=students.iterator();
while(studentIte.hasNext()){
result+=studentIte.next().coding();
}
returnsendMessage("true:"+result);
}elseif(message.startsWith("getStu:id=")){
/**
*按學號查找
*/
intid;
try{
id=Integer.parseInt(message.substring(10));
}catch(NumberFormatExceptione){
sendMessage("false:參數不合法");
e.printStackTrace();
returnfalse;
}

Studentstudent=studentMap.get(id);

if(student==null){
sendMessage("false:不存在此學生");
returnfalse;
}else{
sendMessage("true:"+student.coding());
}

returntrue;

}elseif(message.startsWith("addStu:{")){
/**
*添加學生信息
*/
StringstuMessage=message.substring(message.indexOf("{")+1,message.indexOf("}"));
Studentstudent=deCode(stuMessage);
student.setId(nextId);
nextId++;
studentMap.put(student.getId(),student);

Stringresult="";
Collection<Student>students=studentMap.values();
Iterator<Student>studentIte=students.iterator();
while(studentIte.hasNext()){
result+=studentIte.next().coding();
}
returnsendMessage("true:"+result);
}elseif(message.startsWith("updateStu:{")){
/**
*更新學生信息
*/
StringstuMessage=message.substring(message.indexOf("{")+1,message.indexOf("}"));
Studentstudent=deCode(stuMessage);
if(studentMap.get(student.getId())==null){
sendMessage("false:不存在該學號.");
returnfalse;
}
studentMap.put(student.getId(),student);
sendMessage("true");
returntrue;
}else{
System.out.println("沒有對應的命令");
returnfalse;
}
}

/**
*把字元串解碼生學生類
*
*@params
*@return
*/
publicStudentdeCode(Strings){
String[]ss=s.split(",");
Studentstudent=newStudent(Integer.parseInt(ss[0]),ss[1],Integer.parseInt(ss[2]),ss[3],ss[4]);
returnstudent;
}

}

classStudent{

privateintid;
privateStringname;
privateintage;
privateStringsex;
privateStringclassName;

publicStudent(intid,Stringname,intage,Stringsex,StringclassName){
super();
this.id=id;
this.name=name;
this.age=age;
this.sex=sex;
this.className=className;
}

publicintgetId(){
returnid;
}

publicvoidsetId(intid){
this.id=id;
}

publicStringgetName(){
returnname;
}

publicvoidsetName(Stringname){
this.name=name;
}

publicintgetAge(){
returnage;
}

publicvoidsetAge(intage){
this.age=age;
}

publicStringgetSex(){
returnsex;
}

publicvoidsetSex(Stringsex){
this.sex=sex;
}

publicStringgetClassName(){
returnclassName;
}

publicvoidsetClassName(StringclassName){
this.className=className;
}

@Override
publicStringtoString(){
return"{"+id+","+name+","+age+","+sex+","+className+"}";
}

/**
*編碼方式
*
*@return
*/
publicStringcoding(){
return"{"+id+","+name+","+age+","+sex+","+className+"}";
}

}


④ java網路編程的基本內容有哪些其特點和優勢如何請進行論述。

1.用Java編寫網路程序是非常簡單的——至少比在現有其他編程環境下要簡單得多。本書的新版本帶給開發者的是Java發展的最新特性。一旦開始使用Java的網路API進行網路編程,我們能做到可以想像到的一切事情。 本書對開發網路程序進行了非常完整的介紹(從應用程序和applet兩方面),它包括了從網路基礎到遠程方法調用(RMI)的所有內容。本書的章節涵蓋了TCP和UDP套接字、組播、內容和協議處理器以及兩個新的API:JSSE(SSL實現)和JavaMail API。擴充了I/O和多線程等基礎知識。還講述了在不直接編寫網路代碼時你所能夠實現的內容,例如如何用URL實現自己的目標、applet的基本功能以及如何用Swing處理HTML。無論是有經驗的網路程序員還是只想隨意看一看的初學者,都會發現本書對於Java的網路程序類的學習是相當完整的。本書內容涵蓋了:1、Java 2(JDK 1.2和1.3)和Java1.1。2、許多完整的程序(可在線獲取)。3、網路編程基礎的所有方面。4、一些高級專題,包括RMI和組播。5、許多重要的API,有JSSE、JavaMail以及Swing中的HTML解析器。Elliotte Rusty Harold是著名的Java網站Cafe Au Lait的作者(http://metalab.unc.e/javafaq),國際知名的計算機專家。他是《Java I/O》以及其他一些Java和XML技術圖書的作者。 「直到找到這本書之後,我才開始真正理解Java網路編程。」——Bruce Eckel,《Java編程思想》的作者.
2.JAVA的特點§ 1.2 Java的特點

Java是一個廣泛使用的網路編程語言 ,它是一種新的計算概念。

首先 ,作為一種程序設計語言 ,它簡單、面向對象、不依賴於機器的結構、

具有可移植性、魯棒性、安全性、並且提供了並發的機制、具有很高的性能。其

次 ,它最大限度地利用了網路 ,Java的小應用程序 (applet)可在網路上傳輸而

不受 CPU和環境的限制。另外 ,Java還提供了豐富的類庫 ,使程序設計者可以很

方便地建立自己的系統。

下面我們分別從這三個方面來討論 Java的特點 ,然後通過把 Java與 C,

C++相比進一步指出它所具有的優點。

一、 Java語言

Java語言有下面一些特點 :簡單、面向對象、分布式、解釋執行、魯棒、

安全、體系結構中立、可移植、高性能、多線程以及動態性。

:1.簡單性

Java語言是一種面向對象的語言 ,它通過提供最基本的方法來完成指定的

任務 ,只需理解一些基本的概念 ,就可以用它編寫出適合於各種情況的應用程

序。 Java略去了運算符重載、多重繼承等模糊的概念 ,並且通過實現自動垃圾

收集大大簡化了程序設計者的內存管理工作。另外 ,Java也適合於在小型機上運

行 ,它的基本解釋器及類的支持只有 40KB左右 ,加上標准類庫和線程的支持也

只有 215KB左右。庫和線程的支持也只有 215KB左右。

2.面向對象

Java語言的設計集中於對象及其介面 ,它提供了簡單的類機制以及動態的

介面模型。對象中封裝了它的狀態變數以及相應的方法 ,實現了模塊化和信息

隱藏 ;而類則提供了一類對象的原型 ,並且通過繼承機制 ,子類可以使用父類

所提供的方法 ,實現了代碼的復用。

3.分布性

Java是面向網路的語言。通過它提供的類庫可以處理 TCP/IP協議 ,用戶

可以通過 URL地址在網路上很方便地訪問其它對象。

4.魯棒性

Java在編譯和運行程序時 ,都要對可能出現的問題進行檢查 ,以消除錯誤

的產生。它提供自動垃圾收集來進行內存管理 ,防止程序員在管理內存時容易

產生的錯誤。通過集成的面向對象的例外處理機制 ,在編譯時,Java提示出可能

出現但未被處理的例外 ,幫助程序員正確地進行選擇以防止系統的崩潰。另外,

Java在編譯時還可捕獲類型聲明中的許多常見錯誤 ,防止動態運行時不匹配問題

的出現。

5.安全性

用於網路、分布環境下的 Java必須要防止病毒的入侵。 Java不支持指針,

一切對內存的訪問都必須通過對象的實例變數來實現 ,這樣就防止程序員使用

"特洛伊 "木馬等欺騙手段訪問對象的私有成員 ,同時也避免了指針操作中容易

產生的錯誤。

6.體系結構中立

Java解釋器生成與體系結構無關的位元組碼指令 ,只要安裝了 Java運行時

系統 ,Java程序就可在任意的處理器上運行。這些位元組碼指令對應於 Java虛擬

機中的表示 ,Java解釋器得到位元組碼後 ,對它進行轉換 ,使之能夠在不同的平

台運行。

7.可移植性

與平台無關的特性使 Java程序可以方便地被移植到網路上的不同機器。

同時 ,Java的類庫中也實現了與不同平台的介面 ,使這些類庫可以移植。另外,

Java編譯器是由 Java語言實現的 ,Java運行時系統由標准 C實現 ,這使得Java

系統本身也具有可移植性。

8.解釋執行

Java解釋器直接對 Java位元組碼進行解釋執行。位元組碼本身攜帶了許多

編譯時信息 ,使得連接過程更加簡單。

9.高性能

和其它解釋執行的語言如 BASIC、 TCL不同 ,Java位元組碼的設計使之能

很容易地直接轉換成對應於特定CPU的機器碼 ,從而得到較高的性能。

10.多線程

多線程機制使應用程序能夠並行執行 ,而且同步機制保證了對共享數據

的正確操作。通過使用 多線程 ,程序設計者可以分別用不同的線程完成特定

的行為 ,而不需要採用全局的事件循環機制 ,這樣就很容易地實現網路上的實

時交互行為。

11.動態性

Java的設計使它適合於一個不斷發展的環境。在類庫中可以自由地加入

新的方法和實例變數而不會影響用戶程序的執行。並且 Java通過介面來支持

多重繼承 ,使之比嚴格的類繼承具有更靈活的方式和擴展性。
參考資料:http://chat.xwsy.com/wangshangjiaocheng/java/Java.htm
3.Java已用動態的交互應用軟體使Web栩栩如生。它使開發人員
具有『編寫一次到處運行TM」的巨大能力。而且,藉助其JavaAPI
及其編程語言上的Java虛擬機,它已產生一種分布信息的嶄新模式。
這種模式叫做Java企業計算,正在幫助各企業以各種不同的方法取
得競爭優勢。網管和控制已大大簡化。軟體分配基本上是免費的,
而且立即可實現。電子貿易已獲得。佔有成本大幅度降低。信息和
應用軟體到處可存取。
Java建立在簡單的前提基礎上,即所有微處理器都應講同一種
語言——所有內部採用晶元的產品都應能一起工作,無縫而方便地
共享信息。它已經改變企業和個人同Internet大交道的方式。現在,
它正在對消費類產品產生明顯的影響,而且從總體上更加深刻地影
響企業計算。
藉助Java,您可自由自在地使用您已擁有的硬體和軟體。這是因
為Java是獨立於平台的。它還可使您超越企業計算,使應用軟體在便
攜式計算機、信息亭、電視、蜂窩電話和其他大量設備上運行。
全世界的公司都已發現Java數不勝數的用途。所有用途可從其無
可比擬的能力,即提高可靠性、安全性和簡化各種不同計算產品和
環境的能力中受益非淺,而且節省的時間和費用十分可觀。
Java無處不在。它已擁有幾百萬個用戶,其發展速度要快於在它
以前的其他任何一種計算機產品。它可位於任何地方,而且能到處運
行。Java正在迅速被用做傳播信息的事實上標准,這是因為它既可給
企業,也可給最終用戶帶來似乎數不清的好處。

⑤ java的網路編程有哪些方面

Java網路編程的基礎知識、 套接字編程、非阻塞通信、創建HTTP伺服器與客戶程序、數據報通信、對象的序列化與反序列化、Java反射機制、RMI框架、JDBCAPI、JavaMail API、MVC設計模式、安全網路通信、CORBA和Web服務。

⑥ 有幾個java網路編程基礎的選擇題 哪位大神給下答案

、Applet為一種特殊的Panel,它可作為Java Applet程序的最外層容器。 ( )
2、Java的源碼中定義多少個類,編譯後結果就生成多少個以.class為後綴的位元組碼文 ( )
3、Java程序中,使用關鍵字new創建新的類對象,使用關鍵字free回收無用的類對象。 ( )
4、Java有垃圾回收機制,可在指定的時間使用內存回收程序釋放內存對象。 ( )
5、構造函數用於創建類的實例對象,返回類型為void,構造函數名應與類名相同。 ( )
6、在異常處理中,假設try中的代碼可能產生多種異常則可以對應多個catch語句,若catch中的參數類型有父子關系,此時應該將子類放在前面,父類放在後面。 ( )
7、含有abstract方法的類是抽象類,而抽象類中可以沒有abstract方法。 ( )
8、Java的屏幕坐標以像素為單位,容器的左下角被確定為坐標的起點。 ( )
9、靜態初始化器是在其所屬的類載入內存時由系統自動調用執行。 ( )
10、在Java中可使用賦值號( )對對象賦值,相當於生成了一個各屬性與賦值對象相同的新對象。 ( )
11、MVC是Model-View-Controller的簡寫。"View" 是應用的表示面(由JSP頁面產生)。( )
12、MVC是Model-View-Controller的簡寫。"Controller" 是提供應用的處理過程式控制制(一般是一個Servlet),通過這種設計模型控制應用邏輯。( )
13、Tomcat是支持JSP引擎的一種伺服器軟體,可以通過server.xml文件修改伺服器的配置信息。( )
14、通過Request.getParameterValues()可以獲得某個參數的多個值( )
15、運行JSP需要有JSP引擎,Tomcat是支持JSP的Web伺服器的一種。( )
16、Jsp使用的是Java腳本代碼,可跨平台運行,運行開銷小,具有速度快,可擴展性好及支持分布式處理等特點。 ( )
17、在定義了Bean的屬性後,可不創建屬性方法。( )
18、if語句是Java的條件分支語句,它控製程序以兩條路徑執行。( )
19、包是類的容器,用於保證類名空間的一致性。( )
20、JSP中不能使用HTML中的「<!-- -->」注釋方式,只能使用JSP的「<!-- -->」的注釋方式。
答案:僅供參考
T T F T T T T F T F T T T F F F T T T F

21.Java application中的主類必須包含方法main,以下哪項是main方法的正確參數?( )
A、 String args B、String ar[] C、Char arg D、StringBuffer args[]

22.以下對繼承的正確描述是( )。
A、在Java中類只允許單一繼承
B、在Java中一個類只能實現一個介面
C、在Java中一個類不能同時繼承一個類和實現一個介面
D、在Java中介面只允許單一繼承

23.paint()方法中的參數可使用哪種類型? ( )
A、Graphics B、Graphics2D C、String D、Color

24.以下不屬於Java基本數據類型的是( )
A、int B、Boolean C、float D、char

25.以下哪項可能包含菜單條( )。
A、Panel B、Frame C、Applet D、Dialog

26.應使用哪種修飾符定義一個類域或類方法?( )
A、static B、package C、private D、public

27.在瀏覽器中執行applet 程序,以下選項中的哪個方法將被最先執行( )。
A、init() B、start() C、destroy() D、stop()

28.參考以下代碼,關於該程序以下哪個說法是正確的?( )
public class Person{
static int arr[] = new int[3];
public static void main(String a[])
{
System.out.println(arr[0]);}
}
A、編譯時將產生錯誤 B、編譯時正確,運行時將產生錯誤
C、輸出零 D、輸出空

29.下列語句中,哪些關於Java內存回收的說明是正確的? ( )
A、程序員必須創建一個線程來釋放內存
B、內存回收程序負責釋放無用內存
C、內存回收程序允許程序員直接釋放內存
D、內存回收程序可以在指定的時間釋放內存對象

30.以下關鍵字中,可以用來對對象加互斥鎖的是?( )
A、transient B、synchronized C、 serialize D、static

31.以下代碼段執行後的輸出結果為( )
int x=-3; int y=-10;
System.out.println(y%x);
A、 -1 B、2 C、1 D、3

32.有以下程序片段,下列哪個選項不能插入到行1。( )
1.
2.public class Interesting{
3.//do sth
4. }
A、import java.awt.*; B、package mypackage;
C、class OtherClass{ } D、public class MyClass{ }

33.假設有如下兩個賦值語句:
a = Integer.parseInt(「5」);
b = Integer.valueOf(「5」).intValue();
下述說法正確的是( )。
A、a是整數類型變數,b是整數類對象。 B、a是整數類對象,b是整數類型變數。
C、a和b都是整數類對象並且值相等。 D、a和b都是整數類型變數並且值相等。

⑦ 現在我想學Java網路編程,但不知道從哪開始呢

我是學習java的。目前已經工作了。我想我能給你點方向。
網路編程目前行業的形勢來看還是做系統的比較多。網路編程好學好用但是賺錢比做系統少。java主要是做系統的。.net是主要用來做網路編程的。你會發現網上招聘網路編程的.net要的人比較多。而且現在it行業還是做系統比較多。網路編程對於java來說是真的大材小用了。java很厲害。專心學習吧。要學java。先把jsp,ssh,extjs這些會跟java合作的東西都學會了。工作會很好找的。工資不用說哦。

⑧ java網路編程包含些什麼

java網路編程通常包括三部分TCP/IP , UDP ,URL ;socket只是其中的一個套接字。web,jsp與上面一點關系也沒有,上面是j2se的內容。下面則是j2ee內容。web是一個服務,而jsp是一種技術。實在找關系的話,web包括了jsp.

⑨ java網路編程方向具體該怎麼去學

以前在遠標學時java的大方向就是j2ee
j2ee不僅僅是socket編程,具體包括13中核心技術。

J2EE的核心API與組件

J2EE平台由一整套服務(Services)、應用程序介面(APIs)和協議構成,它對開發基於Web的多層應用提供了功能支持,下面對J2EE中的13種技術規范進行簡單的描述(限於篇幅,這里只能進行簡單的描述):

1. JDBC(Java Database Connectivity):
JDBC API為訪問不同的資料庫提供了一種統一的途徑,象ODBC一樣,JDBC對開發者屏蔽了一些細節問題,另外,JDCB對資料庫的訪問也具有平台無關性。

2. JNDI(Java Name and Directory Interface):
JNDI API被用於執行名字和目錄服務。它提供了一致的模型來存取和操作企業級的資源如DNS和LDAP,本地文件系統,或應用伺服器中的對象。

3. EJB(Enterprise JavaBean):
J2EE技術之所以贏得媒體廣泛重視的原因之一就是EJB。它們提供了一個框架來開發和實施分布式商務邏輯,由此很顯著地簡化了具有可伸縮性和高度復雜的企業級應用的開發。EJB規范定義了EJB組件在何時如何與它們的容器進行交互作用。容器負責提供公用的服務,例如目錄服務、事務管理、安全性、資源緩沖池以及容錯性。但這里值得注意的是,EJB並不是實現J2EE的唯一途徑。正是由於J2EE的開放性,使得有的廠商能夠以一種和EJB平行的方式來達到同樣的目的。

4. RMI(Remote Method Invoke):
正如其名字所表示的那樣,RMI協議調用遠程對象上方法。它使用了序列化方式在客戶端和伺服器端傳遞數據。RMI是一種被EJB使用的更底層的協議。

5. Java IDL/CORBA:
在Java IDL的支持下,開發人員可以將Java和CORBA集成在一起。他們可以創建Java對象並使之可在CORBA ORB中展開, 或者他們還可以創建Java類並作為和其它ORB一起展開的CORBA對象的客戶。後一種方法提供了另外一種途徑,通過它Java可以被用於將你的新的應用和舊的系統相集成。

6. JSP(Java Server Pages):
JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。伺服器在頁面被客戶端所請求以後對這些Java代碼進行處理,然後將生成的HTML頁面返回給客戶端的瀏覽器。

7. Java Servlet:
Servlet是一種小型的Java程序,它擴展了Web伺服器的功能。作為一種伺服器端的應用,當被請求時開始執行,這和CGI Perl腳本很相似。Servlet提供的功能大多與JSP類似,不過實現的方式不同。JSP通常是大多數HTML代碼中嵌入少量的Java代碼,而servlets全部由Java寫成並且生成HTML。

8. XML(Extensible Markup Language):
XML是一種可以用來定義其它標記語言的語言。它被用來在不同的商務過程中共享數據。
XML的發展和Java是相互獨立的,但是,它和Java具有的相同目標正是平台獨立性。通過將Java和XML的組合,您可以得到一個完美的具有平台獨立性的解決方案。

9. JMS(Java Message Service):
MS是用於和面向消息的中間件相互通信的應用程序介面(API)。它既支持點對點的域,有支持發布/訂閱(publish/subscribe)類型的域,並且提供對下列類型的支持:經認可的消息傳遞,事務型消息的傳遞,一致性消息和具有持久性的訂閱者支持。JMS還提供了另
一種方式來對您的應用與舊的後台系統相集成。

10. JTA(Java Transaction Architecture):
JTA定義了一種標準的API,應用系統由此可以訪問各種事務監控。

11. JTS(Java Transaction Service):
JTS是CORBA OTS事務監控的基本的實現。JTS規定了事務管理器的實現方式。該事務管理器是在高層支持Java Transaction API (JTA)規范,並且在較底層實現OMG OTS specification的Java映像。JTS事務管理器為應用伺服器、資源管理器、獨立的應用以及通信資源管理器提供了事務服務。

12. JavaMail:
JavaMail是用於存取郵件伺服器的API,它提供了一套郵件伺服器的抽象類。不僅支持SMTP伺服器,也支持IMAP伺服器。

13. JAF(JavaBeans Activation Framework):
JavaMail利用JAF來處理MIME編碼的郵件附件。MIME的位元組流可以被轉換成Java對象,或者轉換自Java對象。大多數應用都可以不需要直接使用JAF。

第一個階段(java基礎階段)

1.java語法
2.面向對象
3.常用的api
4.界面編程
5.多線程
6.文件io
7.java網路編程..

第二個階段 (資料庫階段)

1.oracle
2.mysql
3.sql server
目前中國軟體公司用的最多的三大主流資料庫是sql server,mysql ,oracle .目前看來oracle資料庫越來越流行了。一般情況下PHP對應MySQL資料庫;ASP對應SQL資料庫;JSP對應ORACLE資料庫。所以大家會經常看
到市場上JAVA培訓都是用的ORACLE資料庫,其實你學會了ORACLE資料庫,再去學習MySQL、SQL數 據庫,你會覺得有很多相似的之處,學起來也容易上手了。oracle我推薦
韓順平老師 oracle視頻 (韓老師授課很有趣,特適合基礎不太好的人。講課有一套)

第三個階段 (web開發階段)

1.html
2.css
3.javascript

這三個部分是進行web開發的必須技術.一定要好好學習.不過我當時沒有發現有講的特別好的。好像很多老師都講框架和後台,界面這塊不多,所以就沒有什麼好推薦的了,大家可以
在網上找找看看,<<別具光芒>> 這本書講的挺好,不過不太適合初學者,可以看看孫鑫老師視頻的《HTML語言速成》。

第四個階段 (j2ee 中級部分)
1.servlet
2.jsp
3.mvc

這個階段是接近企業的需求了,所以學習起來,難度偏大,如果前面沒有學習扎實,會比較麻煩,我就是這樣的,前面沒有吃透,就學習j2ee 中級,搞得我消化不良。所以小弟我中心的告誡大家,把前面的學好,再學習第四個階段,這里的mvc思想不太好理解,是學習的重點。同時要學習tomcat/jboss/wl 這些伺服器所以,你可能感到要學習的東西一下多了很多,其實我就在這里動搖過,有那麼一段時間,又想放棄了。可是一想到 房東那種不屑的表情,我就想,一定要好好學習,混出個人樣來。我家是農村的,回去就是種地,當公務員我沒有關系,再說會老家我學習的專業也用不上,要不就是當個網管什麼的,不說了,反正當時心情很復雜吧。這個階段我推薦

第五個階段 (j2ee 高級部分)

1.struts
2.hibernate
3.spring

學習完Servlet、JSP然後再去學習框架Struts、Hibernate、Spring等最前沿的最流行的網路編程必備的軟體技能。
推薦的參考書籍是美河圖書提供《Servlet與JSP核心編程》
框架的基礎就是Servlet、JSP。首先大家應該學習的是Struts框架,典型的MVC模型。推薦學習視頻是 張小靜的Struts視頻。(網上有孫鑫的視頻嘛,主要就是講的Struts、Hibernate、Spring這三個框架,但是這個好像是偷錄的效果不好,聽起來比較吃力,銜接的不好)

最後關於Spring框架的視頻,在網上你可以搜索到很多,但是系統講解的真的沒有發現,本著對大家負責的態度,不敢亂推薦,大家到網上搜一下,也許現在有了也可能。

學完上述三個階段的內容,就在看看xml,ajax,ejb這些知識!尤其是的Ajax用得非常火,我們公司就用,ajax的框架流行的是(jquery,dw),我們公司用的是jquery.這里提一 下,學習Ajax之前一定要有JavaScript的基礎,推薦視頻張孝祥JavaScript網頁開發,這套視頻有相應 的配套書籍《JavaScript網頁開發》

閱讀全文

與Java網路編程基礎相關的資料

熱點內容
cad2014教程pdf 瀏覽:199
怎麼遍歷伺服器同一類型的文件 瀏覽:436
惠普戰66畫圖編程 瀏覽:805
java面向對象作業 瀏覽:568
cad插件製作加密狗 瀏覽:923
cmd命令對話框 瀏覽:290
安卓應用怎麼常駐 瀏覽:676
安卓手機怎麼群發小費才不會被鎖 瀏覽:741
相機文件夾設置 瀏覽:855
centos7php怎麼用 瀏覽:119
查看linux操作系統版本的命令 瀏覽:382
收支預演算法怎麼做 瀏覽:875
模板如何上傳到伺服器 瀏覽:372
如何同步安卓信息到新ipad 瀏覽:364
騰訊雲輕量伺服器流量警告 瀏覽:503
u盤備份linux 瀏覽:120
高壓縮比活塞 瀏覽:92
壓縮彈簧標准件 瀏覽:25
linux統計個數命令 瀏覽:292
cad轉pdf居中 瀏覽:8