java程序設計風格:(類的說明介紹)
Java文件注釋頭
類中開頭處插入如下 注釋
/******************************************************************
*該類功能及特點的描述(例如:該類是用來.....)
*
*
*該類未被編譯測試過。
*
*@see(與該類相關聯的類):(AnotherClass.java)
*
*
*
*開發公司或單位:XXX軟件有限公司研發中心
*
*版權:本文件版權歸屬XXX公司研發中心
*
*
*@author(作者):XXX
*
*@since(該文件所支持的JDK版本):Jdk1.3或Jdk1.4
*
*@version(版本):1.0
*
*
*@date(開發日期): 1999-01-29
*
*最后更改日期: 2003-01-02
*
*
*修改人: XXXX
*
*復審人: 張三李四 王五
*
*/
內存管理
伊甸園用來保存新的對象,它就像一個堆棧,新的對象被創建,就像指向該棧的指針在不斷的增長一樣,當伊甸園區域中的對象滿了之后,JVM系統將要做可到達性測試,主要任務是檢測有哪些對象由根集合出發是不可到達的,這些對象就可以被JVM回收,并且將所有的活動對象從伊甸園區域拷到TO區域,此時一些對象將發生狀態交換,有的對象就從TO區域被轉移到From區域,此時From區域就有了對象,這個過程都是JVM控制完成的。
Java 中的析構方法 finalize
對象是使用完了 盡量都賦 為 null
共享靜態變量存儲空間
不要提前創建對象
........
void f(){
int i;
A a = new A();
//類A的對象a被創建
//在判斷語句之中沒有
//應用過a對象
.....
if(....){
//類A的對象a僅在此處被應用
a.showMessage();
....
}
.....
}
..........
正確的書寫方式為:
void f(){
int i;
.....
if(...){
A a = new A();
//類A的對象a被創建
//應用過a對象
a.showMessage();
}
......
}
JVM內存參數調優
表達式、語句和保留字
非靜態方法中可引用靜態變量
靜態方法不可以引用非靜態變量
靜態方法中可 創建 非靜態變量
調用父類的構造方法必須將其放置子類構造方法的第一行
JAVA核心類與性能優化
線程同步:Vector Hashtable
非線程同步: ArrayList HashMap
字符串累加 盡量使用 StringBuffer +=
方法length() 和 length屬性 區別
IO緩存,讀寫文件優化。
類與接口
內部類(Inner Class)是Java語言中特有的類型,內部類只能被主類以外的其他內部類繼承,主類是不能繼承其內部類的,因為這樣就引起了類循環繼承的錯誤,下面的代碼就是錯誤的。
public class A extends x {
public A(){}
……
Classs x{
…..
}
}
上面的代碼將引發類循環繼承的錯誤,這種錯誤在編譯時就會被發現,比較容易發現和排除。
但是下面例子中的內部類的繼承方式卻是正確的:
class A{
….
public A(){}
……
class X extends Y {
……….
}
calss Y {
……
}
}
什么時候使用繼承,什么樣的繼承是合理的:
1. 現實世界的事物繼承關系,可以作為軟件系統中類繼承關系的依據。
2. 包含關系的類之間不存在繼承關系。如:主機,外設 ,電腦。 把主機類和外設類作為電腦類的成員就可以了。
3. 如果在邏輯上類B是類A的一種,并且類的所有屬性和行為對類而言都有意義,則允許B繼承A的行為和屬性(私有屬性與行為除外)。