首頁>技術>

Java裡的資料型別

Java裡的物件是引用,就像C的指標。對引用的賦值實際就是對指標的賦值,物件本身並沒有被賦值。

物件的儲存

暫存器-程式無法感知暫存器的存在。透過CPU對暫存器操作。堆疊-存放物件引用堆-存放物件常量儲存-存不變常量非RAM儲存-存持久化資料

基本資料型別:

基本型別大小最小值最大值包裝器型別boolean---Booleanchar16bitUnicode 0Unicode 2e16-1Characterbyte8bit-128+127Byteshort16bit-2e15+2e15-1Shortint32bit-2e31+2e31-1Integerlong64bit-2e63+2e63-1Longfloat32bitFloatdouble64Doublevoid---Void

類由欄位和方法構成

static關鍵字

對於類的欄位,透過new物件的方式為這個欄位分配儲存空間,這樣才能對欄位及方法進行訪問。用static對類的欄位和方法進行修飾後,這樣的欄位和方法稱為靜態欄位和靜態方法。靜態欄位和靜態方法與類的物件不存在繫結關係,即可以在沒有建立物件的情況下,透過類直接訪問靜態欄位和靜態方法。這是由於靜態物件和靜態方法在編譯期就為它們建立了儲存空間。

編寫一個Java程式

編譯器:ideal

一些規則

java程式檔案的字尾為.java

每個.java檔名最多包含一個public類,也可以沒有public類

當指定某個類為public時,該類的類名必須與檔名相同

關於import

寫程式碼時,需要用到其他類庫,最常用的就是java自帶的類庫。使用import來引用類庫。一個import的例子:

import my.example.java.Test

import的行為是,在classpath中指定的路徑裡查詢my/example/java/Test.class檔案,並載入

package

多個java程式碼可以透過package關鍵字申明成一個工具包

初始化與清理構造器

透過new來建立類的物件。每當呼叫new來建立物件時,java會呼叫構造器物件進行初始化。初始化完畢,意味著這個物件已經準備好對外提供服務了。

如果一個類沒有顯式提供構造器,則編譯器會為該類自動生成一個預設構造器。

構造器採用與類名相同的名稱。

class Rock {    Rock() { //This is the constructor        System.out.println("This is the constructor");    }}
過載

Java支援構造器和方法的過載(不是重寫override)

區分過載

方法的簽名:方法名+引數列表

透過方法的簽名來區分過載,所以返回型別不作為區分過載的因素。

this關鍵字

對當前物件的引用

有了this關鍵字可以實現在構造器中呼叫其他過載構造器,如:

class Rock {    public int id;    Rock(int id) {        this.id = id;    }    Rock() {        this(1);    }}
初始化

對類變數的初始化有兩種方法:

在申明時直接初始化顯式初始化在構造器內進行初始化

初始化順序:

透過new建立物件時,物件的初始化順序:

對申明的變數進行變數的預設值的初始化:變數的申明可以散落在類的定義的不同位置,但初始化時,會按申明的先後順序,完成初始化然後呼叫建構函式進行初始化;呼叫構造器:如果變數未在申明時就完成初始化,則可以透過構造器完成初始化;靜態資料的初始化優先於非靜態資料;初始化例子
public class Rock {    public int id = 1; //initialization when define     public String name;    public static String greeting1;    public static String greeting2;    public static int age = 1000;    static{        greeting1 = "Hello"; //explicitly initialization    }    Rock(String name) {        this.name = name; // initialization in constructor        greeting2 = "Hi";    }    public String location1 = "Shanghai";    public String getName(){        return name;    }    public String location2 = "China";    public String getLocation(){        return location1 + " - " + location2;    }    public void greeting(){        System.out.println(this.greeting);    }    public static void main(String[] args){        Rock r = new Rock("Robin");        System.out.println("Name: " + r.getName());        System.out.println("Location: " + r.getLocation());        r.greeting();    }}
陣列初始化可變引數列表

14
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 探索3種頂級「整合框架」Apache、Spring和Mule