錯誤觀點:為什麼使用陣列而不使用ArrayList等容器類
錯誤觀點:為什麼使用陣列而不使用ArrayList等容器類
效率和型別。
3.2.1 效率:
對於Java 來說要想儲存和隨機訪問一系列物件實際是物件引用效率最高的方法莫過於陣列。
3.2.2 型別:
Java標準庫中的容器類都把物件當作沒有具體型別那樣對待,換言之它們將其當作Object 型別處理。Object 型別是Java 中所有類的根類,從某種角度看這種處理方法是非常合理的,我們只需構建一個容器然後所有Java 物件都可進入那個容器。原始資料型別除外,可用Java 的基型別封裝器類將其作為常數置入容器或自建一個類把它們封裝到裡面當作可變值進行對待。這再一次體現出陣列相較於普通容器的優越性,建立一個陣列時可讓它容納一種特定的型別。這意味著可進行編譯時間的型別檢查防範自己設定了錯誤的型別或者錯誤地提取了一種型別,而不是執行時的Exception。
這是寫給初學者的謊言,儘量使用Collection,保證你的程式碼OO風格,如果過多使用陣列,程式碼魯壯性不夠,穩定性差;易讀性更難。不能因為這一點效能而破壞設計。
在不破壞設計的前提下追求最大效能。
效率和型別。
3.2.1 效率:
對於Java 來說要想儲存和隨機訪問一系列物件實際是物件引用效率最高的方法莫過於陣列。
3.2.2 型別:
Java標準庫中的容器類都把物件當作沒有具體型別那樣對待,換言之它們將其當作Object 型別處理。Object 型別是Java 中所有類的根類,從某種角度看這種處理方法是非常合理的,我們只需構建一個容器然後所有Java 物件都可進入那個容器。原始資料型別除外,可用Java 的基型別封裝器類將其作為常數置入容器或自建一個類把它們封裝到裡面當作可變值進行對待。這再一次體現出陣列相較於普通容器的優越性,建立一個陣列時可讓它容納一種特定的型別。這意味著可進行編譯時間的型別檢查防範自己設定了錯誤的型別或者錯誤地提取了一種型別,而不是執行時的Exception。
這是寫給初學者的謊言,儘量使用Collection,保證你的程式碼OO風格,如果過多使用陣列,程式碼魯壯性不夠,穩定性差;易讀性更難。不能因為這一點效能而破壞設計。
在不破壞設計的前提下追求最大效能。
相關文章
- 為什麼使用型別化陣列來進行位元組操作而不是普通的 javascript 數字陣列型別陣列JavaScript
- react router為什麼推薦使用browserHistory而不推薦hashHistory?React
- C++中為什麼要用指標,而不直接使用物件?C++指標物件
- 為什麼大多數IOC容器使用ApplicationContext,而不用BeanFactoryAPPContextBean
- Spring IOC 容器為什麼不使用 Class.forName 載入類Spring
- 為什麼不建議使用gotoGo
- 為什麼DNS使用UDP而不是TCP詳解!DNSUDPTCP
- 關於在類陣列中使用陣列方法陣列
- 為什麼有ejbCreate()方法錯誤!!請高手指點
- 為什麼不建議使用eval和with?
- 為什麼java不推薦使用vectorJava
- KVO監聽容器類(陣列,字典等)屬性的兩種方法陣列
- 陣列二:使用陣列可變函式為陣列排序陣列函式排序
- 為什麼要使用訊息佇列?佇列
- 為什麼選擇使用介面(如List)而不是具體實現(如ArrayList)來宣告集合變數?-AI變數AI
- 為什麼 java 容器推薦使用 ExitOnOutOfMemoryError 而非 HeapDumpOnOutOfMemoryError ?JavaError
- 陣列容器(ArrayList)設計與Java實現,看完這個你不懂ArrayList,你找我!!!陣列Java
- 為什麼處理排序陣列比未排序陣列快排序陣列
- 為什麼處理有序陣列比無序陣列快?陣列
- 為什麼建議使用命令列工具?命令列
- 不初始化,Java陣列如何使用?Java陣列
- Java陣列宣告建立和使用以及多維陣列、Arrays類、稀疏陣列Java陣列
- Java中將 int[] 陣列 轉換為 List(ArrayList)Java陣列
- 分支預測:為什麼有序陣列比無序陣列快?陣列
- 泛型陣列列表ArrayList泛型陣列
- 阿里Java面試題剖析:為什麼使用訊息佇列?訊息佇列有什麼優點和缺點?阿里Java面試題佇列
- 為什麼IDEA不推薦你使用@Autowired ?Idea
- 為什麼 Android 中不建議使用 EnumsAndroid
- jQuery將類陣列物件轉換為陣列jQuery陣列物件
- Java陣列03:陣列使用Java陣列
- 為什麼 Python 程式碼要寫得美觀而明確Python
- 面試官問你陣列和ArrayList怎麼答?面試陣列
- 陣列,陣列類,SyStem類陣列
- Java中陣列及相關類的使用Java陣列
- gRPC為什麼使用截止時間而不是超時時間?RPC
- 為什麼要有 Servlet ,什麼是 Servlet 容器,什麼是 Web 容器?ServletWeb
- 為什麼不建議使用免費的IP代理?
- 為什麼 Mac 使用者不選擇 LinuxMacLinux