Comprensión profunda de la máquina virtual Java: características avanzadas de JVM y mejores prácticas descarga de la versión completa [217MB]

Comprensión profunda de la máquina virtual Java: características avanzadas de JVM y mejores prácticas (segunda edición) Introducción:

Nueva actualización del libro superventas, la primera edición se ha impreso casi 10 veces en dos años, el libro clásico reconocido en el campo de los libros Java, la versión tradicional de Taiwán lanzada en
   base al último JDK1.7, en torno a la gestión de memoria, subsistema de ejecución, compilación y optimización de programas, concurrencia eficiente El tema central proporciona un análisis exhaustivo y profundo de la JVM, y revela profundamente el principio de funcionamiento de la JVM.
   Orientado a la práctica, a través de una gran cantidad de casos combinados con el entorno de producción real, muestra las habilidades y las mejores prácticas para resolver varios problemas comunes de la JVM

El traductor
Zhou Zhiming, un experto técnico senior de Java, ha realizado una investigación exhaustiva sobre el desarrollo de aplicaciones empresariales de Java, OSGI, máquina virtual Java y flujo de trabajo, y ha acumulado una rica experiencia en una gran cantidad de prácticas. Especialmente competente en la máquina virtual de Java, escribió una gran cantidad de artículos clásicos relacionados con jvm, y fue reimpreso por las principales comunidades técnicas. Es uno de los líderes de la máquina virtual de Java reconocida por la comunidad técnica como iteye. Además de este libro, también está el clásico libro "Comprensión profunda de osgi: principio, aplicación y mejores prácticas del equinoccio", que ha sido bien recibido por los lectores. Actualmente es el gerente general y arquitecto del departamento de desarrollo de Yuanguang Software Co., Ltd., y ha participado en el trabajo de arquitectura de plataforma de muchos proyectos de ERP a gran escala a nivel nacional, como State Grid y China Southern Power Grid.

Comprensión profunda de la máquina virtual Java: características avanzadas de JVM y mejores prácticas (2ª edición)

