1.&和&&,|和||的區別
對於&&,只要左邊為假,右邊就不執行判斷
對於&,無論左邊為真假,右邊都執行判斷
對於||,只要左邊為真,右邊就不執行判斷
對於|,無論左邊為真為假,右邊都執行判斷
2.建構函式與一般函式的區別
(1)建構函式在建立物件時,會被自動呼叫
一般函式在建立物件後,需要主動呼叫
(2)建構函式一般只呼叫一次
一般函式可以多次呼叫
3.匿名物件:
匿名物件就是不給物件命名,直接呼叫類中的成員或方法
new 類名.方法() new 類名.成員
4.this
(1)this代表當前物件,this就是所在函式所屬物件的引用
(2)this可以在建構函式中呼叫其他建構函式,但只能在建構函式的第一行,這是因為this代表構造的物件,而其初始化必須先執行。格式為: this(成員名);
5靜態的特點:(宗旨:和物件無關,不需要建立物件)
(1)靜態修飾的成員
靜態修飾的成員被所有物件共享(可以節省記憶體),靜態修飾的資料是共享資料
靜態修飾的成員和方法由於物件存在,因為靜態的成員和變數隨著類的載入就已經存在
靜態成員和方法可以直接被類名呼叫,格式:類名.靜態成員,類名.靜態方法
(2)靜態修飾的方法
靜態的方法只能訪問靜態成員變數和靜態的成員函式(非靜態方法既能訪問非靜態的成員又能訪問非靜態的方法)
靜態方法中不能呼叫this或super關鍵字
(3)靜態**塊
格式:
static
特點:隨著類的載入而自動執行,而且只執行一次,因為是靜態的所以會被自動載入,而又由於是靜態的只要載入了就可以被其他成員所呼叫,不需要再載入,否則也是浪費
作用:用於給類進行初始化,雖然建構函式時給物件初始化的,但是有些類不需要建立物件(比如變數和方法都是靜態時)
6.函式是否需要靜態修飾?
就看函式是否需要訪問非靜態成員變數,如果需要則定義為非靜態的,如果不需要就定義成靜態的
7.構造**快
可以給所有物件的相同內容初始化
格式:在類中用 {}括起來就可以
8. 靜態**塊,構造**塊,建構函式,區域性**塊區別
靜態**塊:只與類有關,類一載入就執行且只執行一次
構造**塊:與物件有關,需要new乙個物件,然而new一次就執行一次,它是給物件進行初始化的,與建構函式主要區別在於,它初始化所有需要建立物件共同的初始化內容
建構函式:建構函式是有針對性的初始化,執行不同過載的建構函式,對類的成員初始化內容不同
區域性**塊:限定變數生命週期時用的
執行順序:靜態**塊(1)構造**快(2)建構函式(3)區域性**塊(4)
9.如何讓類擁有不允許呼叫建構函式
當類中的方法根本就沒有呼叫類中的成員變數,或根被就沒有成員變數時,就可以將成員函式定義為靜態的成員函式,這時也就不需要建立物件來呼叫這些靜態的方法,防止浪費空間,就可以強制阻止建立物件,在建構函式前私有化(加private)
10.switch語句
只能判斷4中型別的引數:short int char byte
case無順序之分,上下都行,但是記得如果需要在每個case的執行語句後面加break;(switch結束大括號的那條語句可以省略)
如果沒有break時,程式會不再判斷case值,直接執行下面的執行語句直到遇到乙個break或右大括號
switch(x)
//執行結果:abc
11.記憶體的劃分
①暫存器 ②本地方法區 ③方法區
④棧記憶體:儲存的都是區域性變數,變數所屬的作用域一結束,該變數就自動結束
⑤堆記憶體:儲存陣列(其實也是物件),物件,凡是new建立的物件都在對中
特點:每乙個物件都有首位址,堆記憶體每乙個變數都有預設的初始化,如int型為0,char型為null,string型為null,boolean為 false
12.成員變數與區域性變數的區別
①成員變數定義在類中,整個類都可以訪問,
區域性變數定義在函式,語句,區域性**塊中,只在所屬的區域有效
②成員變數存在堆記憶體的物件中
區域性變數存在棧記憶體的方法中
③成員變數隨著物件建立而存在,隨著物件消失而消失
區域性變數隨著所屬區域執行而存在,隨著所屬區域執行結束而消失
④成員變數都有預設的初始化值
區域性變數沒有預設的初始化,沒有初始化過的不能直接用
13建構函式的特點
函式名與類名相同,首字母大寫,不能定義返回型別(如果定義了就不是建構函式了,可以看為是普通函式)
如果類中沒有定義建構函式,那麼類中會有乙個預設的空參夠凹函式,如果類中定義了指定的建構函式,那麼預設的建構函式就沒有了,如果仍需空參的建構函式,需要手動定義乙個
建構函式可以呼叫類中的其他函式,而類中的其他函式不能呼叫建構函式(因為建構函式是new乙個自動呼叫的)
14基本型別的大小
char 1位元組
short 2位元組
int 4位元組
long 8位元組
float 4位元組
double 8位元組
JAVA基礎知識點整理
一.預設的構造方法不一定都是public的 預設構造方法的修飾符是與所在類的修飾符一致的。二.split 分割字元竄有特殊字元竄像 等並不會達到預定的效果。三.一維陣列占用記憶體比二維陣列多,測試 runtime.getruntime totalmemory 可以得到占用記憶體總數,hashmap儲...
VUE基礎知識點整理
純知識點整理,適合vue小白 不小心點了發布 淚目 1,指令 v bind id domid 屬性值繫結 縮寫 id xx v on click add 事件處理 縮寫 click xx v if seen 條件 v for todo in todos data demo methods compu...
C C 基礎知識點整理
1.includeusing namespace std int main cout aa 0 1 endl cout aa 1 endl cout aa 0 endl cout aa 1 endl return 0 2.某二叉樹的後序遍歷和中序遍歷是一樣的都為abcdef,那麼它按層輸出的結果為 ...