Directorio de artículos
1. La instanciación del objeto
1.
-
nuevo
- La forma más común
Variación 1: método estático de Xxx
Variación 2: método estático de XxBuilder / XxoxFactory
- La forma más común
-
NewInstance () de la clase: el método de reflexión solo puede llamar al constructor del parámetro nulo, y el permiso debe ser público
-
NewInstance del constructor (Xxx): de manera reflexiva, puede llamar al constructor con parámetros vacíos y parametrizados, y no hay requisitos de permisos
-
Use clone (): no llame a ningún constructor, la clase actual necesita implementar la interfaz Cloneable e implementar clone ()
-
Use la deserialización: obtenga una secuencia binaria de un objeto desde un archivo y desde la red
-
Biblioteca de terceros Objenesis
-
Determinar si la clase correspondiente al objeto está cargada, vinculada, inicializada
-
Asignar memoria para el objeto
-
Si la memoria es regular y choca un puntero
-
Si la memoria es irregular:
- La máquina virtual necesita mantener una lista
- Asignación de lista gratuita
-
-
Manejo de problemas de seguridad de simultaneidad
- Utilice CAS con reintento fallido para garantizar la atomicidad de la actualización
- A cada hilo se le asigna un TLAB por adelantado
-
Inicialice el espacio asignado: todas las propiedades se establecen en valores predeterminados para garantizar que los campos de instancia del objeto se puedan usar directamente cuando no estén asignados.
Establecer el encabezado del objeto del objeto -
Ejecute el método init para inicializar
2. Disposición de la memoria de objetos
1. Encabezado: Punteros de tipo Markword y KlassInstance de metadatos en tiempo de ejecución
2. Datos de instancia InstanceData
3. Alineación de relleno y relleno
public class CustomerTest {
public static void main(String[] args) {
Customer cust = new Customer();
}
}
3. Acceda a la ubicación del objeto
¿Cómo accede la JVM a sus instancias de objetos internos a través de las referencias de objetos en el marco de pila? -> Posicionamiento, al que se accede mediante referencia en la pila
1. Manejar el acceso
2. Puntero directo (adoptado por HotSpot)