Resumen del código fuente:
Muchos son métodos nativos, escritos detrás de C ++
No hay una descripción sobre el constructor, la construcción sin parámetros proporcionada por el compilador predeterminado
https://blog.csdn.net/dmw412724/article/details/81477546
Ah, ¿por qué sigue siendo nativo? La única conclusión que se puede extraer en la actualidad es que todos los métodos de modificación nativa se implementan mediante JNI llamando a C ++ o código C
Obtenga objetos de clase para reflexionar y leer archivos de configuración
public final native Class <?> getClass ();
Obtenga el valor hash del objeto, similar al valor de dirección de C, porque se está ejecutando en la JVM, por lo que no es el valor de dirección de memoria real, es virtual
-Se puede usar para ayudar a determinar si dos objetos son iguales
public native int hashCode ();
Juicio igualitario original, tome directamente la dirección para comparar
public boolean equals (Object obj) { return ( this == obj); }
Método de clonación, devuelve un objeto copiado, además del segundo método para obtener objetos de la nueva manera
-Tenga en cuenta que las excepciones de clonación no son compatibles, este método debe implementar la interfaz clonable antes de que pueda usarse
Objeto nativo protegido clone () arroja CloneNotSupportedException;
El método predeterminado de toString
- Se devuelve el nombre completo de la clase a la que pertenece el objeto y el valor hash convertido a hexadecimal.
public String toString () { return getClass (). getName () + "@" + Integer.toHexString (hashCode ()); }
Utilizado para el desarrollo de subprocesos múltiples, notificación de significado del método
[Notifique a un subproceso que espera que el objeto regrese del método de espera y devuelva el bloqueo que debe adquirirse para el objeto]
público nulo nativo final notificar ();
[Notificar a todos los hilos que esperan en el objeto]
public final native void notifyAll ();
[Haga que el objeto espere dentro del tiempo del valor del parámetro, devuelva horas extras o sea notificado dentro del tiempo de espera, ¡preste atención! El método de espera liberará el bloqueo del objeto]
público final espera vacía nativa ( tiempo de espera largo ) produce InterruptedException;
[Mayor precisión del tiempo de espera]
public final void wait ( tiempo de espera largo , int nanos) produce InterruptedException { if (timeout <0 ) { throw new IllegalArgumentException ("el valor de tiempo de espera es negativo" ); } if (nanos <0 || nanos> 999999 ) { arrojar nueva IllegalArgumentException ( "valor de tiempo de espera de nanosegundos fuera de rango" ); } if (nanos> 0 ) { tiempo de espera ++ ; } esperar (tiempo de espera); }
[Ingrese el estado de espera hasta que otros hilos lo notifiquen o lo interrumpan antes de regresar]
public final void wait () arroja InterruptedException { wait ( 0 ); }
[Método ejecutado cuando se destruye el objeto]
el vacío protegido finalize () arroja Throwable {}