1. 程式人生 > >Java基礎筆記(四)——命名規則、數據類型

Java基礎筆記(四)——命名規則、數據類型

嚴格 符號 構造函數 不能 釋放 常量 存在 null 超過

標識符即Java程序中需要自定義的名稱,如變量名、方法名、類名、包名、工程名等。

標識符的命名規則:

1.可由字母、數字、下劃線(_)和美元符($)組成,不能以數字開頭。

2.嚴格區分大小寫。

3.不能是Java關鍵字和保留字。

4.最好能反映其作用。

變量名、方法名的命名規則:

1.滿足標識符命名規則。

2.符合駝峰法命名規範。(首字母小寫,如果名稱由多個單詞組成,從第二個單詞開始每個單詞的首字母都要大寫。)

3.盡量簡單,做到見名知意。

常量名的命名規則:

字母全部大寫,且單詞間用下劃線(_)分隔。

如:public static final int MAX_VALUE=100;

類名、接口名的命名規則:

滿足Pascal命名法規範。(首字母大寫,如果名稱由多個單詞組成,每個單詞的首字母都要大寫。

接口的實現類的命名規則為:<接口名>+"Impl"。

包名、項目名的命名規則:

包名:<域名反轉>.<團隊名>.<項目名>。相關項目可使用<域名反轉>.<團隊名>.<f父項目名>.<子項目名>。

命名必須全部使用英文小寫字母,不要用下劃線等字符。(除常量外,Java命名習慣中均不推薦使用下劃線等字符)

項目工程名用小寫英文字母。

數據類型

技術分享圖片

基本數據類型的數據變量在聲明後就會立刻在內存中的棧上被分配內存空間,變量值存儲在棧空間裏。

例如:int n=100; //變量類型、變量名、變量值

在棧中開辟int類型大小的存儲空間, 4個字節,占用32個二進制位,把100這個整型字面值放到開辟的空間中,n是100所占內存空間的別名,代表100去做運算。

引用類型繼承於Object類(也是引用類型),內存棧裏存儲的是對象的引用變量(要存儲的是實際對象的地址),對象本身存儲在內存堆上。

例如: 用類定義一個變量叫對象的引用變量名,new出來的對象存儲在堆空間,把對象在堆內存的地址存儲到棧內存中這個引用變量名所在的空間裏,這個引用變量名可以通過地址來找到對象,即對象的引用變量指向這個對象。

技術分享圖片

棧:棧數據可共享,存取速度比堆快,僅次於寄存器,存在棧中的數據大小與生存期必須是確定的。關於回收:當超過變量的作用域後,Java會自動釋放該變量內存空間,可立即被其它利用。(有序存放,想象順序表數組形式。)

堆:存儲速度較慢,動態地分配內存大小,生存期也不必預先告訴編譯器。(想象鏈表形式。)關於回收:由Java虛擬機的自動垃圾回收器來回收不再使用的數據。

例子:

Dog d1; //在棧內存裏給引用變量d1開辟存儲空間,這時d1=null。(null不是一個合法的Object實例,所以編譯器並沒有為其(null)分配內存,它僅僅用於表明該引用目前沒有指向任何對象。)

d1=new Dog(); //在堆內存裏給Dog類的對象開辟空間,並調用Dog類的構造函數。(若未自定義,調用系統默認提供的。)

註:

1.這裏的"=",是把Dog類的對象在堆中的地址傳遞給引用變量d1,即棧中的引用變量d1裏存放了新創建的Dog類對象的地址,這時引用變量d1指向了新創建出來的對象。

2.對象創建出來,沒有名字,通過引用變量來對其操作。

Dog d2;

d2=d1; //d2也指向了d1所指向的對象

註:

1.一個對象引用可以指向0個或1個對象。

2.一個對象可以有n個引用指向它。

d2=new Dog(); // 引用變量d2改成指向了新的第2個對象

d1=d2; // d1也指向了第2個對象

註:第一個對象已成為垃圾回收機制的處理對象。

Java中的基本數據類型及其描述如下:

技術分享圖片

Java中的數值類型都是有符號的,不存在無符號的數,它們的取值範圍也是固定的,不會隨著硬件環境或者操作系統的改變而改變。除了以上八種基本數據類型以外,在Java語言中,還存在另外一種基本類型void,它也有對應的封裝類java.lang.void,只是無法直接對它進行操作。

封裝類型和原始類型有何不同:

1.原始數據類型在傳遞參數時都是按值傳遞,而封裝類型是按引用傳遞的。

2.當封裝類型和原始類型用作某個類的實例數據時,它們所指定的默認值不同。對象引用實例變量的默認值為null,而原始類型實例變量的默認值與它們的類型有關(例如int默認初始化為0)。

例子:

 1 public class Test {
 2     String s;
 3     int i;
 4     float f;
 5     public static void main(String args[]) {
 6         Test t=new Test();
 7         System.out.println(t.s==null);
 8         System.out.println(t.i);
 9         System.out.println(t.f);
10     }
11 }

程序運行結果為:

true

0

0.0

Java基礎筆記(四)——命名規則、數據類型