裡面有些術語有可能比較怪些
不過大家應該還是能夠理解的
初始化類變量自動初始化為
或者null
局部變量使用前一定要初始化
主類型過載類型匹配順序
按照byte
>short
>char
>int
>long
>float
>double順序匹配
一種主類型只能匹配參數范圍不小於其本身和其本身范圍最接近的函數即有int i;
f(short s);
f(long l);i只能適用於第
個f函數如果是常數
則編譯器作為int處理
主類型計算結果的類型和最大范圍計算子的類型一致
但是最小也要是int
即byte+byte結果為int型
short型和char型不能互相賦值(因為short有符號
char無符號)
package一定要放在java文件第一行(除注釋空行外)
import只能放在第一行或者package下面
多個import的package裡面如果有同名class
使用時必須指定package
interface中只能有方法宣言和定數
class實現interface必須實現全部方法
同一java文件中class和interface只能有一個public
為了宣言定數
在變量前加final修飾子
變量不可改變
但是object的 屬性可以改變(有點忘記了
請確認
))
配列不能在宣言的時候用char arr[
]
形式指定
必須要用new指定大小
指定完畢後自動初期化
也可以new的時候用{
}形式指定
如果一個object為null
使用其屬性或者方法
產生NullPointerException
如果使用一個越界index訪問配列
產生ArrayOfBoundsException
配列長用配列名
length
constructor如果有返回值
編譯器作為一般方法看待
constructor裡面如果要用super(
)和this(
)
必須放在第一行
而且只能用一次
如果沒有顯式調用super和this
編譯器自動在第一行插入super();要求超類必須存在無參數的constructor
如果沒有顯式聲明constructor
編譯器自動生成默認無參數constructor
一旦聲明
則無默認constructor
修飾子(訪問范圍大小順序)public 完全公開protected 同一package或者子類中 無 同一package private 本class
override的方法不能使訪問范圍縮小即父類中public方法不能被protected override
static方法不能被override?確認
constructor不能被繼承
抽象class不能同時被static修飾子修飾
native
方法被java以外其它語言實現
interface裡面
方法默認為public abstract修飾變量默認為public static final修飾
abstract和final
abstract和static
abstract和private不能同時指定
&&
||為短路條件運算符 &
|為不短路條件運算符
switch()只能判斷byte
short
int
char(long
float
double不行)
Exception包括可check Exception和Runtime Exception可check Exception可以被編譯器檢查
Runtime Exception不被編譯器檢查
但是可以被catch捕捉
try{}catch{}catch{}多個catch語句按照聲明順序檢查
一旦被捕捉
以後catch就直接跳過
超類Exception可以捕捉子類Exception
try中即使有return
finally段也會被執行
method聲明用throws
拋出Exception用throw
強制垃圾回收
system
gc()
促使垃圾回收
但不是馬上回收
finalize()
在垃圾回收的時候自動調用
建議顯式調用super
finalize()
main方法的args[
]是第一個參數
例如
java Test a b c
args[
]是
a
類中static段中不能throw異常
constructor裡面不能throw異常
對於除零
整數運算拋出ArithmeticException 實數運算不拋出異常
返回Infinity或者
Infinity
instanceof運算子
is的意思
例如
betty instanceof girl
返回true
)
override和overload的區別 很簡單
不多寫了
inner class(內部類
重點注意)
nest class
class內部定義的class
包括(member class
作為class的member定義的class
local class
作為method局部變量定義的class
anonymous class
用new生成的沒有名字的class)
inner class
除了static member class以外的所有nest class總稱
inner class中不能定義static段
inner class裡面不能定義沒有final修飾子修飾的static變量
inner class不能定義interface?(記不清了
自己確認一下)
member class的使用方法
mberClass
static宣言的member class的生成方法
TopClass的instance
new memberClass()或者
new mberClass();
local class不能顯式被修飾子修飾
local class只能存取被final修飾子修飾的上級變量(注意)
anonymous class instance生成方法
new SuperClass名(){
}或者
new Interface名(){
}
anonymous class
不能定義sub class(因為自己沒有名字)
不能定義為abstract class
不能定義constructor(注意)
Thread生成方法
繼承java
lang
Thread
實現java
lang
Runnable interface
然後用new Thread(實現Runnable接口 的class)來生成Thread instance
Thread的join方法
等待Thread結束
Object的wait()方法和notify()
notifyAll()方法(線程同期化
自己好好 看看)
同期化保留字:synchronized(有可能要求拼寫)
如果用synchronized修飾static方法
static寫在前頭
String和StringBuffer區別
String初始化後不可改變
StringBuffer可以改變
String s
=
hello
;String s
=
hello
;
if (s
==s
){System
out
println(
OK
);}
執行結果是打印出OK
>>運算符是高位填充符號位
是為算術移位 >>>運算符高位填
是為邏輯移位其余有關swt
util
IO之類的東東
基本上都是死記硬背的
這裡就不多說了
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/19728.html