一些關(guān)鍵詞語,一些知識點的理解
-
final 表示該值被創(chuàng)建并初始化后具有不可被更改性稽煤。被final修飾的類不可被繼承核芽,被final修飾的類不可被子類覆蓋。被final修飾的類所有方法自動成為final方法酵熙,但是域不會自動變成final域轧简。
static 表示該值從實例域變?yōu)殪o態(tài)域,并具有唯一性(一般static和final一起使用的時候匾二,static在final前面) - 靜態(tài)方法:不能對對象實施操作哮独,不能訪問實例域;沒有this參數(shù)假勿;可以訪問自身類中的靜態(tài)域借嗽。兩種情況使用靜態(tài)方法:1.一個方法不需要訪問對象狀態(tài),其所需參數(shù)都是通過顯式參數(shù)提供(例如转培,
Math.pow(x, a);
恶导,用于計算冪x^a,x的a次冪,不使用任何Math對象);2.一個方法只需要訪問類的靜態(tài)域浸须。 - 非public類和public類都可以有main方法惨寿,常用于對類進行單元測試。如果要運行整個工程删窒,可以用java Application來運行裂垦,非public類的main方法不會運行。
- 實例域如果不顯式初始化肌索,系統(tǒng)會自動賦值默認值:數(shù)值型為0蕉拢,布爾值為false,對象引用為null等诚亚。而方法里的那些局部變量如果不顯式初始化晕换,系統(tǒng)不會自動賦值,而是一些隨機值站宗。
- 構(gòu)造器的執(zhí)行處理過程
1) 所有數(shù)據(jù)域被初始化為默認值(0闸准,null,false)
2) 按照在類聲明中出現(xiàn)的順序梢灭,依次執(zhí)行所有域初始化語句和初始化塊
3) 如果構(gòu)造器第一行調(diào)用了第二個構(gòu)造器夷家,則執(zhí)行第二個構(gòu)造器主體
4) 執(zhí)行這個構(gòu)造器主體 - javadoc從下面幾個特性中抽取信息:
1)包
2) 公有類和接口
3) 公有的和受保護的構(gòu)造器和方法
4) 公有的受保護的域
如果文檔中有其他文件的鏈接蒸其,比如圖像文件(用戶界面的組件的圖表或圖像等),就應(yīng)該將這些文件放到子目錄doc-files中库快。 - java.lang包是被默認導入的摸袁。
- 出現(xiàn)超類對象的任何地方都可以用子類對象置換。
如:(new Manager() 創(chuàng)建的對象代替了new Employee()創(chuàng)建的對象)
Employee e缺谴;
e = new Employee();//Employee object expected
e = new Manager();//Manager can be used as well
但是在具體應(yīng)用中但惶,還是要遵守繼承的規(guī)則耳鸯。 - 動態(tài)綁定/方法表
??對象調(diào)用非private湿蛔,staitc,final方法時所用的一種生成調(diào)用指令的方式县爬。當程序運行阳啥,并采用動態(tài)綁定調(diào)用方法時,為了減少搜索方法的時間開銷财喳,虛擬機會為每個類創(chuàng)建一個方法表察迟,其中列出了所有方法的簽名和實際調(diào)用的方法。
??比如耳高,Manager類中有三個繼承來的方法扎瓶,一個重寫的方法,一個新增的方法泌枪。
??Manager:
??gerName()->Employee.getName()
??getSalary()->Manager.getSalary()
??getHireDay()->Employee.getHireDay()
??getSalary(double)->Employee.getSalary(double)
??getBonus->Manager.getBonus()
??在運行的時候概荷,調(diào)用e.getSalary()的解析過程:
1) 首先,虛擬機提取e的實際類型的方法表碌燕。既可能是Employee误证、Manager,也可能是Employee類的其他子類的方法表修壕。
2) 接下來愈捅,虛擬機搜索定義getSalary簽名的類。
3) 最后慈鸠,虛擬機調(diào)用方法蓝谨。虛擬機會調(diào)用與e所引用對象的實際類型最合適的那個方法。假如e的實際類型是D青团,C是D的父類譬巫。如果是D定義了e,就調(diào)用它壶冒;否則缕题,在C中查找e,以此類推胖腾。
一些詞匯
- abbreviation 省略烟零,簡化瘪松,縮寫詞
- annotation 注釋
- associated 關(guān)聯(lián)(的),聯(lián)合(的)锨阿,合伙人
- binary 二進位的宵睦,二進制數(shù)
oct 八進制數(shù)
decimal 十進位的,小數(shù)的墅诡,小數(shù)
hex 十六進制數(shù) - cannot be resolved 不能被識別(未聲明等)
- collaboration 協(xié)作
- capacity 容量
size 大小 - defined 已被定義的
- definitive 最后的壳嚎,不可更改的
- demonstrate 演示,證明
- diagram 圖表末早,圖解烟馅,示意圖
- dynamic 動態(tài)(的)
- execute/execution 執(zhí)行,完成
- executive 【計算機】執(zhí)行指令然磷;總經(jīng)理郑趁,行政部門(的)
- generic 一般的,泛型
- handler 處理器
- hierarchy 【計算機】層次姿搜;等級制度
- implicit/explicit 隱式/顯式
- invoke 請求寡润,祈求
- javadoc (文檔提取工具,從源文件中生成一個HTML文檔)
- merge 混合舅柜,融入
- mutable/immutable 可改變的/不可改變的
- notification 通知梭纹,布告
- overloading resolution 重載解析
- polymorphism 多態(tài)性,多機組合形式
- primitive 基本的致份,原始的
- propose 建議变抽,打算,計劃
- reflection 反射
- signature 簽名
- snapshot 快照
- spreadsheet 電子表格程序
- statement 聲明
- submit 提交
- utility 實用程序
一些類
- Random
Random random = new Random();
int id = random.nextInt(1000);//nextInt(n) 返回0~(n-1)中的任一整數(shù)數(shù)
- indexOf
java子字符串的查找方法:
int indexOf(String b)
:返回指定子字符串第一次出現(xiàn)的索引
int indexOf(String b, int startIndex)
:返回給定位置之后第一次出現(xiàn)指定子字符串的索引
int lastIndexOf(String b)
:返回出現(xiàn)指定子字符串的最后一個索引
int lastIndexOf(String b, int startIndex)
:從指定索引出開始向后搜索知举,返回在此字符串中出現(xiàn)制定子字符串的最后的索引
如果在字符串中不含有指定子字符串瞬沦,返回-1
類的設(shè)計技巧
- 一定要保證數(shù)據(jù)私有
- 一定要對數(shù)據(jù)初始化
- 不要在類中使用過多的基本類型
- 不是所有的域都需要獨立的域訪問器和域更改器
- 將職責過多的類進行分解
- 類名和方法名要能夠體現(xiàn)它們的職責