Java代碼結(jié)構(gòu)
關(guān)于這個類的所有語句都在這一對大括號里執(zhí)行。
public class ***{
}
這個大括號里需要有構(gòu)造方法,也就是初始化方法。初始化方法的命名與類名一致。構(gòu)造方法有顯式實現(xiàn)和隱式實現(xiàn)。
public ***(參數(shù)){
}
除此之外還需要有主方法,該類的所有代碼從這里開始執(zhí)行
public static void *** (String [] args){
}
關(guān)于類的引用:
類似于OC的語法:import 包名.類名;
Java 變量類型
類變量:獨立于方法之外的變量,用 static 修飾。
實例變量:獨立于方法之外的變量,不過沒有 static 修飾。
局部變量:類的方法中的變量。
局部變量
- 1、局部變量在方法、構(gòu)造方法、或者語句塊被執(zhí)行的時候創(chuàng)建,當它們執(zhí)行完成后,變量將會被銷毀;
- 2、局部變量只在聲明它的方法、構(gòu)造方法或者語句塊中可見;
- 3、局部變量沒有默認值,所以局部變量被聲明后,必須經(jīng)過初始化,才可以使用。
實例變量
- 1、實例變量聲明在一個類中,但在方法、構(gòu)造方法和語句塊之外;
- 2、實例變量在對象創(chuàng)建的時候創(chuàng)建,在對象被銷毀的時候銷毀;
- 3、實例變量具有默認值。數(shù)值型變量的默認值是0,布爾型變量的默認值是false,引用類型變量的默認值是null。變量的值可以在聲明時指定,也可以在構(gòu)造方法中指定;
- 4、實例變量可以直接通過變量名訪問。
例如:
import java.io.*;
public class Employee{
//這個實例變量對子類可見
public String name;
//私有變量,僅在該類可見
private double salary;
//在構(gòu)造器中對name賦值
public Employee (String empName){
name = empName;
}
public static void main(String [ ] args){
Employee empOne = new Employee("RUNOOB");
empOne.setSalary(1000);
empOne.printEmp();
}
}
類變量
- 1、類變量也稱為靜態(tài)變量,在類中以static關(guān)鍵字聲明,但必須在方法構(gòu)造方法和語句塊之外。
- 2、無論一個類創(chuàng)建了多少個對象,類只擁有類變量的一份拷貝。
- 3、靜態(tài)變量在程序開始時創(chuàng)建,在程序結(jié)束時銷毀。
- 4、默認值和實例變量相似。數(shù)值型變量默認值是0,布爾型默認值是false,引用類型默認值是null。變量的值可以在聲明的時候指定,也可以在構(gòu)造方法中指定。此外,靜態(tài)變量還可以在靜態(tài)語句塊中初始化。
- 5、靜態(tài)變量可以通過:ClassName.VariableName的方式訪問。
類變量和實例變量的區(qū)別
- 1、類變量也叫靜態(tài)變量,也就是在變量前加了static 的變量;實例變量也叫對象變量,即沒加static 的變量;
- 2、區(qū)別在于:類變量和實例變量的區(qū)別在于:類變量是所有對象共有,其中一個對象將它值改變,其他對象得到的就是改變后的結(jié)果;而實例變量則屬對象私有,某一個對象將其值改變,不影響其他對象;
tips:線程安全
ArrayList和Vector有什么區(qū)別?HashMap和HashTable有什么區(qū)別?StringBuilder和StringBuffer有什么區(qū)別?這些都是Java面試中常見的基礎(chǔ)問題。面對這樣的問題,回答是:ArrayList是非線程安全的,Vector是線程安全的;HashMap是非線程安全的,HashTable是線程安全的;StringBuilder是非線程安全的,StringBuffer是線程安全的。