Java 基礎資料類型
記憶體管理系統根據變量的類型為變量配置設定存儲空間,配置設定的空間隻能用來存儲該類型的資料
内置資料類型
六種數字類型:四個整數型(byte short int long),兩個浮點型(float double),一種字元型(char),一種布爾型(boolean)
引用類型
引用類型指向一個對象,指向對象的變量是引用變量;這些變量在聲明時被指定為一個特定的類型;變量一旦聲明後,類型就不能改變了
對象數組都是引用資料類型
所有引用類型的預設值都是null
Site site = new Site("Something")
Java常量
使用final關鍵字來修飾常量,聲明方式和變量類似,常量名大寫
final double PI = 3.1415926
自動類型轉換
整型、實型、字元型資料可以混合運算;運算中,不同類型的資料先轉化為同一類型
轉換從低級到進階:byte,short,char-->int-->long-->float-->double
轉換類型必須滿足的規則
不能對boolean類型進行類型轉換
不能把對象類型轉換成不相關類的對象
在把容量大的類型轉換成容量小的類型時必須使用強制類型轉換
轉換過程中可能導緻溢出或損失精度
浮點數到整數的轉換是通過舍棄小數得到的,不是四舍五入
強制類型轉換 (type)value type
Java 變量類型
類變量:獨立于方法之外的變量,用static修飾
執行個體變量:獨立于方法之外的變量,不過沒有static修飾
局部變量:類的方法中的變量
public class Variable{
static int allClicks = 0; //類變量
String str = "hello world";//執行個體變量
public void method() {
int i = 0;//局部變量
}
}
Java局部變量
局部變量聲明在方法、構造方法或者語句塊中;
局部變量在方法、構造方法、或者語句塊被執行的時候建立,當它們執行完後,變量将會被銷毀
通路修飾符不能用于局部變量
局部變量隻在聲明它的方法、構造方法或者語句塊中可見
局部變量是在棧上配置設定的
局部變量沒有預設值,是以局部變量被聲明後,必須進過初始化後才可以使用
public class Test{
public void pupAge() {
int age = 0;//局部變量聲明并初始化
age = age + 7;//不初始化會報錯
System.out.println("小狗的年齡是:" + age);
}
public static void main(String args[]) {
Test test = new Test();
test.pupAge();
}
}
執行個體變量
執行個體變量聲明在一個類中,但在方法、構造方法和語句塊之外
當一個對象被執行個體化之後,每個執行個體變量的值就跟着确定;
執行個體變量在對象建立的時候建立,在對象銷毀的時候銷毀
執行個體變量的值至少被一個方法、構造方法或者語句塊引用,使得外部能夠通過這些方式擷取執行個體變量資訊
執行個體變量可以聲明在使用前或使用後
通路修飾符可以修飾執行個體變量
執行個體變量對于類中的方法、構造方法、或者語句塊是可見的;一般情況下應該把執行個體變量設為私有。通過通路修飾符可以使執行個體變量對子類可見
執行個體變量具有預設值,數值型變量的預設值是0,布爾值變量的預設值是false,引用類型變量的預設值是null。變量的值可以在聲明時指定,也可以在構造方法中指定
執行個體變量可以通過變量名通路。但在靜态方法以及其他類中,就應該使用完全限定名:ObjectReference.VariableName
import java.io.*;
public class Employee{
//這個執行個體變量對子類可見
public String name;
//私有變量,僅在該類可見
private double salary;
//在構造器中對name指派
public Employee (String empName) {
name = empName;
}
//設定salary的值
public void setSalary(double empSal) {
salary = empSal;
}
//列印資訊
public void printEmp() {
System.out.println("名字: " + name);
System.out.println("薪水:" + salary);
}
public static void main (String args[]) {
Employee empOne = new Employee("programer");
empOne.setSalary(1000);
empOne.printEmp();
}
}
類變量(靜态變量)
類變量也稱為靜态變量,在類中以static關鍵字聲明,但必須在方法、構造方法和語句塊之外
無論一個類建立多少個對象,類隻擁有類變量的一份拷貝
靜态變量除了被聲明為常量外很少使用。常量是指聲明為public\private,final\static類型的變量;常量初始化以後不可改變
靜态變量存儲在靜态存儲區,經常被聲明為常量,很少單獨使用static聲明變量
靜态變量在程式開始時建立,在程式結束時銷毀
與執行個體變量具有相似的可見性;但為了對類的使用者可見,大多數靜态變量聲明為public類型
預設值與執行個體變量類似
靜态變量可以通過ClassName.VariableName的方式通路
類變量被聲明為public static final類型時,類變量名稱一般使用大寫字母;如果靜态變量不是public和final類型,其命名方式與執行個體變量以及局部變量的命名方式一緻
import java.io.*;
public class Employee {
// salary是靜态的私有變量
private static double salary;
// DEPARTMENT是一個常量
public static final String DEPARTMENT = "開發人員";
public static void main(String args[]) {
salary = 10000;
System.out.println(DEPARTMENT + "平均工資:" + salary);
}
}