JVM:类的生命周期

ops/2024/10/21 7:41:38/

文章目录

  • 一、介绍
  • 二、加载阶段
  • 三、连接阶段
  • 四、初始化阶段

一、介绍

类的生命周期描述了一个类加载、连接(验证、准备和解析)、初始化、使用、卸载的整个过程。

  • 加载(Loading)阶段第一步是类加载器根据类的权限定名通过不同的渠道以二进制的方式获取字节码信息。程序员可以使用Java代码扩展不同的渠道。
    在这里插入图片描述
  • 类加载器在加载完类之后,Java虚拟机会将字节码的信息保存到方法区中。生成一个InstanceKlass对象,保存类的所有信息,里面还包含实现特定功能比如多态的信息。
  • 在这里插入图片描述
  • 同时,Java虚拟机还会再堆中生成一份与方法区中的数据类似的java.lang.Class对象。作用是在Java代码中去获取类的信息以及存储静态字段的数据。
    在这里插入图片描述
  • 对于开发者来说,只需要访问堆中的Class对象而不需要访问方法区中的所有信息。这样Java虚拟机就能很好地控制开发者访问数据的范围。

查看内存中的对象

  • 使用JDK自带的hsdb工具查看Java虚拟机内存信息。工具位于JDK安装目录下lib文件夹中的sa-jdi.jar中。
    在这里插入图片描述

二、加载阶段

三、连接阶段

四、初始化阶段


http://www.ppmy.cn/ops/56232.html

相关文章

前端视角下的Spring-Boot语法学习:demo-crud 实现增删改查

今日话题 基于 Spring Boot 实现增删改查,仅仅只是提供接口不涉及数据库增删改查 作者:云层上的光 时间:2024年6月21日 15时19分14秒 主线任务 一、项目创建 1、基于 idea 创建项目 2、选择项目依赖 Spring Web 二、实现增删改查 1、新…

LLM - 神经网络的训练过程

1. 对于回归问题,用损失函数来计算预测值和真实值的差异,一种常用的公式是如下图所示(Mean Square Error),如果损失函数的值越小说明神经网络学习越准确,所以神经网络训练目标是减小损失函数的值, 2. 对于分类问题&…

ES6 Reflect 详解(三)

Reflect 对象与Proxy 对象一样,也是 ES6 为了操作对象而提供的新 API。 Reflect 对象的设计目的有 4 个。 将 Object 对象的一些明显属于语言内部的方法(比如 Object.defineProperty ),放到 Reflect 对象上。现阶段,某…

一款专业的 Windows 恶意程序分析与清理工具

大家好,今天给大家分享一款专业的 Windows 恶意程序分析与清理工具OpenArk,它能够帮助用户发现系统中隐藏的恶意软件。 OpenArk是一款Windows平台上的开源Ark工具. Ark是Anti-Rootkit(对抗恶意程序)的简写, OpenArk目标成为逆向工…

如何在word中敲出可以点击打勾和取消打勾的方框呢?

文章目录 要解决的问题网上出现的几种不可行的方案发现解决措施 要解决的问题 在word中敲出 点击就可以打对勾和取消对钩的方框 网上出现的几种不可行的方案 插入-> 符号,此方法打出的方框是fixed的,不是我想要的可以自己自主打勾和不打勾的方式。 …

ELK的储存、分析功能介绍!

ELK是由Elasticsearch、Logstash和Kibana三个开源软件组成的日志管理解决方案,它们在日志数据的储存和分析方面发挥着重要作用。 储存功能: Elasticsearch:Elasticsearch是一个基于Lucene的搜索服务器,它提供了一个分布式多用户能…

探索金融数据API:现代投资的关键工具

在当今快节奏的金融市场中,实时准确的数据对于投资者而言至关重要。金融数据API(Application Programming Interface)成为了投资者获取和管理数据的核心工具。本文将探讨金融数据API的基本概念、用途及其对投资策略的影响。 什么是金融数据A…

视频技术助力智慧城市一网统管:视频资源整合与智能化管理

随着信息技术的飞速发展,智慧城市已成为现代城市发展的重要方向。在智慧城市建设中,一网统管作为城市管理的重要策略,通过整合各类信息资源,实现资源的优化配置和问题的快速响应。其中,视频技术作为一网统管场景中的关…