Java 高級應用編程 第一章 工具類

1、Java APIhtml

  Java API簡介java

    一、API (Application Programming Interface) 應用程序接口編程

    二、Java中的API,就是JDK提供的各類功能的Java類api

    三、JDK幫助文檔   JAVA_API_CN.chm   官網地址http://www.oracle.com/technetwork/java/api-141528.html數組

    如:安全

      java.lang
        Java語言包(包含String、Math、System等類),任何類中,該包中的類都會被自動導入。
      java.util
        包含一些實用的工具類( 包含 list, calendar, date等類)
      java.awt
        圖形用戶界面包。
      java.io
        提供多種輸入/輸出功能的類。網絡

      java.net
        提供網絡應用功能的類。oracle

2、Object編程語言

  (一)Object介紹及方法工具

    一、Object類是全部類的超類, Object是Java語言中惟一一個沒有父類的類。

     二、一個類能夠不是Object類的直接子類,但必定是Object類的子類,Java中的每個類都是從Object擴展來的。

     三、在Object類中定義的方法,在全部類中均可以使用。

  (二)Object 類經常使用方法

    一、public boolean equals(Object obj): 比較兩個對象引用的值是否相等(比較地址)。指出調用該方法的對象是否與obj對象相等。即地址是否相等。

    二、public int hashCode():該方法返回對象的哈希碼,哈希碼是一個表明對象的十六進制整數,比做對象的身份證號。在程序運行期間,每次調用同一個對象的hashCode()返回的哈希碼一定相同,可是屢次執行同一個程序,程序的一次執行和下一次執行期間同一個對象的哈希碼不必定相同。實際上默認的哈希碼是將對象的內存地址經過某種轉換獲得的,因此不一樣對象會有不一樣的哈希碼

    三、public String toString():返回 類名@hashcode ;事實上返回這樣的字符串沒有什麼實際的意義。通常子類都會覆蓋該方法,讓它返回有意義的文本。

 3、equals()  與 ==的區別

 

  理解equals()方法和==運算符的區別是很是重要的。
    默認狀況下(即沒有被重寫時)equals()只能比較引用類型,"=="既能比較引用類型又能比較基本類型。
    equals()方法從Object類繼承,即比較對象引用的值
    通常都被子類方法覆蓋,再也不比較引用的值
  "=="運算符:
    比較基本數據類型:至關於算術等號
    比較引用數據類型:比較引用的值,不能被覆蓋。

4、包裝類

    一、Java編程語言不把基本數據類型看做對象。Java 編程語言提供包裝類來將基本數據類型看做對象。

    二、在功能上包裝類可以完成數據類型之間(除boolean)的相互轉換,尤爲是基本數據類型和String類型的轉換。

    三、包裝類中包含了對應基本數據類型的值,封裝了String和基本數據類型之間相互轉換的方法,還有一些處理這些基本數據類型時很是有用的屬性和方法。

  (一)包裝類簡介

    基本數據類型不是對象層次結構的組成部分。有時須要像處理對象同樣處理這些基本數據類型,可經過相應的「包裝類」來將其「包裝」 。

  (二)字符串與基本數據類型、包裝類型轉換圖

 

    一、基本數據類型轉換爲包裝類

      int pInt = 500;
      Integer wInt = new Integer(pInt);

    二、字符串轉換爲包裝類

      字符串經過構造方法轉換爲包裝類

        String sInt = 「500」;
        Integer wInt = new Integer(sInt);

       字符串經過包裝類的valueOf(String s)轉換爲包裝類

        String sInt = 「500」;
        Integer wInt = Integer.valueOf(sInt);
      注意:字符串不能經過以上兩種方式轉換爲Character

    三、包裝類轉換爲基本數據類型

      包裝類經過xxxValue()方法轉換爲基本數據類型

        Integer wInt = new Integer(500);
        int pInt = wInt.intValue();

     四、包裝類轉換爲字符串

      包裝類經過toString()方法轉換爲字符串

        Integer wInt = new Integer(500);
        String sInt = wInt.toString();

     五、字符串轉換爲基本數據類型

      字符串經過parseXXX(String s)方法轉換爲基本數據類型

        String sInt = 「500」;
        int pInt = Integer.parsetIInt(sInt);

  (三)自動的裝箱和自動拆箱

    一、在進行基本數據類型和對應的包裝類轉換時,系統將自動進行

    二、JDK自從5.0版本後引入

    三、方便程序的編寫

      int pInt = 500;
      Integer wInt = pInt;
      int n = wInt;

