Java JDK1.8ソース学習の道1 Object
6218 ワード
いちばん前に書く
合格したバックエンドプログラマーにとって、現行の流行フレームワークはすでに基本的な企業開発に適任しており、Springbootのどのフレームワークも重複した仕事をより簡単に/最適化して解決しているが、このような温水に完全に陥っている.
カエルを温水で煮るように、気持ちがいいほど、だめになるのか、それともその言葉なのか、万変してその宗から離れない.本当にJAVAが何年にわたって衰えない秘密を理解することができて、および最も基礎で、最も重要で、やはりソースコードから着手しなければならなくて、JDK開発者のコード規範を理解します
JDKを実現する過程の構想と、この完璧な言語をもっと理解するために!
中国語オンライン版:https://blog.fondme.cn/apidoc/jdk-1.8-youdao/
目次 01 java.lang.Objectソースコード解読 02 java.lang.Stringソースコード解読
メモ:
ブロックステータス:(待機ステータス)
スレッドがsleep()またはsuspend(保留)を実行すると、CPUリソースが失われ、ブロック状態になります.スリープ時間が経過すると、再び準備完了状態になります.
ブロックの分類待機ブロック:実行状態において、スレッドはwait()メソッドを実行し、待機状態 に入る.同期ブロック:synchronized同期ロックを1つのスレッドで取得できませんでした(すでに占有されています) その他のブロック:スレッドを呼び出すsleep()またはjoin()によってI/O要求が発行されると、スレッドはブロック状態 に入る.
合格したバックエンドプログラマーにとって、現行の流行フレームワークはすでに基本的な企業開発に適任しており、Springbootのどのフレームワークも重複した仕事をより簡単に/最適化して解決しているが、このような温水に完全に陥っている.
カエルを温水で煮るように、気持ちがいいほど、だめになるのか、それともその言葉なのか、万変してその宗から離れない.本当にJAVAが何年にわたって衰えない秘密を理解することができて、および最も基礎で、最も重要で、やはりソースコードから着手しなければならなくて、JDK開発者のコード規範を理解します
JDKを実現する過程の構想と、この完璧な言語をもっと理解するために!
中国語オンライン版:https://blog.fondme.cn/apidoc/jdk-1.8-youdao/
目次
public class Object {
//native
//native , Native Method Java Java 。 Java , C C++。
private static native void registerNatives();
// registerNatives() ,
static {
registerNatives();
}
//getClass JAVA
// java , .getClass() (Class )
public final native Class> getClass();
//hasCode hash
// hash , ,
public native int hashCode();
// , == , 。
// ,== int char floot
// == 。
public boolean equals(Object obj) {
return (this == obj);
}
// , Cloneable clone()
protected native Object clone() throws CloneNotSupportedException;
//toString , , +@+
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
// ,
public final native void notify();
//
public final native void notifyAll();
// , , notify()
public final native void wait(long timeout) throws InterruptedException;
// , ,
public final void wait(long timeout, int nanos) throws InterruptedException {
if (timeout < 0) {
throw new IllegalArgumentException("timeout value is negative");
}
if (nanos < 0 || nanos > 999999) {
throw new IllegalArgumentException(
"nanosecond timeout value out of range");
}
if (nanos > 0) {
timeout++;
}
wait(timeout);
}
// wait , 0ms
public final void wait() throws InterruptedException {
wait(0);
}
// , , ,
protected void finalize() throws Throwable { }
メモ:
ブロックステータス:(待機ステータス)
スレッドがsleep()またはsuspend(保留)を実行すると、CPUリソースが失われ、ブロック状態になります.スリープ時間が経過すると、再び準備完了状態になります.
ブロックの分類