Java知识合集
1、認識類聲明的區別
使用“public class 類名稱”聲明一個類時,類名稱必須與文件名稱一致,否則程序無法編譯;
使用“class 類名稱”聲明一個類時,類名稱可以與文件名稱不一致,但是在執行時一定要執行生成后的*.class,
例如:TestClass.java文件聲明類為Demo,執行為Demo.class;
在一個java文件中可以有多個類的定義,但只要一個public class聲明的類;
Java命名規則,類的定義,類名稱中每個單詞的首字母必須大寫。
2、java的注釋
單行注釋,“//”;
多行注釋,“/*”與“*/";
文檔注釋,”/**”開頭“*/”結尾。
eclipse中在函數前一行使用/**(這里回車) */自動生成函數說明
?
3、Java標識符規則
Java中的包、類、方法、參數和變量的名稱可由任意順序的大小寫字母、數字、下劃線和美元
符號($)組成,但標識符不能以數字開頭,也不能是Java中的保留關鍵字。
class、67.9、Hello LinXingHua是非法的標識符。
4、數組聲明和對象實例化的內存分配
int sarray[]; 棧內存開辟空間保存數組名稱sarry;
sarray = new int[3]; 堆內存開辟sarray數組內存空間。
Person person1; 棧內存開辟空間保存對象名稱person1;
person1 = new Person(); 堆內存開辟person1對象內存空間。
5、Java常用內存區域
(1)棧內存空間:保存所有的對象名稱(保存了引用的堆內存空間的地址)。
(2)堆內存空間:保存每個對象的具體屬性內容。
(3)全局數據區:保存static類型的屬性。
(4)全局代碼區:保存所有的方法定義。
6、java中static關鍵字
static屬性是所有對象共享的。
非static聲明的方法可以調用static聲明的屬性和方法;但static聲明的方法是不能調用非static聲明的屬性和方法。
因為非static聲明的屬性和方法必須在對象開辟堆內存空間之后才可以調用,而static聲明的方法在對象未實例化時
就可以被類名調用。
單例模式:類永遠只會有一個實例化對象存在。即將構造方法私有化(private),通過類的static方法getInstance()獲得類內部自實例化對象。
7、代碼塊
代碼塊:用{}括起來的一段代碼,根據位置分類:普通代碼塊、構造塊、靜態代碼塊、同步代碼塊。
普通代碼塊:指直接在方法或語句中定義的代碼塊;
構造塊:直接寫在類中的代碼塊;構造塊優先于構造方法執行,每次實例化對象時都執行。
靜態代碼塊:使用static聲明的代碼塊;類定義的靜態代碼塊優先于構造塊執行,跟對象無關只執行一次
8、內部類
1、類中定義內部類
內部類好處:可以方便訪問外部類的私有屬性。
外部訪問內部類:
(1)非static內部類:外部類.內部類 內部類對象 = 外部類實例.new 內部類();
(2)static內部類:外部類.內部類 內部類對象 = new 外部類.內部類();
2、方法中定義內部類
方法中定義的內部類不能直接訪問方法中的參數,參數前必須加上final關鍵字才能被內部類訪問。
9、final關鍵字
(1)final聲明的類不能有子類;
(2)final聲明的方法不能被子類所覆寫;
(3)final聲明的變量即成為常量,常量不可以修改。
final變量命名規則:final聲明的變量字母全部大寫。
10、抽象類和接口
1、抽象類
(1)包含抽象方法的類必須為抽象類;
(2)抽象類和抽象方法由abstract關鍵字聲明;
(3)抽象方法只需聲明而不需實現;
(4)抽象類必須被子類繼承,子類(如果不是抽象類)必須覆寫全部抽象方法。
2、接口:特殊的抽象類,由全局常量和公共(public)的抽象方法所組成。
接口可繼承多接口 interface A extends B,C;
11、裝箱和拆箱
裝箱:將一個基本數據類型變為包裝類的過程;
拆箱:將一個包裝類變
?
12、靜態導入
import static 包.類.*;
一個類中的方法全部使用static聲明的靜態方法可以靜態導入。
可以直接調用這些方法,無須:類.靜態方法(); 方式調用,直接調用: 靜態方法();
13、多線程Runnable
一個多線程程序通過Runnable接口實現,意味著類中的屬性將被多個線程共享。
?
轉載于:https://www.cnblogs.com/win24/p/6027570.html
總結
- 上一篇: react-native热更新插件rea
- 下一篇: RxJava 设计理念 观察者模式 Ob