第一篇:java個人小結(jié)(范文模版)
原文[2007年03月25日 星期日 上午 03:04]
Java發(fā)展到現(xiàn)在,按應用來分主要分為三大塊:J2SE,J2ME和J2EE。這三塊相互補充,應用范圍不同。
J2SE就是Java2的標準版,主要用于桌面應用軟件的編程;
J2ME主要應用于嵌入是系統(tǒng)開發(fā),如手機和PDA的編程;
J2EE是Java2的企業(yè)版,主要用于分布式的網(wǎng)絡程序的開發(fā),如電子商務網(wǎng)站和ERP系統(tǒng)。先學習j2se
要學習j2ee就要先學習j2se,剛開始學習j2se先建議不要使用IDE,然后漸漸的過渡到使用IDE開發(fā),畢竟用它方便嘛。學習j2se推薦兩本書,《java2核心技術一二卷》,《java編程思想》,《java模式》。其中《java編程思想》要研讀,精讀。這一段時間是基本功學習,時間會很長,也可能很短,這要看學習者自身水平而定。
不要被IDE糾纏
在學習java和j2ee過程中,你會遇到五花八門的IDE,不要被他們迷惑,學JAVA的時候,要學語言本身的東西,不要太在意IDE的附加功能,JAVA編程在不同IDE之間的轉(zhuǎn)換是很容易的,過于的在意IDE的功能反而容易耽誤對語言本身的理解。目前流行的IDE有jbuilder,eclipse和eclipse的加強版WSAD。用好其中一個就可以了,推薦從eclipse入手j2ee。因為Jbuilder更適合于寫j2se程序。
選擇和學習服務器使用配置
當你有了j2se和IDE的經(jīng)驗時,可以開始j2ee的學習了,web服務器:tomcat,勿庸置疑,tomcat為學習web服務首選。而應用服務器目前主要有三個:jboss、weblogic、websphere。有很多項目開始采用jboss,并且有大量的公司開始做websphere或weblogic向jboss應用服務器的移植(節(jié)省成本),這里要說的是,學習tomcat和jboss我認為是首選,也是最容易上手的。學習服務器使用配置最好去詢問有經(jīng)驗的人(有條件的話),因為他們或許一句話就能解決問題,你自己上網(wǎng)摸索可能要一兩天(我就干過這種傻事),我們應該把主要時間放在學習原理和理論上,一項特定技術的使用永遠代替不了一個人的知識和學問。
學習web知識
如果你是在做電子商務網(wǎng)站等時,你可能要充當幾個角色,這是你還要學習:
html,可能要用到dreamwave等IDE。
Javascript,學會簡單的數(shù)據(jù)校驗,數(shù)據(jù)聯(lián)動顯示等等
J2eeAPI學習
學習j2eeAPI和學習服務器應該是一個迭代的過程。
先學習jsp和servlet編程,這方面的書很多,我建立看oreilly公司的兩本《jsp設計》和《java servlet編程》,oreilly出的書總是那本優(yōu)秀,不得不佩服。
學習jdbc數(shù)據(jù)庫編程,j2ee項目大多都是MIS系統(tǒng),訪問數(shù)據(jù)庫是核心。這本應屬于j2se學習中,這里拿出來強調(diào)一下。
學習jndi api,它和學習ejb可以結(jié)合起來。
學習ejb api,推薦書《精通ejb》
經(jīng)過上面的這些的學習,大概可以對付一般的應用了。
有人說跟著sun公司的《j2ee tutorial》一路學下來,當然也可以。
學習ejb設計模式和看代碼(最重要)
設計模式是練內(nèi)功,其重要性可以這么說吧,如果你不會用設計模式的話,你將寫出一堆使用了ejb的垃圾,有慢又是一堆bug,其結(jié)果不如不用ejb實現(xiàn)(ejb不等于j2ee)
無論學習什么語言,都應該看大量代碼,你看的代碼量不到一定數(shù)量,是學不好j2ee的目前有很多開源的工程可以作為教材:
jive論壇
petstore sun公司
dune sun公司
等等,研讀一個,并把它用到自己的工程中來。
J2ee其他學習
當你漸漸對j2ee了解到一定深度時,你要開始關注當前領域中的一些技術變化,J2ee是一塊百家爭鳴的領域,大家都在這里提出自己的解決方案,例如structs,hiberate,ofbiz等等,學習這些東西要你的項目和目標而定,預先補充一下未嘗不可,但不用涉及太深,畢竟學習原理和理論是最最重要的事。
目前常見j2eeAPI
JavaServer Pages(JSP)技術1.2
Java Servlet技術2.3
JDBC API 2.0
Java XML處理API(JAXP)1.1
Enterprise JavaBeans技術2.0
Java消息服務(JMS)1.0
Java命名目錄接口(JNDI)1.2
Java事務API(JTA)1.0
JavaMail API 1.2
JavaBeans激活架構(gòu)(JAF)1.0
J2EE連接器體系結(jié)構(gòu)(JCA)1.0
Java認證和授權(quán)服務(JAAS)1.0
學習上面的某些API要以你的項目而定,了解所有他們總之是有好處的上面印證了大家說的一句話,java語言本身不難學,但是技術太多,所以學java很費勁?;叵胍幌?,基本上每個初學者,在剛學習java的時候可能都會問別人這么一句話,你怎么知道的哪個方法(api)在哪個包里的?呵呵,無他,唯手熟爾。
2008年10月29日 星期三 下午 9:29
第二篇:java個人小結(jié)——修飾符
Java中public、protected、private、abstract、static和final 1.public 使用對象:類、接口、成員
介紹:無論它所處在的包定義在哪,該類(接口、成員)都是可訪問的2.private 使用對象:成員
介紹:成員只可以在定義它的類中被訪問
3.static 使用對象:類、方法、字段、初始化函數(shù)
介紹:成名為static的內(nèi)部類是一個頂級類,它和包含類的成員是不相關的。靜態(tài)方法是類方法,是被指向到所屬的類而不是類的實例。靜態(tài)字段是類字段,無論該字段所在的類創(chuàng)建了多少實例,該字段只存在一個實例被指向到所屬的類而不是類的實例。初始化函數(shù)是在裝載類時執(zhí)行的,而不是在創(chuàng)建實例時執(zhí)行的。
4.final 使用對象:類、方法、字段、變量
介紹:被定義成final的類不允許出現(xiàn)子類,不能被覆蓋(不應用于動態(tài)查詢),字段值不允許被修改。
5.abstract 使用對象:類、接口、方法
介紹:類中包括沒有實現(xiàn)的方法,不能被實例化。如果是一個abstract方法,則方法體為空,該方法的實現(xiàn)在子類中被定義,并且包含一個abstract方法的類必須是一個abstract類 6.protected 使用對象:成員
介紹:成員只能在定義它的包中被訪問,如果在其他包中被訪問,則實現(xiàn)這個方法的類必須是該成員所屬類的子類。
7.native 使用對象:成員
介紹:與操作平臺相關,定義時并不定義其方法,方法的實現(xiàn)被一個外部的庫實現(xiàn)。Object里面的hashCode方法是采用native的,String int這些類是重寫了的
8.strictfp 使用對象:類、方法
介紹:strictfp修飾的類中所有的方法都隱藏了strictfp修飾詞,方法執(zhí)行的所有浮點計算遵守IEEE 754標準,所有取值包括中間的結(jié)果都必須表示為float或double類型,而不能利用由本地平臺浮點格式或硬件提供的額外精度或表示范圍。
9.synchronized 使用對象:方法
介紹:對于一個靜態(tài)的方法,在執(zhí)行之前jvm把它所在的類鎖定;對于一個非靜態(tài)類的方法,執(zhí)行前把某個特定對象實例鎖定。
10.volatile 使用對象:字段
介紹:因為異步線程可以訪問字段,所以有些優(yōu)化操作是一定不能作用在字段上的。
volatile有時可以代替synchronized。
11.transient 使用對象:字段
介紹:字段不是對象持久狀態(tài)的一部分,不應該把字段和對象一起串起.
第三篇:java小結(jié)
//1.累加 public class 累加 {
}
//2.階乘
public class 30的階乘 {
} public static void main(String[] args){
} int product=1;for(int i=1;i<=30;i++){ product=*i;} public static void main(String[] args){
} int i=1;for(int counter=1;counter<=100;counter++){ } System.out.println(i);i+=counter;
//3.倒序輸出
法1 用char數(shù)組思想 import java.util.Scanner;public class 逆序輸出 {
public static void main(String[] args){
Scanner scan=new Scanner(System.in);// String input[]=new String[4];input=scan.nextLine();// huiche
// String result=“";char[] Array=input[4].toCharArray();for(int i=Array.length-1;i>=0;i--){
} result+=Array[i];} System.out.println(result);} //倒序輸出 法2 用reverse()方法 import javax.swing.JOptionPane;public static void main(String[] args){
}
String a = null;StringBuffer b;//輸入
a=JOptionPane.showInputDialog(a);StringBuffer c1=new StringBuffer(a);b=c1.reverse();System.out.println(b);
//4.輸出100 121 144...361 public class平方輸入數(shù)組 {
}
//5.求最大公約數(shù)
private static int gys(int m,int n)
{
if(n==0)
return m;else public static void main(String[] args){
} int[] array=new int[10];for(int i=0;i<10;i++){ } array[i]=Math.pow((i+10),2.0);
for(int k=0;k return gcd(n,m%n); } //6.求最小公倍數(shù) public static int gbs(int n1,int n2){ int a =(n1>n2)? n1 : n2; for(int j=a;j<=n1*n2;j++) { if(j%n1==0 && j%n2==0) { return j; } } return 0;} //7.1)十進制整數(shù)轉(zhuǎn)化為二進制整數(shù)采用“除2取余,逆序排列” import java.util.Scanner;public class Main { public static void main(String[] args){ //第一行輸入要幾組測試數(shù)據(jù) int N=0,a;//N為輸入幾組數(shù)據(jù),a為輸入的十進制數(shù)字 } String b = null;Scanner scan=new Scanner(System.in);N=scan.nextInt();Main num=new Main();for(int i=1;i<=N;i++){ } a=scan.nextInt();b=num.deimalBinary(a);int d=num.Calcute(b);if(d%2==0)System.out.println(”Even“);else System.out.println(”O(jiān)dd“); /*一個方法得到二進制數(shù),用遞歸 *用2去除十進制整數(shù),可以得到一個商和余數(shù); *再用2去除商,又會得到一個商和余數(shù),} *如此進行,直到商為零時為止,*然后把先得到的余數(shù)作為二進制數(shù)的低位有效位,*后得到的余數(shù)作為二進制數(shù)的高位有效位,依次排列起來 */ public String deimalBinary(int a){ } public int Calcute(String b){ } char[] Array=b.toCharArray();for(int i=0;i } if(Array[i]=='1'){ } counter+=1;return counter; //7.2)十進制小數(shù)轉(zhuǎn)換為二進制小數(shù)采用“乘2取整,順序排列” /*用2乘十進制小數(shù),可以得到積,*將積的整數(shù)部分取出,再用2乘余下的小數(shù)部分,//8.矩陣運算(加減乘)//矩陣運算 *又得到一個積,再將積的整數(shù)部分取出,*如此進行,直到積中的小數(shù)部分為零,*或者達到所要求的精度為止。 *然后把取出的整數(shù)部分按順序排列起來,*先取的整數(shù)作為二進制小數(shù)的高位有效位,后取的整數(shù)作為低位有效位。*/ import java.util.Scanner;public class Main { public static void main(String[] args){ int N1,M1,N2,M2,K;Scanner scan=new Scanner(System.in);N1=scan.nextInt();M1=scan.nextInt();int[][] a=new int[N1][M1];for(int i=0;i for(int j=0;j N2=scan.nextInt();M2=scan.nextInt();int[][] b=new int[N2][M2];for(int i=0;i { } b[i][j]=scan.nextInt();} K=scan.nextInt();if(K==1)//加法 { int[][] c=new int[N1][M1];for(int i=0;i } { for(int j=0;j } System.out.println();} } if(K==2)//減法 { int[][] c=new int[N1][M1];for(int i=0;i } for(int j=0;j for(int j:i){ System.out.print(j+” “);} System.out.println();} } if(K==3)//乘法 { int[][] c=new int[N1][M2];for(int i=0;i } { for(int j=0;j } for(int p=0;p c[i][j]+=a[i][p]*b[p][j];for(int[] i:c)for(int j:i){ System.out.print(j+” “);} System.out.println();} } } } 9.//保留確定位數(shù)輸出 import java.text.DecimalFormat;//非四舍五入 DecimalFormat myformat=new DecimalFormat(”#0.00"); myformat.format(double num);//四舍五入,例為保留2位 double f=3.1415926; BigDecimal a=new BigDecimal(f); double af=a.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue(); java重要知識點總結(jié)如下: 1,抽象,封裝,繼承,多態(tài)是面向?qū)ο蟪绦蛟O計中得四個特點.2,面向?qū)ο蟮密浖_發(fā)大體分為:面向?qū)ο蟮姆治?,面向?qū)ο蟮脑O計,面向?qū)ο蟮膶崿F(xiàn).可概括為如下過程:分析用戶需求,從問題中抽取對象模型;細化模型,設計類,包括類的屬性和類間的 相互關系,同時觀察是否有可以直接引用的已有類或部件;選定一種面向?qū)ο蟮木幊陶Z言,具體編碼實現(xiàn) 上一階段類的設計,并在開發(fā)過程中引入測試,完善整個解決方案.3,面向?qū)ο蟪绦蛟O計方法的優(yōu)點是:可重用性,可擴展性,可管理性.4,類的定義:class前的修飾符分為訪問控制符和非訪問控制符兩大類.訪問控制符包括public和private.非訪問控制符包括abstract(抽象),final(最終).5,final類是最終類,是不能有子類的類.abstract和final不能同時修飾一個類,因為抽象類本身沒有具體對象,需要派生出子類后在創(chuàng)建子類的對象.而最終類不可能有子類.6,創(chuàng)建對象的格式為: 類名 對象名=new 構(gòu)造方法(參數(shù));注意前面是類名后面是構(gòu)造方法.注意構(gòu)造方法沒有返回類型,也不能寫void,主要用于完成類對象的初始化工作,一般不能直接由編程 直接調(diào)用,而是用new運算符來調(diào)用.7,如果class前面由public修飾符,則默認構(gòu)造方法的前面也應該有public修飾符.8,類中有static修飾的域或方法,可用類名或?qū)ο竺L問,否則只能用對象名訪問.9,修飾域的訪問控制符可以是:public,private,protected,private protected.非訪問控制符可以是: static,final,volatile(易失域) 10,類變量的最本質(zhì)的特點是:他們是類的域,不屬于任何一個類的具體對象實例.不是保存在某個對象實例的內(nèi)存空間中,而是保存在類的內(nèi)存區(qū)域的公共存儲單元中.11,局部變量是在方法體內(nèi)聲明的,只有當方法被調(diào)用時他們才存在,因而只能在本方法內(nèi)使用,不存在訪問控制符,也不能聲明為靜態(tài)變量(static),但可以聲明為final變量.局部變量必須初始化.12,修飾方法的訪問控制符可以是:public,private,protected,private protected,修飾方法的非訪問控制符可以是:static,final,abstract,native(本地方法),synchronized(同步方法)。 13,用static修飾的變量或方法都為類成員,類成員可以用類名或?qū)嵗L問,實例成員只能用實例名來訪問。 14,如果一個類中含有抽象方法,則此類必須為抽象類,如果抽象類的子類不為抽象類,則子類必須實現(xiàn)父類的所有抽象方法。抽象方法不能用靜態(tài)方法和最終方法。抽想方法只有函數(shù)頭的聲明,而用分號來替代方法體,沒有大括號。如abstract void abstractmethod(); 15,this變量用在一個方法的內(nèi)部,指向當前對象,當前對象指的是調(diào)用當前正在執(zhí)行的方法的那個對象。super變量是直接指向父類的構(gòu)造方法,用來引用父類種的變量和方法。(由于他們指的是對象,所以不能通過它來引用類變量和類方法) 16,如果要引用一個包中的多個類,可以用星號來代替。使用星號只能表示本層次的所有類,而不包括子層次下的類。所以經(jīng)常需要用兩條語句來引入兩個層次的類:import java.awt.*;import java.awt.event.*; 17,訪問修飾符: --類中限定為public的成員可以被所有的類訪問。 --類中先定位private的成員只能被這個類本身訪問。同一個類的不同對象可以訪問對方的private域變量或調(diào)用對方的域方法,這是因為訪問保護控制在類的級別上,而不是對象的級別上。 --類中限定為protected的成員可以被這個類本身,它的子類(包括同一個包中和不同包中的子類),以及同一個包中的其他類訪問。 --用private protected修飾的成員可以被該類本身訪問,也可以被該類的所有子類訪問。 --默認訪問控制符規(guī)定只能被同一個包中的類訪問和引用,而不能被其他包的類訪問。即他的訪問權(quán)限是friendly。 18,注意: ----abstract和private,static,final,native不能并列修飾同一個方法。 ----abstract類中不能有private修飾的域和方法 ----static方法不能處理非static的域。 19,重載方法的參數(shù)必須不同,或者是參數(shù)個數(shù)不同,或者是參數(shù)類型不同。重載的多個方法必須返回相同的數(shù)據(jù)類型。 20,在java中,一個類獲取某一接口定義的功能并不是通過直接繼承這個接口的屬性和方法來實現(xiàn)的。因為接口中的屬性都是常量,接口的方法都是沒有方法體的抽象方法,沒有具體定義操作。 [ティン]The only one is in my world,the favourite song is wrote for you!1 垃圾收集器的問題 工作原理:一旦垃圾收集器準備好釋放對象占用的存儲空間,它首先調(diào)用finalize(),而且只有在下一次垃圾收集過程中,才會真正回收對象中的內(nèi)存。垃圾收集并不等于破壞! 用途;垃圾收集存在的唯一原因是為了回收程序不在是用的內(nèi)存 2對象構(gòu)造 (1)重載:如果多個方法,比如有相同的名字,不同的參數(shù),便產(chǎn)生了重載。 ToSitrng()方法用于返回表示對象值的字符串 3監(jiān)聽器 監(jiān)聽器對象實現(xiàn)listener interface類 事件源是一個能夠注冊監(jiān)聽器對象并發(fā)送事件對象的對象 當事件發(fā)生時,事件源將事件對象中的信息決定如何對時間做出響應 異常、日志調(diào)試 1 用戶輸入錯誤 2 設備錯誤 3 物理限制 4 代碼錯誤 Error 和Exception Error類層次結(jié)構(gòu)描述了java運行時系統(tǒng)的內(nèi)部錯誤和資源耗盡錯誤,應用程序不應該拋出這種類型的對象。如果出現(xiàn)了這樣的錯誤,除了通告給用戶,并盡力使程序終止之外,再也無能為力了。 Exception 劃分為 RuntimeException;另一個分為其它異常 只有是應用程序錯誤導致的異常才叫做 RuntimeException RuntimeException出現(xiàn)的情況:錯誤的類型轉(zhuǎn)換;數(shù)組訪問越界;訪問空指針 4集合 循環(huán)數(shù)組是一個有界的集合,是有限的容量,如果程序中沒有收集數(shù)量的上線就最好是用鏈表來實現(xiàn) Collection接口有兩個方法 Add 用于向集合中添加元素 Iterator 迭代器對象可以一次訪問幾個中的元素 Special Drivin' Date(只 凝 視 著 你) 項目設計思路 1對象是什么(怎樣將自己的項目分割成一系列單獨的組件?) 2它們的接口是什么(需要將什么消息發(fā)送給每一個對象?)階段0 模擬出一個計劃 設定路標 階段1 要制作什么 需求分析 階段2 如何構(gòu)建 UML 階段3 開始創(chuàng)建 階段4 校訂 維護 向?qū)ο蟀l(fā)送消息 Int x =a.f();f()方法的返回值類型必須是int類型 For循環(huán)在第一次反復之前要進行初始化 for(初始表達式;布爾表達式;步進) 無論繼承還是合成,我們都可以在現(xiàn)有類型的基礎上創(chuàng)建一個新類型。但在典型情況下,我們通過合成來實 現(xiàn)現(xiàn)有類型的“再生”或“重復使用”,將其作為新類型基礎實施過程的一部分使用。但如果想實現(xiàn)接口的 “再生”,就應使用繼承。由于衍生或派生出來的類擁有基礎類的接口,所以能夠?qū)⑵洹吧纤菰煨汀睘榛A 類。對于下一章要講述的多形性問題,這一點是至關重要的。 盡管繼承在面向?qū)ο蟮某绦蛟O計中得到了特別的強調(diào),但在實際啟動一個設計時,最好還是先考慮采用合成 技術。只有在特別必要的時候,才應考慮采用繼承技術(下一章還會講到這個問題)。合成顯得更加靈活。 但是,通過對自己的成員類型應用一些繼承技巧,可在運行期準確改變那些成員對象的類型,由此可改變它們的行為。第四篇:java知識點小結(jié)
第五篇:java小結(jié)