Processo de Carregamento de Classes em Java
Referência: https://www.jianshu.com/p/52c38cf2e3d4
Pontos principais:
Princípios do mecanismo de carregamento de classes
Ordem de inicialização de programas
Modelo de proxy de carregamento de classes (mecanismo de delegação parental)
I. Mecanismo de Carregamento de Classes
O JVM carrega arquivos class na memória, realiza validação, preparação ...
Publicado em 6-26 22:37
Criação e Layout de Memória de Objetos em Java
Instanciação de Objetos
1.1. Formas de Criação de Objetos
1. Uso do operador new
Esta é a abordagem mais frequente. Variantes incluem métodos estáticos de classes como Xxx ou fábricas como XxxBuilder/XxxFactory.
No JVM, ao executar new User(), ocorrem as seguintes etapas:
Verifica se existe uma referência simbólica para a classe na área de ...
Publicado em 6-26 18:30
Otimização de Desempenho do Apache Tomcat para Aplicações Java
1. Configurações Essenciais (server.xml)
O arquivo conf/server.xml contém as definições primárias do Tomcat e é o ponto de partida para ajustes de performance.
1.1 Gerenciamento de Threads (Executor)
O Tomcat utiliza um pool de threads para processar as requisições recebidas. A configuração adequada deste pool minimiza a sobrecarga de criação e ...
Publicado em 6-19 06:11
Análise de Dumps de Memória na JVM
Analisar arquivos de despejo de heap da JVM (Heap Dump, geralmente no formato .hprof) é uma técnica fundamental para diagnosticar vazamentos de memória, crescimento anormal de objetos e problemas de GC. Abaixo está um guia completo para visualizar e analisar arquivos de despejo de heap, cobrindo seleção de ferramentas, etapas de operação e inte ...
Publicado em 6-19 05:06
Otimização do Tomcat, Resolução de OOMs em Java, e Configuração do Redis com Sentinel
1. Métodos de Otimização do Tomcat
1.1 Otimização do Espaço de Memória
JVM_OPTS="-server -Xms4g -Xmx4g -XX:NewSize=512m -XX:MaxNewSize=1g"
-server Modo de servidor
-Xms Tamanho inicial do heap da memória
-Xmx Limite máximo do heap da memória
-XX:NewSize= Tamanho inicial da geração de objetos n ...
Publicado em 6-19 00:15
Exploração Técnica Full Stack: Da Java Virtual Machine aos Frameworks de Frontend
Arquitetura da Java Virtual Machine (JVM)
A compreensão profunda da JVM é fundamental para otimizar aplicações Java. A JVM atua como uma camada de abstração entre o código compilado (bytecode) e o hardware. Sua estrutura de memória é dividida em áreas distintas:
Heap: Espaço onde os objetos e variáveis de instância são alocados. É a área princ ...
Publicado em 6-18 08:05
Configuração e Monitoramento de Aplicações com Spring Boot Admin
Spring Boot Admin (SBA) é uma solução de código aberto mantida pela comunidade, projetada para gerenciar e monitorar aplicações construídas com Spring Boot. As aplicações podem se registrar no painel SBA via HTTP ou utilizando mecanismos de descoberta de serviços do Spring Cloud, habilitando uma interface gráfica completa para administração.
Es ...
Publicado em 6-18 04:34
Estrutura de Memória na Máquina Virtual Java
A máquina virtual Java (JVM) gerencia diversas áreas de memória em tempo de execução. Estas áreas são divididas entre regiões compartilhadas entre threads e regiões privadas para cada thread.
Áreas de Dados em Tempo de Execução
As principais regiões incluem o contador de programa, a pilha de máquina virtual, a pilha de métodos nativos, o heap e ...
Publicado em 6-17 03:21
Fundamentos e Boas Práticas de Serialização em Java
Conceitos de Serialização e Desserialização
A serialização é o mecanismo que converte o estado de um objeto em um fluxo de bytes, permitindo que ele seja armazenado ou transmitido. A desserialização é o processo inverso, onde o fluxo de bytes é reconstruído para recriar o objeto original na memória.
Cenários de Aplicação
Se uma aplicação Java o ...
Publicado em 6-17 03:15
Entendendo os Mecanismos e Conceitos de Garbage Collection no Java
O Funcionamento do System.gc()
Por padrão, as chamadas aos métodos System.gc() ou Runtime.getRuntime().gc() sugerem ao Java a execução de um Full GC. Esse processo tenta liberar memória tanto na geração jovem (Young Generation) quanto na antiga (Old Generation), processando objetos que não possuem mais referências ativas.
É crucial entender que ...
Publicado em 6-17 02:13