java學習筆記#3-異常/集合

異常:

所有異常的父類是Throwable類,它的兩個子類:Error,Exception

Error:

Error出現(xiàn)程序必然崩潰,常見Error如虛擬機錯誤,線程死鎖。

Exception:

我們常說的異常就是指Exception。Exception出現(xiàn)表示程序編碼、環(huán)境或者輸入等出現(xiàn)問題。
Exception異常中比較主要的一個RuntimeException。
這類異常由虛擬機自動拋出與捕獲,絕大多數(shù)情況是代碼有問題。


RuntimeException

檢查異常需要人為添加Catch。


異常的拋出:

throw:

將產生的異常拋出(動作)。寫入函數(shù)體內部。

throws:

聲明將要拋出任何類型的異常(聲明)。拋出的異常不處理,直接給上一級。

一般而言:
在采用邏輯規(guī)避的同時輔助try-catch處理。
使用多重catch(子類在前,父類在后),并在最后catch(Expection)來處理可能遺漏的異常。
不要僅僅使用printStackTrace(),最好能夠詳細處理異常。
使用finally塊去實現(xiàn)業(yè)務邏輯回滾等方法來應對異常。


字符串相關:

String

string類具有不可變性,每次修改都需要分配空間進行存儲。當string頻繁修改的時候會產生很多零時變量。所以最好使用StringBuilder類。

StringBuilder

對StirngBuilder進行修改的時候,系統(tǒng)不會去創(chuàng)建新對象。


getInstance() 與new();

兩者的區(qū)別主要在于類是否是抽象類。抽象類只能通過getInstance()來實例化。


集合:

集合與數(shù)組對比:

數(shù)組長度在聲明的時候進行固定,所以當有新的元素添加進數(shù)組的時候,需要新建更長的數(shù)組,然后移動原數(shù)組中的內容。
集合的容量是可以動態(tài)擴展的。

數(shù)組通過數(shù)組下標進行元素訪問。找特定元素往往需要遍歷所有的內容。
集合可以通過任意類型查找對象位置。集合還提供了映射關系,可以用于快速找到特定內容。

集合框架體系結構:

collection中元素都是獨立出現(xiàn)的。
map中元素成對出現(xiàn)。


集合框架體系結構

list:元素有序且可重復,順序表。
queue:元素有序可重復,鏈表。
set:元素不可重復,數(shù)學集合。

當我們對集合中的對象調用contains()方法時,實際上是在調用equals(Object obj)方法進行比較。即使輸入的元素與相比較的元素屬性值全部相等,但是仍是兩個不通的對象。所以contains返回值為false,為了得到通過比較出相同屬性值而得到的true結果,就需要重寫equals方法。

sort()方法

Collections.sort(object obj)中,參數(shù)可以是自定義的class集合,但是因為自定的class默認是沒有繼承comparable接口的,所以不可比較。

需要繼承comparable接口并實現(xiàn)compareTo功能。

public class Course implements Comparable<Course>
...
...
public int compareTo(Course o) {
        return this.getId().compareTo(o.getId());
    }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,697評論 18 399
  • 集合 Java的集合大致可以分成Set List 和 Map三種體系結構。其中Set代表無序不可重復的集合;Lis...
    wangmin閱讀 536評論 -1 1
  • java筆記第一天 == 和 equals ==比較的比較的是兩個變量的值是否相等,對于引用型變量表示的是兩個變量...
    jmychou閱讀 1,648評論 0 3
  • (一)Java部分 1、列舉出JAVA中6個比較常用的包【天威誠信面試題】 【參考答案】 java.lang;ja...
    獨云閱讀 7,265評論 0 62
  • 過年期間,我一直在思考一件事,如何讓自己的工作更高效? 通常來說,為了完成更多的工作達成更高的業(yè)績,采用的方式無非...
    楓丹露白閱讀 567評論 0 2

友情鏈接更多精彩內容