首页 > 其他分享 >深入学习JVM02 类与对象

深入学习JVM02 类与对象

时间:2023-09-01 20:00:44浏览次数:35  
标签:初始化 对象 流程 静态 深入 JVM JVM02 class 加载

类加载的流程

类加载子系统可以看作是 JVM 的搬运工。通过使用 Javac 编译器,我们将编写的代码转换为.class 文件,这样类就可以被真正地加载到 JVM 中,从而实现高效地运行。借助类加载流程,我们将.class 文件中的数据结构存储到了运行时的方法区中,作为后续 Java 程序运行的基础。

深入学习JVM02  类与对象_JVM

深入学习JVM02  类与对象_方法区_02

因为方法区里存储了类的元数据和静态变量等,所以平时在开发的时候你需要关注方法区的内存使用,避免大量加载类以及定义过多的静态变量导致内存不足。最后还要避免类初始化的循环引用,创建类时,确保类之间的引用关系没有循环,否则可能导致类初始化阻塞。

深入学习JVM02  类与对象_方法区_03

类加载全流程

深入学习JVM02  类与对象_类加载_04

深入学习JVM02  类与对象_JVM_05

深入学习JVM02  类与对象_类加载_06

深入学习JVM02  类与对象_类加载_07

深入学习JVM02  类与对象_JVM_08

深入学习JVM02  类与对象_方法区_09

标签:初始化,对象,流程,静态,深入,JVM,JVM02,class,加载
From: https://blog.51cto.com/u_6478076/7325928

相关文章

  • 线程安全的对象生命期管理
     编写线程安全的类不是难事,用同步原语保护内部状态即可。但是对象的生与死不能由对象自身拥有的mutex保护。racecondition:在即将析构一个对象时,从何而知此刻是否有别的线程正在执行该对象的成员函数?如何保证在执行成员函数期间,对象不会在另一个线程被析构?在调用某个对象的......
  • JavaScript—内置对象
    内置对象是什么JavaScript中的对象分为三种:自定义对象,内置对象和浏览器对象。前面两种对象是JS基础内容,属于ECMAScript;第三个浏览器对象属于我们JS独有的。内置对象就是指JS语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法)。内置......
  • JavaScript—对象
    为什么需要对象保存一个值时,可以使用变量,保存多个值(一组值)时,可以使用数组。如果要保存一个人的完整信息(信息面板)呢?在JavaScript中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、函数等。对象是由属性和方法组成。属性:事物的特征,在对象中用......
  • Java中对象创建的几种方式
    Java中对象创建的几种方式本文记录Java创建对象的六种方式,详细内容请查看代码测试对象粘贴复制即可,配合TestPeople食用importjava.io.Serializable;/***@authorunknown*@since2023/09/0116:09*/publicclassPeopleimplementsCloneable,Serializable{......
  • 从零开始学习jQuery (五) 事件与事件对象
    [导读] 一摘要事件是脚本编程的灵魂所以本章内容也是jQuery学习的重点本文将对jQuery中的事件处理以及事件对象进行详细的讲解二前言本篇文章是至今为止本系列内容最多的一篇,足以可见其重要性大家反映要多一.摘要事件是脚本编程的灵魂.所以本章内容也是jQuery学习的重......
  • 每天一道面试题:对象引用及垃圾回收
    先来看题目 (多选)下面哪些描述是正确的:()【文章末尾有答案】1publicclassTest{2publicstaticclassA{3privateBref;4publicvoidsetB(Bb){5ref=b;6}7}8publicstaticClassB{9......
  • 关于处理 vue data中对象或数组中响应式数据的注意点
    vue2中针对对象中的响应式数据,如果要想修改他们,只能通过监听的特性实现。不能直接赋值。在vue2源码中,计算属性和watch的实现方式是一样的,都具有监听响应式对象或数组中的数据的功能。区别就是,计算属性具有缓存机制。除此之外,还可以直接使用this.$set(obj,key:String,value......
  • 深入解析 Java 抽象工厂模式:创建跨平台图形绘制工具的设计与实现
    深入解析Java抽象工厂模式:创建跨平台图形绘制工具的设计与实现抽象工厂模式(AbstractFactoryPattern)是Java中一种常用的设计模式,它属于创建型模式的一种。该模式提供了一种创建一系列相关或相互依赖对象的接口,而无需指定具体实现类。在本文中,我们将详细介绍抽象工厂模式的概......
  • Java是一种广泛使用的面向对象编程语言
    Java是一种广泛使用的面向对象编程语言,具有以下特性:平台无关性:Java语言编写的程序可以在不同的操作系统和硬件平台上运行,因为Java语言通过Java虚拟机(JVM)实现了平台无关性。面向对象:Java是一种完全面向对象的编程语言,支持封装、继承和多态等面向对象的基本特性。强类型语言:Java是一......
  • 面向对象
    1、面向过程  以函数(方法)为最小单位,数据独立于函数之外,以过程步骤为主,考虑怎么做,他是一个执行者。2、面向对象 以类、对象为最小单位,类包括:数据+方法,以对象为主,考虑谁来做,谁能做,指挥者。3、面向对象的基本特征 封装,继承,多态。4、类和对象 1、类    类是......