天天看點

學習日記day17

API的學習:

      構造方法

      常用方法:

                什麼時候調用

                跟什麼有關

                用來做什麼的

                得到的是什麼

Object:

  1. 所有類的父類,所有類都預設繼承Object,也就意味着預設繼承Object中所有方法
  2. 隻有一個無參構造方法,沒有靜态常量,所有方法都必須通過對象調用
  3. Object共有11個方法

                  A.Class<?> getClass()  獲得類的位元組碼對象

                         作用:通過對象的該方法,可以擷取對象的位元組碼檔案

                         類加載的觸發條件(使用類)

  1. 執行個體化對象
  2. 調用靜态變量/方法
  3. 使用子類,加載父類
  4. Class.forName(“類全名”) -- jdbc
  5. 對象.getClass

                   B.clone() 深克隆

學習日記day17

                調用1.方法必須重寫 2必須實作Cloneable接口,否則會抛出異常

                注意:一般不會重寫clone()可以使用引用的指派進行複制 Cloneable接口是空接口 隻是标記

C protected void finalize()

學習日記day17

a記憶體溢出和記憶體洩露

記憶體溢出:記憶體中沒有存儲的地方

記憶體洩露:記憶體被無用的對象占用

b.java存在垃圾回收機制 – gc

         gc:定時清理記憶體中的對象

  1. 垃圾:沒有引用的對象
  2. 可以手動調用 System.gc
  3. 注意:java原則上不存在記憶體溢出和洩露

D toString()

a.作用:将對象以字元串的形式輸出

b.原内容:getClass().getName()+“@”+Integer.toHexString(hashCode());

@前:全類名 –>包名 + 類名

@後:16進制的位址值

c.方法的重寫 目的:

E.boolean equals(Object obj)

a.作用:判斷兩個對象[this obj]是否相等

b.預設實作:判斷兩個對象的位址值是否相等 重寫後 判斷内容是否相等

c.既不是既不是同一個對象,也不是同一個類型的情況

F. int hashCode()  -

     public native int hashCode();

                native:本地 ->底層下是c++實作的代碼

G.wait() *3/notify()/notifyAll()/ 線程相關

     跟時間相關的類:

Date:long可以表示時間

  1. 擷取方式:long time = System.currentTimeMills();
  2. 作用: a.短時間(7天内)的運算 b代碼效率的對比
  3. 注意:在進行計算時,需要注意整數類型的預設值是int類型,如果超出int範圍,會變成負數,是以在運算前标記為long類型

      Date類

  1. 作用:隻能用來做時間的顯示
  2. 建立:a. new Date() ->擷取目前系統時間    b new Date(long time)—>獲得任一時間段的值
  3. 常用API  setTime()  getTime()
  4. 和long的轉換   long->Date

Calendar類:

  1. 作用:專門用來做時間的推算或者時間的跳轉
  2. 特點:a. Calendar類是abstract類,不能new對象    b. 使用方法:1.Calendar實作類調用靜态方法調用
  3. 常用API:

                 Date getTime() -> Calendar轉換成Date

                 Void setTime(Date)->Date轉換成Calendar

                  get()->擷取

                  set()->設定,時間的跳轉

                  add()->時間的推算