『壹』 java文件的讀寫java讀文件寫文件的方法
Java文件的讀寫,java讀文件寫文件的方法很多人還不知道,現在讓我們一起來看看吧!
java讀文件寫文件的方法
有的時候經常為真么讀寫文件最合理發愁,因為JAVA提過讀寫文件的方式太多了。今天,小編為大家搜索整理了java讀文件寫文件的方法,希望大家能有所收獲!
一、java讀文件寫文件的方法
1、FileReader----讀取字元流
2、FileWriter----寫入字元流
3、BufferedReader----緩沖指定文件的輸入
該類的方法有:
void close()
關閉該流。
void mark(int readAheadLimit)
標記流中的當前位置。
boolean markSupported()
判斷此流是否支持 mark() 操作(它一定支持)
int read()
讀取單個字元。
int read(char[] cbuf, int off, int len)
將字元讀入數組的某一部分。
String readLine()
讀取一個文本行。
boolean ready()
判斷此流是否已准備好被讀取。
void reset()
將流重置為最新的標記。
long skip(long n)
跳過字元。
4、BufferedWriter----將緩沖對文件的輸出
該類的方法有:
void close()
關閉該流。
void flush()
刷新該流的緩沖。
void newLine()
寫入一個行分隔符。
void write(char[] cbuf, int off, int len)
寫入字元數組的某一部分。
void write(int c)
寫入單個字元。
void write(String s, int off, int len)
寫入字元串的某一部分。
舉個例子如下:
package aillo;
import java.io.*;
public class FileWriterReader {
//功能:讀取f:/aillo.txt文件的內容(一行一行讀),並將其內容寫入f:/jackie.txt中
//知識點:java讀文件、寫文件---<以字元流方式>
public static void main(String[] args) {
try {
FileReader fr = new FileReader("f:/aillo.txt");//創建FileReader對象,用來讀取字元流
BufferedReader br = new BufferedReader(fr); //緩沖指定文件的輸入
FileWriter fw = new FileWriter("f:/jackie.txt");//創建FileWriter對象,用來寫入字元流
BufferedWriter bw = new BufferedWriter(fw); //將緩沖對文件的輸出
String myreadline; //定義一個String類型的變數,用來每次讀取一行
while (br.ready()) {
myreadline = br.readLine();//讀取一行
bw.write(myreadline); //寫入文件
bw.newLine();
System.out.println(myreadline);//在屏幕上輸出
}
bw.flush(); //刷新該流的緩沖
bw.close();
br.close();
fw.close();
br.close();
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
二、Java 繼承
繼承就是子類繼承父類的特徵和行為,使得子類對象(實例)具有父類的實例域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為。
生活中的繼承:
兔子和羊屬於食草動物類,獅子和豹屬於食肉動物類。
食草動物和食肉動物又是屬於動物類。
所以繼承需要符合的關系是:is-a,父類更通用,子類更具體。
雖然食草動物和食肉動物都是屬於動物,但是兩者的屬性和行為上有差別,所以子類會具有父類的一般特性也會具有自身的特性。
類的繼承格式
在 Java 中通過 extends 關鍵字可以申明一個類是從另外一個類繼承而來的,一般形式如下:
類的繼承格式
class 父類 {
}
class 子類 extends 父類 {
}
為什麼需要繼承
接下來我們通過實例來說明這個需求。
開發動物類,其中動物分別為企鵝以及老鼠,要求如下:
企鵝:屬性(姓名,id),方法(吃,睡,自我介紹)
老鼠:屬性(姓名,id),方法(吃,睡,自我介紹)
企鵝類:
public class Penguin {
private String name;
private int id;
public Penguin(String myName, int myid) {
name = myName;
id = myid;
}
public void eat(){
System.out.println(name+"正在吃");
}
public void sleep(){
System.out.println(name+"正在睡");
}
public void introction() {
System.out.println("大家好!我是" + id + "號" + name + ".");
}
}
老鼠類:
public class Mouse {
private String name;
private int id;
public Mouse(String myName, int myid) {
name = myName;
id = myid;
}
public void eat(){
System.out.println(name+"正在吃");
}
public void sleep(){
System.out.println(name+"正在睡");
}
public void introction() {
System.out.println("大家好!我是" + id + "號" + name + ".");
}
}
從這兩段代碼可以看出來,代碼存在重復了,導致後果就是代碼量大且臃腫,而且維護性不高(維護性主要是後期需要修改的時候,就需要修改很多的代碼,容易出錯),所以要從根本上解決這兩段代碼的問題,就需要繼承,將兩段代碼中相同的部分提取出來組成 一個父類:
公共父類:
public class Animal {
private String name;
private int id;
public Animal(String myName, int myid) {
name = myName;
id = myid;
}
public void eat(){
System.out.println(name+"正在吃");
}
public void sleep(){
System.out.println(name+"正在睡");
}
public void introction() {
System.out.println("大家好!我是" + id + "號" + name + ".");
}
}
這個Animal類就可以作為一個父類,然後企鵝類和老鼠類繼承這個類之後,就具有父類當中的屬性和方法,子類就不會存在重復的代碼,維護性也提高,代碼也更加簡潔,提高代碼的復用性(復用性主要是可以多次使用,不用再多次寫同樣的代碼) 繼承之後的代碼:
企鵝類:
public class Penguin extends Animal {
public Penguin(String myName, int myid) {
super(myName, myid);
}
}
老鼠類:
public class Mouse extends Animal {
public Mouse(String myName, int myid) {
super(myName, myid);
}
}
繼承的特性
子類擁有父類非private的屬性,方法。
子類可以擁有自己的屬性和方法,即子類可以對父類進行擴展。
子類可以用自己的方式實現父類的方法。
Java的繼承是單繼承,但是可以多重繼承,單繼承就是一個子類只能繼承一個父類,多重繼承就是,例如A類繼承B類,B類繼承C類,所以按照關系就是C類是B類的父類,B類是A類的父類,這是java繼承區別於C++繼承的一個特性。
提高了類之間的耦合性(繼承的缺點,耦合度高就會造成代碼之間的聯系)。
繼承關鍵字
繼承可以使用 extends 和 implements 這兩個關鍵字來實現繼承,而且所有的類都是繼承於 java.lang.Object,當一個類沒有繼承的兩個關鍵字,則默認繼承object(這個類在 java.lang 包中,所以不需要 import)祖先類。
extends關鍵字
在 Java 中,類的繼承是單一繼承,也就是說,一個子類只能擁有一個父類,所以 extends 只能繼承一個類。
extends 關鍵字
public class Animal {
private String name;
private int id;
public Animal(String myName, String myid) {
//初始化屬性值
}
public void eat() { //吃東西方法的具體實現 }
public void sleep() { //睡覺方法的具體實現 }
}
public class Penguin extends Animal{
}
implements關鍵字
使用 implements 關鍵字可以變相的使java具有多繼承的特性,使用范圍為類繼承介面的情況,可以同時繼承多個介面(介面跟介面之間採用逗號分隔)。
implements 關鍵字
public interface A {
public void eat();
public void sleep();
}
public interface B {
public void show();
}
public class C implements A,B {
}
super 與 this 關鍵字
super關鍵字:我們可以通過super關鍵字來實現對父類成員的訪問,用來引用當前對象的父類。
this關鍵字:指向自己的引用。
實例
public class SuperDemo {
public static void main(String []args) {
new SubClass().showMessage();
}
}
class SuperClass {
int i = 50;
}
class SubClass extends SuperClass {
int i =100;
public void showMessage() {
System.out.printf("super.i = %d, this.i = %d ", super.i, this.i);
}
}
輸出結果為:
super.i = 50, this.i = 100
final關鍵字
final 關鍵字聲明類可以把類定義為不能繼承的,即最終類;或者用於修飾方法,該方法不能被子類重寫:
聲明類:
final class 類名 {//類體}
聲明方法:
修飾符(public/private/default/protected) final 返回值類型 方法名(){//方法體}
注:實例變數也可以被定義為 final,被定義為 final 的變數不能被修改。被聲明為 final 類的方法自動地聲明為 final,但是實例變數並不是 final
構造器
子類不能繼承父類的構造器(構造方法或者構造函數),但是父類的構造器帶有參數的,則必須在子類的構造器中顯式地通過super關鍵字調用父類的構造器並配以適當的參數列表。
如果父類有無參構造器,則在子類的構造器中用super調用父類構造器不是必須的,如果沒有使用super關鍵字,系統會自動調用父類的無參構造器。
實例
class SuperClass {
private int n;
SuperClass(){
System.out.println("SuperClass()");
}
SuperClass(int n) {
System.out.println("SuperClass(int n)");
this.n = n;
}
}
class SubClass extends SuperClass{
private int n;
SubClass(){
super(300);
System.out.println("SubClass");
}
public SubClass(int n){
System.out.println("SubClass(int n):"+n);
this.n = n;
}
}
public class TestSuperSub{
public static void main (String args[]){
SubClass sc = new SubClass();
SubClass sc2 = new SubClass(200);
}
}
輸出結果為:
SuperClass(int n)
SubClass
SuperClass()
SubClass(int n):200
三、Java與Java web有什麼不同
(1)、Java
1.定義
Java是一種可以撰寫跨平台應用軟體的面向對象的程序設計語言。Java 技術具有卓越的通用性、高效性、平台移植性和安全性,廣泛應用於PC、數據中心、游戲控制台、科學超級計算機、行動電話和互聯網,同時擁有全球最大的開發者專業社群。
2.組成方面
Java編程語言,即語法。
Java文件格式,即各種文件夾、文件的後綴。
Java虛擬機(JVM),即處理*.class文件的解釋器。
Java應用程序介面(Java API)。
3.體系
Java分為三個體系,分別為Java SE(J2SE,Java2 Platform Standard Edition,標准版),
JavaEE(J2EE,Java 2 Platform, Enterprise Edition,企業版),
Java ME(J2ME,Java 2 Platform Micro Edition,微型版)。
4.主要特性
Java語言是易學的。
Java語言的語法與C語言和C++語言很接近,使得大多數程序員很容易學習和使用Java。另一方面,Java丟棄了C++中很少使用的、很難理解的、令人迷惑的那些特性,如操作符重載、多繼承、自動的強制類型轉換。特別地,Java語言不使用指針,而是引用。並提供了自動的廢料收集,使得程序員不必為內存管理而擔憂。
Java語言是強制面向對象的。
Java語言提供類、介面和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持介面之間的多繼承,並支持類與介面之間的實現機制(關鍵字為implements)。Java語言全面支持動態綁定,而C++語言只對虛函數使用動態綁定。總之,Java語言是一個純的面向對象程序設計語言。
Java語言是分布式的。
Java語言支持Internet應用的開發,在基本的Java應用編程介面中有一個網路應用編程介面(java net),它提供了用於網路應用編程的類庫,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(遠程方法激活)機制也是開發分布式應用的重要手段。
Java語言是健壯的。
Java的強類型機制、異常處理、垃圾的自動收集等是Java程序健壯性的重要保證。對指針的丟棄是Java的明智選擇。Java的安全檢查機制使得Java更具健壯性。
Java語言是安全的。
Java通常被用在網路環境中,為此,Java提供了一個安全機制以防惡意代碼的攻擊。除了Java語言具有的許多安全特性以外,Java對通過網路下載的類具有一個安全防範機制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、位元組代碼檢查,並提供安全管理機制(類SecurityManager)讓Java應用設置安全哨兵。
(2)、Java web
1.定義
Java Web,是用Java技術來解決相關web互聯網領域的技術總和。web包括:web伺服器和web客戶端兩部分。Java在客戶端的.應用有java applet不過現在使用的很少,Java在伺服器端的應用非常的豐富,比如Servlet,JSP和第三方框架等等。Java技術對Web領域的發展注入了強大的動力。
2.主要框架
Java的Web框架雖然各不相同,但基本也都是遵循特定的路數的:使用Servlet或者Filter攔截請求,使用MVC的思想設計架構,使用約定,XML或 Annotation實現配置,運用Java面向對象的特點,面向抽象實現請求和響應的流程,支持Jsp,Freemarker,Velocity等視圖。
3.JSP優點
Java EE標准,這意味著有很大的市場需求和更多的工作機會。
上手快速並且相對容易。
有大量可用的組件庫。
4.SpringMVC優點
對Spring MVC覆蓋綁定(overriding binding)、驗證(validation)等提供生命周期管理。
與許多表示層技術/框架無縫集成:JSP/JSTL、Tiles、Velocity、FreeMarker、Excel、XSL、pdf 等。
便於測試--歸功於IoC。
四、 Java語言的出現
自從1946年世界上第一台電子計算機問世以來,計算模式的發展經歷了三個階段:集中計算模式、分散計算模式和網路計算模式。Internet的出現,為在網路計算模式下的科學計算和信息處理提供了良好平台。然而,要充分利用網路計算模式的功能與效益,平台的運行環境是個制約因素,而Java語言和Java技術則是解決這一問題的最佳途徑。
五、Java語言的主要特點
Java語言是一種適用於網路編程的語言,它的基本結構與C++極為相似,但卻簡單得多。它集成了其它一些語言的特點和優勢,又避開了它們的不足之處。它的主要特點如下:
1. 簡單性
Java增加了內存空間自動垃圾收集的功能,復雜特性的省略和實用功能的增加使得開發變得簡單而可靠,系統非常小,其基本解釋和類支持部分只佔40KB,附加的基本標准庫和線程支持也只需增加175KB。因此,Java應用軟體能在相當小的系統之上獨立工作。
2. 平台的獨立性
可以說這是Java最吸引人的地方。由於它採用先編譯成中間碼(位元組碼),然後裝載與校驗,再解釋成不同的機器碼來執行,即「Java虛擬機」的思想,「屏蔽」了具體的「平台環境」特性要求,使得只要能支持Java虛擬機,就可運行各種Java程序。
3. 面向對象的技術
面向對象的技術是近年來軟體開發中用得最為普遍的程序設計方法,它通過把客觀事物進行分類組合、參數封裝、用成員變數來描述對象的性質、狀態,而用方法(成員函數)來實現其行為和功能。
4. 多線程
多線程機制使應用程序能並行執行,Java有一套成熟的同步原語 ,保證了對共享數據的正確操作.通過使用多線程,程序設計者可以分別用不同的線程完成特定的行為,而不需要採用全局的事件循環機制,這樣就很容易實現網路上實時的交互行為。
5. 動態性
Java的設計使它適合於一個不斷發展的環境。在類庫中可以自由地加入新的方法和實例變數而不會影響用戶程序的執行。並且Java通過介面來支持多重繼承,使之比嚴格的類繼承具有更靈活的方式和擴展性。
6. 安全性
Java有建立在公共密鑰技術基礎上的確認技術,指示器語義的改變將使應用程序不能再去訪問以前的數據結構或是私有數據,大多數病毒也就無法破壞數據.因而,用Java可以構造出無病毒、安全的系統。
六、Java語言的發展
Java自正式問世以來已經歷了17年的歷程,時間雖短,發展極快。一年一度在美國舊金山召開的世界Java One語言開發者大會,既是了解Java最新技術動態、應用成果和下一步發展趨勢的最好場所,又是推動下一年Java快速發展的重要動力。
1. 重點放在企業平台
隨著Internet的飛速發展,企業計算模式正摒棄C/S結構而採用Web-Browser結構,此即瘦客戶端/胖伺服器、大容量資料庫的3層或N層體系結構。由於Java的特點,使得它在開發伺服器端的應用程序方面有著得天獨厚的優勢,面向伺服器端的J2EE為當今逐漸流行的N層體系結構提供了一個標準的Java計算平台:界面一致、工具簡易、豐富、Web頁面互聯便捷,從而能大大加速和簡化各種應用系統的開發。
2. 加速後PC時代的進程
計算機的發展創造了Internet,但是計算機現在卻不是訪問Internet的唯一方式。正在出現的信息化、智能化的消費類電子產品打破了PC作為信息終端的壟斷地位,成為人類進入Internet的新門戶。信息終端的多元化預示著所謂後PC(post-PC)時代的到來。消費類的信息終端量大面廣,是典型的瘦客戶機,其本身的資源和能力不能與PC相比,但必須更加智能化,並對伺服器端的管理提出了更高的要求。而Java平台恰恰滿足了這種要求。
3. 應用系統異彩紛呈
Java語言的出現和發展,得到了IT業界的青睞,它像一面大旗,凝聚了世界眾多的廠商與Sun公司一道,結成了對抗微軟壟斷的聯盟特別在實時系統開發方面,以IBM為首開發出了應用於工業實時環境的Java嵌入系統,展現出Java在工業領域的廣闊應用前景。
4. Java技術
Java發展至今日,已不僅僅是一種編程語言,實際上已形成了一門技術.其內容包括:
(1)Java軟體包,Java語言及其編程技術、Java OS、Java開發環境與工具、Java語言的各種軟體包、資料庫介面JDBC等。
(2)Java虛擬機及其規范。
(3)Java嵌入技術(Java晶元)已推出的有Java戒指、Java卡等。Java處理器將應用在從低價消費電子產品到高端網際網路伺服器領域。
(4)Java計算,基於Java技術的企業Internet/Intranet信息系統以及其他應用系統。
七、結語
Java自問世以來,以其得天獨厚的優勢,在IT業界掀起了研究、開發它的浪潮,顯示了「鵬程萬里」的美好前景。作為一種與底層硬體無關的、「編寫一次,到處運行」的高級語言和計算平台,Java天生就具有將網路上的各個平台連成一體的能力,真正實現了「網路就是計算機」的理念。以Java為代表的網路的成長,改變了我們的聯系方式、生活方式、學習方式和經營方式。它的來到使我們目睹了一場類似印刷術的重大變革。毫無疑問,它將影響人類社會的發展,加速人類進入網路時代!
『貳』 請問作為一個java的程序員要具備哪些技術
java方面編程的初級學員必需掌握的基礎知識:java語言、HTML、JSP以及至少一種資料庫。這是最低的標准,但是也是最高的要求,因為基本上其他相關的技術和架構都是基於這些以上的。總之,我覺得都是一通百通,基本上做一個項目就能熟練掌握一種技術。
至於企業方面:本人先後在國內幾個大的軟體公司工作過,外企也差不多。小公司我沒有去過,但是我覺得小公司不能去,學的技術好像很多,但是其實阻礙了一個工程師從一個工程師到項目經理或者技術經理的發展,因為小公司做的不可能是很大的項目,難么架構和設計不那麼嚴謹,這樣從宏觀來看對一個程序員是沒有好處的。
企業方面根據所做項目的不同用到的技術也不一樣,而基本上大一點的公司都有自己的主營項目,也就是強項。比如亞信是做通信行業的,目前處在web化階段,其對於java工程師的需求很大,但是它的核心還是C語言的,所以一個java程序員在這樣的公司是不會有多大發展的,也學不到什麼東西,值得一提的是這種公司都有自己的工具軟體,也就是把一些常用的模塊或者功能都做好了,你只要調用就行了,所以基本上你到這種公司學不到高深的技術,以後跳槽也難! 現在大一點的公司都有自己的工具軟體,目的是封裝常用的模塊,縮短開發周期,提高運行效率,但是對於喜歡技術的人來說就沒有什麼好處了。
最後,想說的是:企業其實需要的是學習能力強的人,踏實肯干就會得到認可。至於技術都是進入公司以後的事情,只要上面說的幾樣搞清楚了,面試談的不錯,加點技巧就可以了!
java 學習資料要視頻干什麼呢? 用Eclipse工具自己買本書或者到網上下幾個程序源代碼研究一下,再寫幾個小例子就差不多了!
這些都是我的心得,我是工作4年的java工程師,也許說得不準確,但確實是親身所見。希望你別走我的彎路,祝你順利開心!
『叄』 想做Java軟體開發方面的工作 需要看什麼書
入門類
1.《java從入門到精通》(第3版)
【內容介紹】
本書從初學者角度出發,通過通俗易懂的語言、豐富多彩的實例,詳細介紹了使用Java語言進行程序開發應該掌握的各方面技術。全書共分28章,包括:初識Java,熟悉Eclipse開發工具,Java 語言基礎,流程式控制制,字元串,數組,類和對象,包裝類,數字處理類,介面、繼承與多態,類的高級特性,異常處理,Swing程序設計,集合類,I/O輸入輸出,反射,枚舉類型與泛型,多線程,網路通信,資料庫操作,Swing表格組件,Swing樹組件,Swing其他高級組件,高級布局管理器,高級事件處理,AWT繪圖與音頻播放,列印技術和企業進銷存管理系統等。所有知識都結合具體實例進行介紹,涉及的程序代碼給出了詳細的注釋,可以使讀者輕松領會Java程序開發的精髓,快速提高開發技能。
【推薦理由】
本書內容詳盡,實例豐富,非常適合作為編程初學者的學慣用書,也適合作為開發人員的查閱、參考資料。
2.《java核心技術卷一》
【內容介紹】
本書是Java技術經典參考書,多年暢銷不衰,第7版在保留以前版本風格的基礎上,涵蓋Java2開發平台標准版J2SE5.0的基礎知識,主要內容包括面各對象程序設計、反射與代理、介面與內部類、事件監聽器模型、使用Swing UI工具箱進行圖形用戶界面設計,異常處理、流輸入/輸出和對象序列化、泛型程序設計等。本書內容翔實、深入淺出,附有大量程序實例,極具實用價值,是Java初學者和Java程序員的必備參考書。
【推薦理由】
本書出版以來,深受廣大讀者的喜愛,它全面介紹了Java SE的基礎知識,不但具有使用價值,而且易於閱讀,易理解,它必成為想進軍Java和基礎薄弱同學的不二之選。
3.《java編程語言》
【內容介紹】
本書以Java語言創建者的獨特視角向讀者展現了為什麼以及如何使用Java語言,以便讀者理解Java語言的基本設計目標以及它在現實世界中的應用。本書介紹的是Java語言的最新版本,該版本在《Java Language Specification,Second Edition》中定義,在Java2SDK1.3標准版中實現。本書已是第三版,在經構上相對前兩版有所調整,重點講述了新的語言特徵,並提供了新API的使用實例。本書完全覆蓋了Java語言當前版本的特徵和類庫,可以作為Java語言的入門向導,也可作為高級Java開發及Java語言教學的參考用書。
【推薦理由】
本書介紹的是Java語言的最新版本,該版本在《Java Language Specification,Second Edition》中定義,在Java2SDK1.3標准版中實現。本書已是第三版,在經構上相對前兩版有所調整,重點講述了新的語言特徵,並提供了新API的使用實例。本書完全覆蓋了Java語言當前版本的特徵和類庫,可以作為Java語言的入門向導,也可作為高級Java開發及Java語言教學的參考用書。
進階類
1.《java編程思想》
【內容介紹】
本書共22章,包括操作符、控制執行流程、訪問許可權控制、復用類、多態、介面、通過異常處理錯誤、字元串、泛型、數組、容器深入研究、JavaI/O系統、枚舉類型、並發以及圖形化用戶界面等內容。這些豐富的內容,包含了Java語言基礎語法以及高級特性,適合各個層次的Java程序員閱讀,同時也是高等院校講授面向對象程序設計語言以及Java語言的絕佳教材和參考書。
【推薦理由】
本書贏得了全球程序員的廣泛贊譽,即使是最晦澀的概念,在BruceEckel的文字親和力和小而直接的編程示例面前也會化解於無形。從Java的基礎語法到最高級特性(深入的面向對象概念、多線程、自動項目構建、單元測試和調試等),本書都能逐步指導你輕松掌握。
2.《java核心技術卷二》
【內容介紹】
《JAVA核心技術卷2:高級特徵》是Java技術權威指南,全面覆蓋Java技術的高級主題,包括流與文件、XML、網路、資料庫編程、高級Swing、高級 AWT、JavaBean構件、安全、分布式對象、腳本、編譯與註解處理等,同時涉及本地化、國際化以及Java SE 6的內容。《JAVA核心技術卷Ⅱ:高級特徵》對Java技術的闡述精確到位,敘述方式深入淺出,並包含大量示例,從而幫助讀者充分理解Java語言以及Java類庫的相關特性。
【推薦理由】
本書是經典的《Java核心技術,卷II:高級特性》的最新修訂版,涵蓋了Java SE6平台的高級用戶界面程序設計和企業特性。與第1卷(涵蓋了核心的語言和類庫特性)一樣,本卷已經更新到了JavaSE6。並且對新內容都作了重點標注。書中所有的示常式序都進行了詳細的設計,用來演示最新的編程技術。並展示針對專業開發者在現實中所碰到的典型問題的最佳解決方案。本書包含有關StAXAPI、JDBC 4、編譯器API、腳本框架、閃屏和托盤API以及其他許多JavaSE6改進特性的新章節。本書聚焦於Java語言中更高級的特性,包括下列內容:流與文件、網路、資料庫編程、XML、JNDI與LDAP、國際化、高級GUI組件、Java2D、JavaBeans、安全、RMI與Web服務、高級AWT、註解、本地方法。
3.《瘋狂java講義》
【內容介紹】
本書深入介紹了Java編程的相關方面,全書內容覆蓋了Java的基本語法結構、Java的面向對象特徵、Java集合框架體系、Java泛型、異常處理、Java GUI編程、JDBC資料庫編程、Java注釋、Java的IO流體系、Java多線程編程、Java網路通信編程和Java反射機制。共覆蓋了java.awt、java.lang、java.io和java.nio、java.sql、java.text、java.util、javax.swing包下絕大部分類和介面。
【推薦理由】
本書並不單純從知識角度來講解Java,而是從解決問題的角度來介紹Java語言,所以本書中介紹了大量實用案例開發。這些案例既能讓讀者鞏固每章的知識,又可以讓讀者學以致用、激發編程自豪感,進而引爆內心的編程激情。本書光碟里包含書中所有示例的代碼,如果讀者希望獲得課後練習的程序代碼。
本書為所有打算深入掌握Java編程的讀者而編寫,適合各種層次的Java學習者和工作者閱讀,也適合作為大學教育、培訓機構的Java教材。但北大青鳥光谷校區專業老師認為,如果只是想簡單涉獵Java,則本書過於龐大,不適合閱讀。
JavaEE類
1.《javaWeb整合開發王者歸來》
【內容介紹】
本書全面介紹了Java Web開發中的各種相關技術及知識。全書分為9篇,內容層次清晰,難度循序漸進。第1篇為入門篇,內容包括Java Web開發概述等;第2篇為基礎篇,內容包括Servlet技術、JSP技術、會話跟蹤、過濾器Filter、監聽器Listener等;第3篇為高級篇,內容包括JSTL標簽庫的使用、如何自定義標簽、資源國際化、資料庫概述、JDBC詳解、XML概述等;第4篇為Struts框架篇,內容不僅包括Struts 1.x的內容,也包括Struts 2.x中的內容;第5篇為Hibernate框架篇;第6篇為Spring框架篇;第7篇為EJB與Web服務篇,內容包括EJB 3概述、JPA規范Web服務框架XFire等;第8篇為工具篇,內容包括在Java Web項目中常用的開源工具框架、主要有版本管理工具SVN、日誌工具commons-logging與Log4J、報表圖形引擎JFreeChart、PDF組件iText等;第9篇為實戰篇,內容為兩個典型的應用系統:論壇系統(Spring+Struts+Hibernate)、寵物商店(EJB 3+JPA+Struts 2)。
【推薦理由】
資深Java程序員耗時一年時間寫作,十年開發經驗毫無保留。全面、系統、深入介紹Java Web開發的核心技術與主流框架。
2.《spring 入門到精通》
【內容介紹】
本書由淺入深,循序漸進地介紹了Spring的體系結構和相關知識點,目的是幫助初學者快速掌握Spring,並能使用Spring進行應用程序的開發。本書最大的特色在於每章都是由淺入深,從一個簡單的示例入手,讓讀者快速了解本章內容,然後再詳細講解本章涉及的基本原理和知識點,最後再通過一個詳細的示例宋鞏固所學內容。本書每一章的例子都是經過精挑細選,具有很強的針對性,力求讓讀者通過親自動手做而掌握其原理和方法,從而學習盡可能多的知識。本書適用於初、中級軟體開發人員,同時也可用作高校相關專業師生和社會培訓班的教材。
【推薦理由】
全書共分14章,內容涵蓋了Spring的基礎概念、核心容器、Spring AOP、事務處理、持久層封裝、Web框架、定時器、Spring和Struts、Spring和Hibernate、Spring和Ant、Spring和Junit。本書適用於初、中級軟體開發人員,同時也可用作高校相關專業師生和社會培訓班的教材。
3.《JavaWeb開發詳解》
【內容介紹】
本書共分4部分,從XML、Servlet、JSP和應用的角度向讀者展示了Java Web開發中各種技術的應用,循序漸進地引導讀者快速掌握Java Web開發。
【推薦理由】
本書內容全面,涵蓋了從事Java Web開發所應掌握的所有知識,在知識的講解上本書採用理論與實踐相結合的方式,從程序運行的內部機制進行分析講解,並通過大量的實例和實驗來驗證並運用本書的知識。
對於一個程序員來說,編程技術至關重要,然而技術的提高不是一蹴而就的,它需要時間的積累和經驗的沉澱。每一位技術大牛都是從菜鳥起步的,技術升級的過程就是不斷閱讀經典、不斷編寫程序、不斷調試異常的過程,所以閱讀一定量的專業書籍還是很有必要的,希望以上推薦的幾本書籍對有志於編程開發的同學有所幫助。
『肆』 推薦幾本javaEE的書籍,經典的。不要李剛的(雖然講的好,但是繁瑣,基礎東西太多了)。結合了三大框架的
[Spring.2.0核心技術和最佳實踐。廖學鋒掃描版。
容易的Hibernate「PDF清晰版。PDF
精通struts的基於MVC的設計與開發PDF
[Struts.2權威指南 - 基於MVC開發的WebWork的核心。鋼。Java.web掃描版PDF
Java方面的內部電驢學習知識
:
遞歸集合J2SE面向對象 - 封裝,繼承,多態
內存分析,通用,自動裝箱和拆箱,注釋
IO
多線程,線程同步
TCP / UDP
AWT,事件模型,匿名類
反射機制
SQL語句
多表聯接的資料庫(Oracle或MySQL)的正則表達式,內部和外部連接,子查詢
管理表,視圖,索引,序列,約束樹的存儲
存儲過程,觸發器
資料庫設計三大範式,
3:JDBC
JDBC基本/>連接池
樹的存儲和顯示
數據源的RowSet
JDBC連接Oracle和MySQL
:HTML_CSS_JAVASCRIPT
HTML,CSS,JavaScript的基本語法
> JavaScript的形成判斷
DOM編程基礎(事件處理程序)
JS效果,如TreeView,下拉聯動JS學習方法
JS調試方法
DreamWeaver的初步(創建HTML,表格,表單,CSS)
5:Servlet的基礎JSP
Tomcat的
servlet的基礎的
web.xml中的配置基本
Web應用程序結構
servlet的生命周期
請求的響應常用的方法
的ServletContext類
HTTP協議基礎(GET,POST)
餅干會話
應用程序
幾個語法(JSP,包括JSTL)注意練習的項目,而不是堅持的語法和包裝步驟的細節之前。
6:Struts的
多層體系結構的理論
模式1和模式2
Struts的
MVC
操作的業務邏輯類的基本概念之間的關系
Struts和JSP之間傳遞數據的
的Struts的治療過程(流量控制)
的Struts的TagLib(了解常用的)
JSTL
中的ActionForm
>欄位集合
上傳文件的類型轉換
DTO
動力作用形成的
驗證框架
的ActionForward轉發和重定向
動態生成的ActionForward
全局和局部的ActionForward
行動的推進范圍
UnknownActionMapping
行動線程安全
I18N
如何切換語言環境的
Struts的異常處理機制處理
用戶自定義的異常處理程序
Struts的多模塊配置7:XML
(XML / XSL,XSLT / DTD的,SCHEMA基本的Java編程的概念可以自動處理暫且不說)
8:休眠 OR映射
Hibernate的基本發展原則,步驟
休眠
基本介面(重點屆)
常見的屬性的映射關系映射
原生SQL
懶級聯反
繼承關系映射
HQL
性能優化緩存二級緩存查詢緩存
事務並發悲觀鎖定,樂觀鎖定
OpenSessionInView
CurrentSession
(至於JTA,的聯合主鍵的自然主鍵動態主鍵的任何類型Creteria查詢截擊和事件自定義類型,等等。 ,你可以暫時扔到一邊)
9:春季
IOC / DI
Spring配置
春季建築
AOP和Spring AOP
聲明式事務(AOP )
Spring + Hibernate的春天的Web
范圍
(其他的Spring模塊,你可以暫時扔到一邊自學)
10:EJB3.0
J2EE架構基金會(JTA JMS)
EJB基礎(地位及基本理論,分類等)
注釋
Ant的編譯和部署EJB
會話Bean的
EJB依賴注入
持久性API
(JBoss的學習EJB3.0)
11:SOA
30個進球
你需要精通面向對象分析與設計(OOA / OOD),涉及模式(GOF,J2EEDP),以及綜合模式。你應該充分了解UML,尤其是類,對象,互動,和statediagrams。<BR / 2,你需要學習JAVA語言以及它的核心類庫集合,序列化,流,網路,多線程,反射,事件處理,NIO,定製系統的本地化,以及其他的基本知識。
3類載入器,JVM,classreflect,以及垃圾回收的基本工作機制,您應該是知道的,你應該有能力反編譯一個類文件並且明白一些基本的匯編指令。
如果你要寫一個客戶端程序,你需要學習WEB的小應用程序(applet),必需掌握GUI設計的思想和方法的,和桌面應用程序的SWING,AWT,SWT,你也明白的UI部件的JAVABEAN組件模式中。JAVABEANS適用於業務邏輯的分離表示層JSP。
5。需要學習java資料庫技術,如JDBCAPI,會使用至少一種persistence / ORM構架,比如Hibernate,JDO,CocoBase,TopLink的InsideLiberator(國產JDO紅工廠軟體)或者iBatis。
6。您還應該了解對象關系的阻抗失配的含義,以及它是如何影響業務對象的與關系型資料庫交互,和結果它的操作,但還需要掌握不同的資料庫產品,如拉克勒,MySQL和MSSQLSERVER。
7。你需要學習JAVA的沙盒安全模式(類載入器,bytecodeverification,的經理,policyandpermissions,
代碼簽名,加密技術,認證,Kerberos身份,和其他人)digitalsignatures,以及不同的安全/認證API的JAAS()的,JCE(JavaCryptographyExtension)的的JSSE(JavaSecureSocketExtension)以及JGSS(JavaGeneralSecurityService)。
8。你需要學習Servlets和JSP,以及的JSTL(StandardTagLibraries)和選定的第三方TagLibraries。
9。你需要熟悉主流的網頁框架,例如JSF,Struts中,掛毯,蠶繭,WebWork中,和他們下面的涉及模式,如MVC/MODEL2。
10。你需要學習如何使用及管理WEB伺服器,例如tomcat的,樹脂的JRUN,並知道如何的基礎上擴展和維護WEB程序。
11。你需要學習分布式對象和遠程API,例如RMI和RMI / IIOP。
12。你需要掌握各種流行中間件技術標准,並結合java實現,比如Tuxedo,CROBA,當然也包括JavaEE的本身。你應該學會
你需要學習至少一個XMLAPI例如JAXP(JavaAPIforXMLProcessing)的JDOM(JavaforXMLDocumentObjectModel),DOM4J,或JAXR(JavaAPIforXMLRegistries)。
14。如何利用JAVAAPI和工具來構建WebService的。(JavaAPIforXML / RPC),JAX-RPC SAAJ的(SOAPwithAttachmentsAPIforJava)的,JAXB(JavaArchitectureforXMLBinding)JAXM(JavaAPIforXMLMessaging)的JAXR(JavaAPIforXMLRegistries),或JWSDP(JavaWebServicesDeveloperPack)的。
> 15。需要,學習一個輕量級應用程序框架,例如Spring中,PicoContainer的阿瓦隆,以及他們的IoC / DI風格(setter方法??,構造函數,集成*** ceinjection)。
16。你需要熟悉不同的J2EE技術??,例如JNDI(JavaNamingandDirectoryInte *** CE)的JMS(JavaMessageService)的,JTA / JTS(JavaTransactionAPI / JavaTransactionService)的JMX(JavaManagementeXtensions),以及JavaMail的。
17。企業類級JavaBeans(EJB),你需要學習以及它們的不同組件模式:無狀態/ StatefulSessionBeans,EntityBeans(bean-ManagedPersistence的包含[BMP]或容器ManagedPersistence [CMP]和它的EJB-QL),或者消息DrivenBeans(MDB )
18。你需要學習如何管理與配置一個J2EE應用程序伺服器,如WebLogic,JBoss的,並利用它的附加服務,例如簇類,連接池以及分布式處理的支持。您還需要了解它是如何封裝和配置應用程序能夠監控,調整它的性能。
19。你需要熟悉面向方面的編程,以及面向屬性的程序設計(兩個很容易混淆縮寫為AOP),以及他們的主流JAVA規格和執行。如AspectJ和AspectWerkz。
20。熟悉的服務不同有用的API和框架為你工作。例如,Log4J的(記錄/跟蹤),石英(調度)的JGroups(networkgroupcommunication)JCache(distributedcaching)的,Lucene的(全職文章搜索)JakartaCommons的。
21。如果你要對接和舊的系統或本地平台,你需要學習的JNI(JavaNativeInte *** CE)和JCA(JavaConnectorArchitecture)。
22。JINI技術,您需要熟悉,和它的分布式系統,如主CROBA。
23。你需要JavaCommunityProcess的( JCP),和他的不同JavaSpecificationRequests(JSR的),如JOLAP的Portlets(168)(69)(73),DataMiningAPI,等等。
24。你應該熟悉與的一個JAVAIDE例子的SunOne的NetBeans IntelliJIDEA或Eclipse(有些人更喜歡VI或EMACS來編寫文件不管你是什麼:)
25.JAVA一些配置(精確)是冗長的,它需要很多的人工代碼(例如EJB),所以你需要熟悉代碼生成工具,例如XDoclet。
26。你需要熟悉單元測試體系(JNunit),並且學習不同的生成,部署工具(Ant,Maven的)。
27。你需要熟悉JAVA開發的,經常使用的軟體工程過程。例如RUP(RationalUnifiedProcess)andAgilemethodologies的。
28。你需要深入了解加熟練操作和配置操作系統,比如GNU / Linux操作系統,sunsolaris MacOS的,作為一個跨平台的軟體開發。
29。您還需要跟上Java的發展步伐,比如現在可以深入學習javaME的,以及各種java中,使用的技術,如啟動一個新的web富客戶端技術的新規范。
30。您需要了解開源,至少在,許多Java技術的直接依賴開放源碼,以推動發展,如JAVA3D技術。
『伍』 jsp是什麼啊
Java Web,是用Java技術來解決相關web互聯網領域的技術總和。web包括:web伺服器和web客戶端兩部分。Java在客戶端的應用有java applet不過現在使用的很少,Java在伺服器端的應用非常的豐富,比如Servlet,JSP和第三方框架等等。Java技術對Web領域的發展注入了強大的動力。
編輯本段Java Web框架簡介
Java 的 Web框架雖然各不相同,但基本也都是遵循特定的路數的:使用Servlet或者Filter攔截請求,使用MVC的思想設計架構,使用約定,XML或 Annotation實現配置,運用Java面向對象的特點,面向抽象實現請求和響應的流程,支持Jsp,Freemarker,Velocity等視圖。
JSF
優點: Java EE標准,這意味著有很大的市場需求和更多的工作機會 上手快速並且相對容易 有大量可用的組件庫 缺點: 大量的JSP標簽 對REST和安全支持不好 沒有一個統一的實現。既有SUN的實現,又有Apache的實現——MyFaces。
Spring MVC
優點: 對覆蓋綁定(overriding binding)、驗證(validation)等提供生命周期管理 與許多表示層技術/框架無縫集成:JSP/JSTL、Tiles、Velocity、FreeMarker、Excel、XSL、PDF 等 便於測試——歸功於IoC 缺點: 大量的XML配置文件 太過靈活——沒有公共的父控制器 沒有內置的Ajax支持
Stripe
優點: 不需要書寫XML配置文件 良好的學習文檔 社區成員很熱心 缺點: 社區比較小 不如其他的項目活躍 ActionBean裡面的URL是硬編碼的
Struts 2
優點: 架構簡單——易於擴展 標記庫很容易利用FreeMarker或者Velocity來定製 基於控制器或者基於頁面的導航 缺點: 文檔組織得很差 對新特徵過分關注
Tapestry
優點: 一旦學會它,將極大地提高生產率 HTML模板——對頁面設計師非常有利 每出一個新版本,都會有大量的創新 缺點: 文檔過於概念性,不夠實用 學習曲線陡峭 發行周期長——每年都有較大的升級
Wicket
優點: 對Java開發者有利(不是Web開發者) 頁面和顯示綁定緊密 社區活躍——有來自創建者的支持 缺點: HTML模板和Java代碼緊挨著 需要對OO有較好的理解 Wicket邏輯——什麼都用Java搞定
『陸』 寫出MVC的工作原理
1.當用戶在瀏覽器中點擊一個鏈接或者提交一個表單時,那麼就會產生一個請求(request)。當請求離開瀏覽器時,它會攜帶用戶請求的信息。
2.請求的第一站到達的是Spring的DispatcherServlet,它是一個前端控制器,工作是將用戶的請求委託給其他的組件(這里是交給Spring MVC的控制器)去處理。
這里DispatcherServlet要決定將請求傳給哪一個控制器(Controller)去處理,那麼這時就需要處理器映射(Handler Mapping)了。
處理器映射會看請求的URL信息,然後決定將請求交給哪一遲核跡個控制器去處理。比如說有兩個控制器ControllerA和ControllerB,分別處理後綴名為.html和.jsp送來的請求,那麼當請求者的後綴名為.html時,那麼DispatcherServlet就將請求交給ControllerA進行處理。
C代表Controller,負責用戶界面和業務邏輯層的通信控制,一方面解釋來自用戶界面的輸入,識別用戶動作(如點擊按鈕等),調用相應Model中的方法,另一方面處理來自Model的事件和返回的執行結果,調用適當的View顯示給用戶,Controller主要由Servlet完成。
M代表Model,負責整個解決方案的業務邏輯實現,底層的資料庫也由Model訪問和操作;
V代表View,負責系統向用戶的展示,主要由HTML及JSP等完成;
MVC組件說明:
以下組件通常使用框架提供實現:
DispatcherServlet:作為前端控制器,整個流程式控制制的中心,控制其它組件執行,統一調度,降低組件之間的耦合性,提高每個組件的擴展性。
HandlerMapping:通過擴展處理器映射器實現不同的映射方式,例如:配置文件方式,實現介面方式,註解方式等。
HandlAdapter:通過擴展處理器適配器,支持更多類型的處理器。
ViewResolver:通過擴展視圖解析器,支持更多類型的視圖解析,例如:jsp、freemarker、pdf、excel等。
組件:
1、前端控制器DispatcherServlet(不需要工程師開發),由框架提供
作用:接收請求,響應結果,相當於轉發器,中央處理器。有了dispatcherServlet減少了其它組件之間的耦合度。
用戶請求到達前端控制器,氏腔它就相當於mvc模式中的c,dispatcherServlet是整個流程式控制制的中心,由它調用其它組件處理用戶的請求,dispatcherServlet的存在降低了組件之間的耦合性。
2、處理器映射器HandlerMapping(不需要工程師開發),由框架提供
作用:根據請求的url查找Handler
HandlerMapping負責根據用戶請求找到Handler即處理器,springmvc提供了不同的映射器實現不同的映射方式,例如:配置文件方式,實現介面方式,註解方式碼並等。
3、處理器適配器HandlerAdapter
作用:按照特定規則(HandlerAdapter要求的規則)去執行Handler
通過HandlerAdapter對處理器進行執行,這是適配器模式的應用,通過擴展適配器可以對更多類型的處理器進行執行。
4、處理器Handler(需要工程師開發)
注意:編寫Handler時按照HandlerAdapter的要求去做,這樣適配器才可以去正確執行Handler
Handler 是繼DispatcherServlet前端控制器的後端控制器,在DispatcherServlet的控制下Handler對具體的用戶請求進行處理。
由於Handler涉及到具體的用戶業務請求,所以一般情況需要工程師根據業務需求開發Handler。
5、視圖解析器View resolver(不需要工程師開發),由框架提供
作用:進行視圖解析,根據邏輯視圖名解析成真正的視圖(view)
View Resolver負責將處理結果生成View視圖,View Resolver首先根據邏輯視圖名解析成物理視圖名即具體的頁面地址,再生成View視圖對象,最後對View進行渲染將處理結果通過頁面展示給用戶。
springmvc框架提供了很多的View視圖類型,包括:jstlView、freemarkerView、pdfView等。
一般情況下需要通過頁面標簽或頁面模版技術將模型數據通過頁面展示給用戶,需要由工程師根據業務需求開發具體的頁面。
6、視圖View(需要工程師開發jsp...)
View是一個介面,實現類支持不同的View類型(jsp、freemarker、pdf...)