JVM3——初始化过程

2024-01-19 03:30
文章标签 过程 初始化 jvm3

本文主要是介绍JVM3——初始化过程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

l在这里插入图片描述
在这里插入图片描述
实例

//父类Animal
class Animal {  
/*8、执行初始化*/  private int i = 9;  protected int j;  /*7、调用构造方法,创建默认属性和方法,完成后发现自己没有父类*/  public Animal() {  
/*9、执行构造方法剩下的内容,结束后回到子类构造函数中*/  System.out.println("i = " + i + ", j = " + j);  j = 39;  }  /*2、初始化根基类的静态对象和静态方法*/  private static int x1 = print("static Animal.x1 initialized");  static int print(String s) {  System.out.println(s);  return 47;  }  
}  //子类 Dog
public class Dog extends Animal {  
/*10、初始化默认的属性和方法*/ private int k = print("Dog.k initialized");  /*6、开始创建对象,即分配存储空间->创建默认的属性和方法。 * 遇到隐式或者显式写出的super()跳转到父类Animal的构造函数。* super()要写在构造函数第一行 */  public Dog() { 
/*11、初始化结束执行剩下的语句*/System.out.println("k = " + k);  System.out.println("j = " + j);  }  /*3、初始化子类的静态对象静态方法,当然mian函数也是静态方法*/  private static int x2 = print("static Dog.x2 initialized");/*1、要执行静态main,首先要加载Dog.class文件,加载过程中发现有父类Animal, *所以也要加载Animal.class文件,直至找到根基类,这里就是Animal*/       public static void main(String[] args) {  /*4、前面步骤完成后执行main方法,输出语句*/ System.out.println("Dog constructor"); 
/*5、遇到new Dog(),调用Dog对象的构造函数*/  Dog dog = new Dog();   
/*12、运行main函数余下的部分程序*/            System.out.println("Main Left"); }  
}

运行结果

static Animal.x1 initialized
static Dog.x2 initialized
Dog constructor
i = 9, j = 0
Dog.k initialized
k = 47
j = 39
Main Left

实例2——面试题
在这里插入图片描述

在这里插入图片描述
硬件层数据一致性
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
使用缓存行对齐能够提升效率,一行64个字节

CPU乱序问题

在这里插入图片描述

CPU内存屏障

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
synchronized
在这里插入图片描述
在这里插入图片描述

这篇关于JVM3——初始化过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/621131

相关文章

springboot整合gateway的详细过程

《springboot整合gateway的详细过程》本文介绍了如何配置和使用SpringCloudGateway构建一个API网关,通过实例代码介绍了springboot整合gateway的过程,需要... 目录1. 添加依赖2. 配置网关路由3. 启用Eureka客户端(可选)4. 创建主应用类5. 自定

最新版IDEA配置 Tomcat的详细过程

《最新版IDEA配置Tomcat的详细过程》本文介绍如何在IDEA中配置Tomcat服务器,并创建Web项目,首先检查Tomcat是否安装完成,然后在IDEA中创建Web项目并添加Web结构,接着,... 目录配置tomcat第一步,先给项目添加Web结构查看端口号配置tomcat    先检查自己的to

SpringBoot集成SOL链的详细过程

《SpringBoot集成SOL链的详细过程》Solanaj是一个用于与Solana区块链交互的Java库,它为Java开发者提供了一套功能丰富的API,使得在Java环境中可以轻松构建与Solana... 目录一、什么是solanaj?二、Pom依赖三、主要类3.1 RpcClient3.2 Public

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

SpringBoot整合kaptcha验证码过程(复制粘贴即可用)

《SpringBoot整合kaptcha验证码过程(复制粘贴即可用)》本文介绍了如何在SpringBoot项目中整合Kaptcha验证码实现,通过配置和编写相应的Controller、工具类以及前端页... 目录SpringBoot整合kaptcha验证码程序目录参考有两种方式在springboot中使用k

SpringBoot整合InfluxDB的详细过程

《SpringBoot整合InfluxDB的详细过程》InfluxDB是一个开源的时间序列数据库,由Go语言编写,适用于存储和查询按时间顺序产生的数据,它具有高效的数据存储和查询机制,支持高并发写入和... 目录一、简单介绍InfluxDB是什么?1、主要特点2、应用场景二、使用步骤1、集成原生的Influ

SpringBoot实现websocket服务端及客户端的详细过程

《SpringBoot实现websocket服务端及客户端的详细过程》文章介绍了WebSocket通信过程、服务端和客户端的实现,以及可能遇到的问题及解决方案,感兴趣的朋友一起看看吧... 目录一、WebSocket通信过程二、服务端实现1.pom文件添加依赖2.启用Springboot对WebSocket

JVM 的类初始化机制

前言 当你在 Java 程序中new对象时,有没有考虑过 JVM 是如何把静态的字节码(byte code)转化为运行时对象的呢,这个问题看似简单,但清楚的同学相信也不会太多,这篇文章首先介绍 JVM 类初始化的机制,然后给出几个易出错的实例来分析,帮助大家更好理解这个知识点。 JVM 将字节码转化为运行时对象分为三个阶段,分别是:loading 、Linking、initialization

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

作业提交过程之HDFSMapReduce

作业提交全过程详解 (1)作业提交 第1步:Client调用job.waitForCompletion方法,向整个集群提交MapReduce作业。 第2步:Client向RM申请一个作业id。 第3步:RM给Client返回该job资源的提交路径和作业id。 第4步:Client提交jar包、切片信息和配置文件到指定的资源提交路径。 第5步:Client提交完资源后,向RM申请运行MrAp