La primera parte se acerca a Java
. El primer capítulo se acerca a Java / 2
1.1 Descripción general / 2
1.2 Sistema de tecnología Java / 3
1.3 Historia del desarrollo de Java / 5
1.4 Historia del desarrollo de la máquina virtual Java / 9
1.4.1 sun classic / exacto vm / 9
1.4.2 sun hotspot vm / 11
1.4.3 vm integrado en el móvil sun / meta-circular vm / 12
1.4.4 bea jrockit / ibm j9 vm / 13
1.4.5 azul vm / bea liquid vm / 14
1.4.6 apache harmony / google android dalvik vm / 14
1.4.7 microsoft jvm y otros / 15
1.5 Mirando hacia el futuro de la tecnología java / 16
1.5.1 Modularización / 17
1.5.2 Idiomas mixtos / 17
1.5.3 Paralelismo multinúcleo / 19
1.5.4 Enriqueciendo aún más la sintaxis / 20
.1.5.5 Máquina virtual de 64 bits / 21
1.6 Combate real: compile jdk usted mismo / 22
1.6.1 Obtenga el código fuente jdk / 22
1.6.2 Requisitos del sistema / 24
1.6.3 Entorno de compilación y compilación / 25
1.6.4 compilación / 26
1.6.5, fuente-depuración herramienta ide / 31
1.7 Resumen / 35
La segunda parte de la gestión automática de la memoria en
el Capítulo 2 área java de la memoria y de desbordamiento de memoria excepción / 38
2.1 Visión general / 38
2,2 de ejecución Área de datos / 38
2.2.1 Contador de programas / 39
2.2.2 Pila de máquinas virtuales Java / 39
2.2.3 Pila de métodos locales / 40
2.2.4 Montón de Java / 41
2.2.5 Área de métodos / 41
2.2.6 Agrupación constante de tiempo de ejecución / 42
2.2.7 Memoria directa / 43
2.3 Exploración de objetos de máquina virtual de punto de acceso / 43
2.3.1 Creación de objetos / 44
2.3.2 Diseño de memoria de objetos / 47
2.3.3 Posicionamiento de acceso a objetos / 48
2.4 Combate real: excepción de error fuera de memoria / 50
2.4 0.1 java desbordamiento de la pila / 51
2.4.2 VM desbordamiento de pila y un pilas de método nativo / 53
2.4.3 método de tiempo de ejecución constante zona de la piscina y el desbordamiento / 56
2.4.4 directo a la memoria local de desbordamiento / 59
2.5 Resumen / 60
3 Capítulo Recolector de basura y estrategia de asignación de memoria / 61
3.1 Descripción general / 61
3.2 El objeto está muerto / 62
3.2.1 Algoritmo de recuento de referencias / 62
3.2.2 Algoritmo de análisis de accesibilidad / 64
3.2.3 Hablar de referencias / 65
3.2.4 Supervivencia o muerte / 66
3.2.5 Área del método de reciclaje / 68
3.3 Algoritmo de recolección de basura / 69
3.3.1 Algoritmo de marcado y barrido / 69
3.3.2 Algoritmo de copia / 70
3.3.3 Algoritmo de marcado y clasificación / 71
3.3.4 Algoritmo de recolección generacional / 72
3.4 Implementación del algoritmo de punto de acceso / 72
3.4.1 Nodo raíz / 72
3.4.2 Punto de seguridad / 73
3.4.3 Zona de seguridad / 74
3.5 Recolector de basura / 75
3.5.1 recolector en serie / 76
3.5.2 recolector nuevo / 77
3.5.3 recolector de basura paralelo / 79
3.5.4 colector antiguo en serie / 80
3.5.5 colector antiguo en paralelo / 80
3.5.6 colector cms / 81
3.5.7 colector g1 / 84
3.5.8 comprender gc log / 89
3.5.9 resumen de parámetros del recolector de basura / 90
3.6 Asignación de memoria y estrategia de reciclaje / 91
3.6.1 Los objetos se asignan preferentemente en eden / 91
3.6.2 Los objetos grandes ingresan directamente a la generación anterior / 93
3.6.3 Los objetos de larga vida ingresan a la generación anterior / 95
3.6.4 Determinación dinámica de la edad del objeto / 97
3.6.5 Garantía de asignación de espacio / 98
3.7 Resumen de este capítulo / 100
Capítulo 4 Herramientas de monitoreo y solución de problemas de rendimiento de máquinas virtuales / 101
4.1 Descripción general / 101
4.2 Herramienta de línea de comandos Jdk / 101
4.2.1 jps: herramienta de estado del proceso de máquina virtual / 104
4.2.2 jstat: máquina virtual Herramienta de monitoreo de información estadística / 105
4.2.3 jinfo: herramienta de información de configuración de Java / 106
4.2.4 jmap: herramienta de imágenes de memoria de Java / 107
4.2.5 jhat: herramienta de análisis de instantáneas de volcado de montón de máquina virtual / 108
4.2.6 jstack: pila de Java Herramientas de seguimiento / 109
4.2.7 hsdis: desmontaje de código generado por
jit / 111 4.3 herramientas de visualización jdk / 114
4.3.1 jconsole: consola de administración y monitoreo java / 115
4.3.2 visualvm: herramienta de solución de problemas todo en uno / 122
4.4 Resumen del capítulo / 131
Capítulo 5 Análisis de casos de ajuste y combate real / 132
5.1 Descripción general / 132
5.2 Análisis de casos / 132
5.2.1 Estrategia de implementación del programa en hardware de alto rendimiento / 132
5.2.2 Desbordamiento de memoria causado por sincronización entre clústeres / 135
5.2.3 Error de desbordamiento causado por memoria fuera del montón / 136
5.2.4 Sistema lento debido a comandos externos / 137
5.2.5 Error del proceso del servidor jvm / 138
5.2.6 La estructura de datos inadecuada conduce al uso excesivo de memoria / 139
5.2.7 Pausa prolongada causada por la memoria virtual de Windows / 141
5.3 Combate real: eclipse de velocidad de ejecución / 142
5.3.1 Antes de la optimización Estado de ejecución del programa / 142
5.3.2 Actualizar jdk 1.6 cambios de rendimiento y problemas de compatibilidad / 145
5.3.3 Tiempo de compilación y optimización de tiempo de carga de clase / 150
5.3.4 Ajustar la configuración de memoria para controlar la frecuencia de recolección de basura / 153
5.3.5 Seleccionar recolección es reducir la / 157 de retardo
5.4 Resumen / 160
tercera parte de la máquina virtual de la ejecución de sub
Capítulo 6 del archivo de clase de estructura / 162
6.1 Visión general / 162
6.2 independiente de las fundaciones / 162
archivos de configuración de la clase 6.3 clase / 164
6.3.1 Sum Versión con archivo de clase / 166
6.3.2 Agrupación constante / 167
6.3.3 Indicador de acceso / 173
6.3.4 Índice de clase, índice de clase principal y colección de índice de interfaz / 174
6.3.5 Colección de tablas de campo / 175
6.3.6 Colección de tablas de métodos / 178
6.3.7 Colección de tablas de atributos / 180
6.4 Introducción a las instrucciones de código de bytes / 196
6.4.1 Código de bytes y tipos de datos / 197
6.4.2 Instrucciones de carga y almacenamiento / 199
6.4.3 Instrucciones de operación / 200
6.4.4 Instrucciones de conversión de tipo / 202
6.4.5 Instrucciones de creación y acceso de objetos / 203
6.4.6 Instrucciones de gestión de la pila de operandos / 203
6.4.7 Instrucciones de transferencia de control / 204
6.4.8 Llamada de método Instrucciones de devolución / 204
6.4.9 Instrucciones de manejo de excepciones / 205
6.4.10 Instrucciones de sincronización / 205
6.5 Diseño público e implementación privada / 206
6.6 Desarrollo de estructura de archivos de clase / 207
6.7 Resumen de este capítulo / 208
Capítulo 7 Mecanismo de carga de clase de máquina virtual / 209
7.1 Descripción general / 209
7.2 Momento de la carga de la clase / 210
7.3 Proceso de carga de la clase / 214
7.3.1 Carga / 214
7.3.2 Verificación / 216
7.3.3 Preparación / 219
7.3.4 Resolución / 220
7.3.5 Inicialización / 225
7.4 Cargador de clases / 227
7.4.1 Cargador de clases y clases / 228
7.4.2 Modelo de delegación principal / 229
7.4.3 Destrucción del modelo de delegación principal / 233
7.5 Resumen de este capítulo / 235
Capítulo 8 Motor de ejecución de código de bytes de máquina virtual / 236
8.1 Descripción general / 236
8.2 Estructura del marco de la pila en tiempo de ejecución / 236
8.2.1 Tabla de variables locales / 238
8.2.2 Pila de operandos / 242
8.2.3 Enlace dinámico / 243
8.2.4 Dirección de retorno del método / 243
8.2.5 Información adicional / 244
8.3 Invocación de métodos / 244
8.3.1 Análisis / 244
8.3.2 Despacho / 246
8.3.3 Soporte de lenguaje de tipo dinámico / 258
8.4 Motor de ejecución de interpretación de bytecode basado en pila / 269
8.4.1 Ejecución de interpretación / 269
8.4.2 Basado en pila Conjunto de instrucciones y conjunto de instrucciones basado en el registro / 270
8.4.3 Proceso de ejecución del intérprete basado en la pila / 272
8.5 Resumen de este capítulo / 275
Capítulo 9 Casos del subsistema de carga y ejecución de clase y combate real / 276
9.1 Descripción general / 276
9.2 Análisis de casos / 276
9.2.1 tomcat: arquitectura del cargador de clase ortodoxa / 276
9.2.2 osgi: arquitectura flexible del cargador de clases / 279
9.2.3 tecnología de generación de bytecode e implementación dinámica de proxy / 282
9.2.4 retrotranslator: versión cross jdk / 286
9.3 combate real: hágalo usted mismo para implementar la función de ejecución remota / 289
9.3 0.1 diana / 290
9.3.2 pensamiento / 290
9.3.3 Implementación / 291
9.3.4 verificación / 298
9.4 Resumen / 299
el cuarto programa se compila con la optimización de código
Capítulo 10 temprano (compilación) optimización / 302
10.1 Resumen / 302
10.2 compilador javac / 303
10.2.1 código fuente y depuración javac / 303
10.2.2 tabla de símbolos de análisis y llenado / 305
10.2.3 procesador de anotaciones / 307
10.2.4 análisis semántico y generación de bytecode / 307
10.3 sintaxis java El sabor del azúcar / 311
10.3.1 Genéricos y tipo borrado / 311
10.3.2 Boxeo automático, desempaquetado y ciclo transversal / 315
10.3.3 Recopilación condicional / 317
10.4 Combate real: procesador de anotación enchufable / 318
10.4.1 Objetivos de combate reales / 318
10.4.2 Realización del código / 319
10.4.3 Operación y prueba / 326
10.4.4 Otros casos de aplicación / 327
10.5 Resumen de este capítulo / 328
Capítulo 11 Optimización tardía (tiempo de ejecución) / 329
11.1 Descripción general / 329
11.2 Compilador justo a tiempo en la máquina virtual de punto de acceso / 329
11.2.1 Intérprete y compilador / 330
11.2.2 Objetos de compilación y condiciones de activación / 332
11.2.3 Proceso de compilación / 337
11.2.4 Ver y analizar resultados de compilación instantáneos / 339
11.3 Tecnología de optimización de compilación / 345
11.3.1 Descripción general de la tecnología de optimización / 346
11.3 .2 Eliminación de
subexpresión común / 350 11.3.3 Eliminación de verificación de límites de matriz / 351
11.3.4 Método en línea / 352
11.3.5 Análisis de escape / 354
11.4 Comparación del compilador de Java y C / C ++ / 356
11.5 Resumen de este capítulo / 358
la quinta y eficiente concurrente
Capítulo 12 modelo de memoria de Java y el hilo / 360
12.1 Resumen / 360
eficiencia 12,2 hardware y consistencia / 361
12.3 el modelo de memoria Java / 362
12.3.1 memoria principal y la memoria de trabajo / 363
12.3.2 interacción entre la memoria Operación / 364
12.3.3 Reglas especiales para variables de tipo volátil / 366
12.3.4 Reglas especiales para variables de tipo largo y doble / 372
12.3.5 Atomicidad, visibilidad y
orden / 373 12.3.6 Principio de ocurrencia previa / 375
12.4 java Con hilos / 378
12.4.1 Implementación de hilos / 378
12.4.2 Programación de hilos Java / 381
12.4.3 Transiciones de estado / 383
12.5 Resumen de este capítulo / 384
Capítulo 13 Seguridad de hilos y optimización de bloqueo / 385
13.1 Descripción general / 385
13.2 Seguridad de hilos / 385
13.2.1 Seguridad de subprocesos en lenguaje Java / 386
13.2.2 Método de implementación de seguridad de subprocesos / 390
13.3 Optimización de bloqueo / 397
13.3.1 Bloqueo de giro y giro adaptativo / 398
13.3.2 Eliminación de bloqueo / 398
13.3.3 engrosamiento de bloqueo / 400
13.3.4 bloqueo ligero / 400
13.3.5 sesgada de bloqueo / 402
13.4 Resumen / 403
Apéndices
Apéndice una versión compilada de ventanas OpenJDK / 406
Apéndice B de instrucciones bytecode máquina virtual lista / 414
Apéndice C hotspot Tabla de parámetros principales de la máquina virtual / 420
Apéndice d Introducción al lenguaje de consulta de objetos (oql) / 424
Apéndice e Jdk Versión histórica Track / 430

 

 

 

Descargar dirección

https://pan.baidu.com/s/1QQvZNc6ARJRKhEbsbThF8Q

  • Para extraer el código:

    [Abrir WeChat] -> [Escanear el código QR a continuación] -> [Seguir datos y personas] Ingrese "200416" para obtener el código de extracción 

    Adhiérase al intercambio de recursos de libros electrónicos, ¡gracias por su aprobación!

    Si cancela después de esta cuenta pública, incluso si la sigue de nuevo, no podrá proporcionar este servicio.

Supongo que te gusta

Origin www.cnblogs.com/sunkang-dba/p/12745715.html
Recomendado
Clasificación