Java基礎系列之一

mug發表於2021-09-09

Java基礎系列之一

  Java的四個基本特性

Java的四個基本特性是抽象、封裝、繼承、多型。

  Object類及其方法實現

Object的方法有:

構造方法:

   Object( )

用來獲取類的本身的資訊的:  

   public final Class<?> getClass()

   protected Object clone( ) throws CloneNotSupportedException

和比較相關的:

   public boolean equals ( Object obj)

   public int hashCode( )

  和執行緒相關的:  

圖片描述

   public final void wait( )  throws InterruptedException

  public final void wait(long timeout )  throws InterruptedException

  public final void wait(long timeout , int nanos)  throws InterruptedException

  public final void notify( )

  public final void notifyAll()

  protected void finalize( ) throws Throwable

圖片描述

下面簡略寫寫每一個類的作用,只做簡述,不去深究。

—> Object( )

構造方法,用來構造一個新的Object物件。

 

—>protected Object clone( ) throws CloneNotSupportedException

克隆方法,呼叫這個方法,可以返回一個當前物件的克隆物件,但是這個物件的類必須實現Cloneable介面,透過複寫clone()方法,實現對克隆的自定義。

 

—>public boolean equals ( Object obj)

指示一些其他物件是否等於此。用來比較兩者是否一致,並非比較地址是否一致,使用 == 的比較,在對於物件來說,用來比較地址是不是一樣。

 

—>public int hashCode( )

返回這個物件的hash碼。

 

—>protected void finalize( ) throws Throwable

當垃圾收集確定不再有對該物件的引用時,垃圾收集器在覆蓋了這個方法的類的物件上呼叫該物件。如果一個類沒有對這個方法複寫,那麼不會呼叫這個方法,而直接執行垃圾回收。

 

—>public final Class<?> getClass()

返回這個類的型別的物件,也就是說,每一個類都可以透過這個方法,生成一個Class的物件,這個物件的屬性來自於呼叫這個方法的物件。

 

 —>public final void wait( )  throws InterruptedException

 —>public final void wait(long timeout )  throws InterruptedException

 —>public final void wait(long timeout , int nanos)  throws InterruptedException

某個物件呼叫這個方法,使當前執行緒等待,直到其他執行緒呼叫了該物件的該物件的notify()方法或notifyAll()方法,並且線上程間的競爭中獲勝,才能恢復執行。

關於引數

timeout是時間引數,經過了指定的時間,即使沒有被通知,這個執行緒也會自動繼續執行。

在第三個方法中,指定時間是timeout (微秒) + nanos (納秒);

 

—>public final void notify( )

—>public final void notifyAll( )

這是透過某一個物件來喚醒啟用的執行緒的方法。

這兩個啟用執行緒的方法的區別在於,notifyAll向全體在該物件上等待的執行緒發出訊號,然後競爭得出可執行的執行緒。notify則是隨機選擇一個執行緒,使其從阻塞狀態變到執行狀態。

 

基本資料型別與引用資料型別

八個基本資料型別

  char   字元型

  byte   位元組型

  short   小整數

  int     整數

  long   大整數

  float    浮點型

  double   雙精度

  boolean   布林型

 

它們的裝箱變數:

  Character   字元型

  Byte     位元組型

  Short     小整數

  Integer     整數

  Long     大整數

  Float      浮點型

  Double    雙精度

  Boolean     布林型

 

除了Boolean 和 Character 以外的所有物件都來繼承Number這個父類。

1 public abstract class Number extends Object implements Serializable

這個類實現了Serializable這個介面,這個介面的作用是,可序列。也就是說,實現了這個介面,就有了主觀或者是客觀上的大小,也就是說,可以排序了。

這個介面內有三個方法,都需要被實現。

 需要注意的點

  byte型別的範圍是 -128 ~ 127,對byte的127進行i++操作,則會變成-128。

  如果不指明型別,預設的整數型別是int型,小數是double型。

  暫時只能想到這些。

 

finally vs final vs finalize

finally:是用在try-catch-finally的結構中的。

final:是一個修飾符。<這個很重要>

  既可以用來修飾變數:被final修飾的變數為常量,不可再被更改。

  也可以用來修飾方法:被final修飾的方法,在子類中不再可以被複寫。

  還可以用來修飾類:被final修飾的類,不再可以被繼承。

finalize:是一個Object類中的方法,方法簽名是:

1 protected void finalize( ) throws Throwable

簡單的說一下這個的作用

  當垃圾收集確定不再有對該物件的引用時,垃圾收集器在覆蓋了這個方法的類的物件上呼叫該對方法。如果一個類沒有對這個方法複寫,那麼不會呼叫這個方法,而直接執行垃圾回收。

原文出處:https://www.cnblogs.com/zjxu97/p/10049481.html  

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/506/viewspace-2819597/,如需轉載,請註明出處,否則將追究法律責任。

相關文章