二、靜態(tài)、動態(tài)數(shù)據(jù)類型檢查
靜態(tài):編譯階段——與類型有關(guān)(語法錯誤、類名、函數(shù)名錯誤等,避免因錯誤類型的操作而導(dǎo)致的bug)(針對類型、與變量特定值無關(guān)的錯誤)
動態(tài):運行階段——與值有關(guān)(運行時才知道非法的參數(shù)、超出范圍的索引值、調(diào)用空對象的方法)(針對由特定值引起的錯誤)
三、可變、不可變性
改變一個變量:將變量指向另一個存儲空間
改變一個變量的值:將改變量空間寫入一個新的值
Immutability:“final”——值不可變、引用不可變、類型不能被繼承、方法不能override
對象 不可變(String)
只用可變數(shù)據(jù)類型的風(fēng)險
1、傳遞可變類型的參數(shù)(可能會改變其中的值,再次使用問題)
2、返回可變類型的數(shù)據(jù)(如果接受放進行修改,也許會影響到程序內(nèi)部)
四、Arrays
1、Arrays(定長的數(shù)據(jù)類型)一但被創(chuàng)建,不可修改數(shù)組的長度
int[] a = new int[100];
迭代
2、List (長度可修改)
List<Integer> list = new ArrayList<Integer>();
ps.List是一個接口,List中的成員必須為對象
迭代
Set<Integer> numbers = new Hashset<>();
set是一個抽象接口
4、Map
Map<key,value> map = new HashMap <key,value>
map是一個抽象接口
來源:https://www.icode9.com/content-4-262401.html