Java裏的對象是引用,就像C的指針。對引用的賦值實際就是對指針的賦值,對象自己並無被賦值。java
對象的存儲數組
基本數據類型:markdown
基本類型 | 大小 | 最小值 | 最大值 | 包裝器類型 |
---|---|---|---|---|
boolean | - | - | - | Boolean |
char | 16bit | Unicode 0 | Unicode 2e16-1 | Character |
byte | 8bit | -128 | +127 | Byte |
short | 16bit | -2e15 | +2e15-1 | Short |
int | 32bit | -2e31 | +2e31-1 | Integer |
long | 64bit | -2e63 | +2e63-1 | Long |
float | 32bit | Float | ||
double | 64 | Double | ||
void | - | - | - | Void |
類由字段和方法構成ide
對於類的字段,經過new對象的方式爲這個字段分配存儲空間,這樣才能對字段及方法進行訪問。用static對類的字段和方法進行修飾後,這樣的字段和方法稱爲靜態字段和靜態方法。靜態字段和靜態方法與類的對象不存在綁定關係,便可以在沒有建立對象的狀況下,經過類直接訪問靜態字段和靜態方法。這是因爲靜態對象和靜態方法在編譯期就爲它們建立了存儲空間。函數
編譯器:ideal工具
java程序文件的後綴爲.javathis
每一個.java文件名最多包含一個public類,也能夠沒有public類idea
當指定某個類爲public時,該類的類名必須與文件名相同spa
寫代碼時,須要用到其餘類庫,最經常使用的就是java自帶的類庫。使用import來引用類庫。一個import的例子:指針
import my.example.java.Test
import的行爲是,在classpath中指定的路徑裏查找my/example/java/Test.class文件,並加載
多個java代碼能夠經過package關鍵字申明成一個工具包
經過new來建立類的對象。每當調用new來建立對象時,java會調用構造器對象進行初始化。初始化完畢,意味着這個對象已經準備好對外提供服務了。
若是一個類沒有顯式提供構造器,則編譯器會爲該類自動生成一個默認構造器。
構造器採用與類名相同的名稱。
class Rock {
Rock() { //This is the constructor
System.out.println("This is the constructor");
}
}
複製代碼
Java支持構造器和方法的重載(不是重寫override)
方法的簽名:方法名+參數列表
經過方法的簽名來區分重載,因此返回類型不做爲區分重載的因素。
對當前對象的引用
有了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();
}
}
複製代碼