5、字符串類

    一、字符串表現形式能夠分爲兩種:String和StringBuffer。

     二、不屬於8種基本的數據類型,而是一種引用類型。

 

    三、String對象表明一組不可改變的Unicode字符序列,對它的任何修改實際上又產生一個新的字符串,String類對象的內容一旦被初始化就不能再改變。

 

    四、StringBuffer對象表明一組可改變的Unicode字符序列。

    五、String類是final類型的類。

  (一)String 對象的建立

    String類的構造方法
      一、初始化一個新建立的 String 對象,它表示一個空字符序列。

        String 變量名 = new String () ;
      二、初始化一個新建立的 String 對象,表示一個與該參數相同的字符序列

        String 變量名 = new String (String value) ;
      三、分配一個新的字符串,它包含當前包含在字符串緩衝區參數中的字符序列。

        String 變量名 = new String (StringBuffer buf) ;
      四、字符串文字常量自己是一個String對象
        String 變量名 = 「hello」 ;

      五、初始化一個新建立的 String 對象,經過使用指定的charset 解碼指定的 byte 數組

         String 變量名 = new String(byte[] bytes, String charsetName);

      六、初始化一個新建立的 String 對象,經過使用指定的 charset解碼指定的 byte 子數組,構造一個新的 String

        String 變量名 = new String(byte[] bytes, int offset, int length, Charset charset);

      七、鏈接操做符「+」,能夠將其它各類類型的數據轉換成字符串,並先後鏈接成新的字符串

        String str1 = 「hello 」;
        String str2 = 「world」;
        String str = str1 + str2; //str爲「hello world」;

   (二)String 類的轉換

  

  (三)String 類中經常使用的方法

     

  (四)StringBuffer 類

     StringBuffer類用於內容能夠改變的字符串

    可使用StringBuffer來對字符串的內容進行動態操做,不會產生額外的對象

   (五)StringBuffer 對象的建立

     一、構造一個其中不帶字符的字符串緩衝區,其初始容量爲 16 個字符

      StringBuffer 變量名 = new StringBuffer () ;

    二、構造一個不帶字符,但具備指定初始容量的字符串緩衝區。

      StringBuffer 變量名 = new StringBuffer (int capacity ) ;

    三、構造一個字符串緩衝區,並將其內容初始化爲指定的字符串內容。

      StringBuffer 變量名 = new StringBuffer (String value) ;

  (六)StringBuffer 類中經常使用的方法

  (七)==

    在比較基本數據類型時,比較的是值

    在比較引用數據類型時,比較的是地址

  (八)equals

     原生的(未被重寫的)equals方法底層就是==,即比較兩個對象的值,一般用來判斷兩個對象是否爲同一個對象,返回值爲true兩個對象就爲同一對象,當Object的子類重寫之後就具備了其餘功能,equals方法不能用來比較基本數據類型

  (九)hashcode

    hashcode(哈希碼)哈希表記錄每一個對象存儲的位置,所以能夠將哈希碼做爲對象內存地址的表示,一般用hashcode去比較兩個對象是否不是同一個對象,若是hashcode不一樣兩個對象就不是同一個對象

  (十)問:爲啥不用hashcode比較兩個對象是否爲同一個對象

      答:存在hashcode相同,equals返回結果爲false的狀況

   (十一)String、StringBuffer、StringBuilder

    String不可變字符序列
    StringBuffer、StringBuilder可變字符序列
    StringBuffer線程安全可是效率低,較早引入
    StringBuilder線程不安全可是效率高,較晚引入

6、Math 類

    Math類提供了大量用於數學運算的方法

    Math類是final類,所以不能從Math類繼承

    Math類中的方法都是static方法,所以沒必要建立Math類的對象就能夠直接使用該類的方法

  (一)Math 類中的常量

     public static final double PI

     public static final double PI

  (二)Math 類中的經常使用方法

7、日期類

   (一)Date  類

     java.util.Date。

    Date 類表示指定的時間信息,能夠精確到毫秒。

    不支持國際化。

    該類的許多方法已過期

    獲取當前系統時間:      

      new Date();

  (二) Calendar  類

    一、java.util.Calendar。
      java.util.GregorianCalendar
    二、經常使用的日期處理的對象。能夠設置本身的時區和國際化格式。
    三、是一個抽象類。
    四、Calendar 抽象類定義了足夠的方法,讓咱們可以表述日曆的規則 。
    五、獲取Calendar對象的實例

      Calendar c = Calendar.getInstance();

    六、設置Calendar實例所表示的時間:

      c.set(2011,6,16);

    七、獲取指定的時間屬性

      c.get(Calendar.YEAR);

  (三)Calendar 類經常使用屬性

  

相關文章
相關標籤/搜索