1,初始化
類變量自動(dòng)初始化為0或者null,局部變量使用前一定要初始化
2,主類型過載
類型匹配順序:按照byte->short->char->int->long->float->double
順序匹配。一種主類型只能匹配參數(shù)范圍不小于其本身和其本身
范圍最接近的函數(shù)
即有int i;1.f(short s);2.f(long l);i只能適用于第2個(gè)f函數(shù)
如果是常數(shù),則編譯器作為int處理
3,主類型計(jì)算結(jié)果的類型
和最大范圍計(jì)算子的類型一致,但是最小也要是int,即byte+byte
結(jié)果為int型。
4,short型和char型不能互相賦值(因?yàn)閟hort有符號(hào),char無符號(hào))
5,package一定要放在java文件第一行(除注釋空行外)
6,import只能放在第一行或者package下面
7,多個(gè)import的package里面如果有同名class,使用時(shí)必須指定package
8,interface中只能有方法宣言和定數(shù)
9,class實(shí)現(xiàn)interface必須實(shí)現(xiàn)全部方法
10,同一java文件中class和interface只能有一個(gè)public
11,為了宣言定數(shù),在變量前加final修飾子,變量不可改變,但是object的
屬性可以改變(有點(diǎn)忘記了,請(qǐng)確認(rèn),:))
12,配列不能在宣言的時(shí)候用char arr[12];形式指定,必須要用new指定
大小。指定完畢后自動(dòng)初期化;也可以new的時(shí)候用{0,0,0}形式指定
13,如果一個(gè)object為null,使用其屬性或者方法,產(chǎn)生NullPointerException
14,如果使用一個(gè)越界index訪問配列,產(chǎn)生ArrayOfBoundsException
15,配列長(zhǎng)用配列名.length
16,constructor如果有返回值,編譯器作為一般方法看待
17,constructor里面如果要用super(..)和this(..),必須放在第一行,而且只
能用一次
18,如果沒有顯式調(diào)用super和this,編譯器自動(dòng)在第一行插入super();要求超類
必須存在無參數(shù)的constructor
19,如果沒有顯式聲明constructor,編譯器自動(dòng)生成默認(rèn)無參數(shù)constructor。一旦
聲明,則無默認(rèn)constructor
20,修飾子(訪問范圍大小順序)
public 完全公開
protected 同一package或者子類中
無 同一package
private 本class
21,override的方法不能使訪問范圍縮小
即父類中public方法不能被protected override
22,static方法不能被override?確認(rèn)
23,constructor不能被繼承
24,抽象class不能同時(shí)被static修飾子修飾
25,native:方法被java以外其它語言實(shí)現(xiàn)
26,interface里面:
方法默認(rèn)為public abstract修飾
變量默認(rèn)為public static final修飾
27,abstract和final,abstract和static,abstract和private不能同時(shí)指定
28,&&,||為短路條件運(yùn)算符
&,|為不短路條件運(yùn)算符
29,switch()只能判斷byte,short,int,char(long,float,double不行)
30,Exception包括可check Exception和Runtime Exception
可check Exception可以被編譯器檢查,Runtime Exception不被編譯器檢查,但是
可以被catch捕捉
31,try{}catch{}catch{}多個(gè)catch語句按照聲明順序檢查,一旦被捕捉,以后catch
就直接跳過,超類Exception可以捕捉子類Exception
32,try中即使有return,finally段也會(huì)被執(zhí)行
33,method聲明用throws,拋出Exception用throw
34,強(qiáng)制垃圾回收,system.gc();促使垃圾回收,但不是馬上回收
35,finalize();在垃圾回收的時(shí)候自動(dòng)調(diào)用;建議顯式調(diào)用super.finalize();
36,main方法的args[0]是第一個(gè)參數(shù),例如:java Test a b c,args[0]是"a"
37,類中static段中不能throw異常,constructor里面不能throw異常
38,對(duì)于除零:整數(shù)運(yùn)算拋出ArithmeticException
實(shí)數(shù)運(yùn)算不拋出異常;返回Infinity或者-Infinity
39,instanceof運(yùn)算子,is的意思,例如:betty instanceof girl,返回true,:)
40,override和overload的區(qū)別
很簡(jiǎn)單,不多寫了
41,inner class(內(nèi)部類:重點(diǎn)注意)
nest class:class內(nèi)部定義的class
包括(member class:作為class的member定義的class
local class:作為method局部變量定義的class
anonymous class:用new生成的沒有名字的class)
42,inner class:除了static member class以外的所有nest class總稱
inner class中不能定義static段
inner class里面不能定義沒有final修飾子修飾的static變量
inner class不能定義interface?(記不清了,自己確認(rèn)一下)
43,member class的使用方法:TopClass.memberClass
44,static宣言的member class的生成方法:
TopClass的instance.new memberClass()或者
new TopClass.memberClass();
45,local class不能顯式被修飾子修飾
46,local class只能存取被final修飾子修飾的上級(jí)變量(注意)
47,anonymous class instance生成方法:
new SuperClass名(){.......}或者
new Interface名(){......}
48,anonymous class
不能定義sub class(因?yàn)樽约簺]有名字)
不能定義為abstract class
不能定義constructor(注意)
49,Thread生成方法
繼承java.lang.Thread
實(shí)現(xiàn)java.lang.Runnable interface,然后用new Thread(實(shí)現(xiàn)Runnable接口
的class)來生成Thread instance
50,Thread的join方法,等待Thread結(jié)束
51,Object的wait()方法和notify(),notifyAll()方法(線程同期化,自己好好
看看)
52,同期化保留字:synchronized(有可能要求拼寫)
53,如果用synchronized修飾static方法,static寫在前頭
54,String和StringBuffer區(qū)別:String初始化后不可改變,StringBuffer可以改
變
String s1="hello";String s2="hello";
if (s1==s2){System.out.println("OK");}
執(zhí)行結(jié)果是打印出OK
>>>運(yùn)算符高位填0,是為邏輯移位