Java 的初始化及类的加载

Ansys Zemax与Speos协同设计:HUD系统从光学优化到驾驶视觉验证全流程解析 本文详细解析了如何利用Ansys Zemax与Speos协同工作流,完成HUD系统从光学内核优化到驾驶视觉验证的全流程。通过Zemax进行精密光学设计与像差校正,再通过Speos进行HOA定量分析和虚拟驾驶舱仿真,实现了数据无损流转与验证闭环,有效解决了光学性能与视觉感知脱节的核心问题,显著提升HUD设计效率与可靠性。 阅读详情

程序是作为启动过程的一部分立即被加载,然后就是初始化,最后就是程序的运行了。可以不恰当的表示为  程序的加载--->初始化--->程序开始运行。

那类什么时候被加载呢? 一般就是在类的代码在被使用时才会加载,这通常是指加载发生在创建类的第一个对象时,但是当访问static域static 方法时,也会加载。加载之后就是初始化了,也就该到了static初始化的发生。所有的static对象和static代码段都会在加载时依照程序中的顺序而依次初始化,例如:

class Father{
	private int i = 0;
	private static String string = print("static Father类的string被初始化");
	protected int j;
	
	Father(){
		System.out.println("i = " + i + ",j = " + j);
		j = 10;
	}
	public static String print(String s){
		System.out.println(s);
		return "你好,我是Father类";
	}
}
public class Son extends Father{
	private static String string2 = print("static Son类的string2倍初始化");
	Son(){
		System.out.println("string2: " + string2);
		System.out.println("j = " + j);
	}
	public static void main(String[] args){
		System.out.println("Son的main方法");
		Son son = new Son();
	}
}
运行结果:
static Father类的string被初始化
static Son类的string2倍初始化
Son的main方法
i = 0,j = 0
string2: 你好,我是Father类
j = 10

可以发现,显示先是根基类的static初始化,然后是导出类的static初始化了,然后就是基类中所有的基本类型都会被设为默认值,对象引用被设为null,然后就是导出类。


新手必看!手把手教你在群晖 NAS 上玩转 Docker 容器(Container Manager)!(群晖 NAS 如何创建 Docker 容器以及 Compose 部署项目) 阅读详情

相关推荐

PROFINET非周期数据通信实战:从报文解析到参数读写

本文详细解析了PROFINET非周期数据通信的实战应用,从报文结构到参数读写全流程。通过西门子PLC与驱动器的配置案例,深入讲解非周期通信在工业自动化中的关键作用,包括硬件选型、软件配置及常见问题排查,帮助工程师高效实现设备参数配置与诊断。

weixin_42522953的博客 512

java 类加载原理分析

java 类加载原理分析     java 所有的代码都是要经过编辑成 class 文件,也就是class文件才能被虚拟机识别,在被虚拟机加载的过程 需要完成下面3步 通过一个类的全限定名来获取其定义的二进制字节流。将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。在 Java 堆中生成一个代表这个类的 java.lang.Class 对象,作为对方法区中这些数据的访问入口

编程生活 1987

Apache Doris集群IP变更急救指南:用Docker容器+priority_networks快速恢复FE/BE节点

本文详细介绍了Apache Doris集群在IP变更情况下的应急处理方案,通过Docker容器和priority_networks配置快速恢复FE/BE节点。文章提供了从容器化环境构建、元数据迁移到生产环境切换的全流程指南,帮助运维团队在30分钟内完成集群恢复,显著减少停机时间。

pink7的博客 114

java 类 加载 初始化_java中类的初始化和加载

最近在阅读孙卫琴的java面向对象一书中,看到对java中类的初始化和加载中的论述比较系统,故笔记之1)类的初始化,JAVA在初始化一个类时,以下步骤A 假如类存在直接的父类,并且这个父类还没有初始化,则先初始化直接的父类B 假如类存在初始化的语句,那么直接执行这些初始化语句比如package init;class Base{static int a=1;static{System.out.pr...

weixin_28835789的博客 277

恶意代码分析实战——使用Apatedns和Inetsim模拟网络环境

恶意代码分析实战——使用Apatedns和Inetsim模拟网络环境 注:本次实验主要是《恶意代码分析实战》一书中进入动态恶意代码分析篇章的开始,主要通过Apatedns以及Inetsim来模拟为恶意代码提供其需要的网络环境,本次实验以Lab01-03.exe为例。 一、实验环境及工具。 Vmware虚拟机:win10(win7)、kali 主要工具:Apatedns、Inetsim 二、工具的安装下载 1、Apatedns:需安装至windows虚拟机客户端(win10,win7均可) 下载地址:http

妙蛙种子吃了都会妙妙秒的妙脆角的博客 7934

3张RTX 4090就能跑!BAGEL-7B多模态模型本地部署避坑指南(附Flash Attention安装技巧)

本文详细介绍了如何在3张RTX 4090显卡上本地部署BAGEL-7B多模态模型,包括硬件配置、环境设置、多卡并行优化及常见问题解决方案。特别提供了Flash Attention安装技巧和显存优化策略,帮助开发者高效运行这一开源多模态模型,实现文本与图像生成任务。

1a2s3d4f5g的博客 652

JAVA类的加载与初始化

在java中,可以在运行

BeAnHonester的专栏 884

别再死记公式了!用HFSS/CST手把手教你仿真一个2.4GHz WiFi的PIFA天线(附参数调试技巧)

本文详细介绍了使用HFSS和CST仿真软件设计2.4GHz WiFi PIFA天线的全流程,包括建模准备、分步操作指南和参数调试技巧。通过可视化结果和实战案例,帮助工程师快速掌握天线设计的关键参数优化方法,提升辐射性能和工作效率。

weixin_31682031的博客 331

Java类的加载时机与类的初始化

目录1. 类的加载时机2. 类的初始化会发生类的初始化的情况:不会发生类的初始化的情况: 1. 类的加载时机 以下5个情况,只要有1个出现,那么类的加载器就会将这个类的class文件加载到内存中: 创建类的实例。 使用类的静态变量或静态方法。 使用反射方式来强制创建某个类或接口对应的java.lang.Class对象。 初始化某个类的子类。 直接使用java.exe命令来运行某个主类。 2. 类的初始化 类的初始化主要就是对静态的类变量进行初始化: (1)执行类构造器()方法的过程。类构造器()方法是由

sun10367的博客 476

多物理场光学仿真软件:COMSOL_(10).激光器与谐振腔仿真

定义Nd:YAG晶体的材料属性% 折射率% 吸收系数% 发射截面% 定义光泵浦源% 泵浦光波长% 泵浦光强度% 泵浦光方向% 定义全反射镜% 选择边界% 完美电导体边界条件% 定义部分反射镜% 选择边界% 反射率边界条件% 反射率通过 COMSOL 对激光器和光学谐振腔进行仿真,可以全面评估激光器的性能,包括输出功率、效率、稳定性和模式选择等。这些仿真结果为激光器的设计和优化提供了重要的参考依据。

kkchenjj的博客 1647

Android性能分析——hprof文件分析(一)

hprof  文件是 Java 堆转储文件(Heap Dump File)的标准格式,用于保存 Java 虚拟机(JVM)在某个时间点的内存快照。这种文件对于分析内存泄漏、内存使用情况和对象分配模式非常有用。

小旭的专栏 1876

java类在什么时候加载和初始化

理解类在JVM中什么时候被加载和初始化是Java编程语言中的基础概念,正因为有了Java语言规范,我们才可以清晰的记录和解释这个问题,但是很多Java程序员仍然不知道什么时候类被加载,什么时候类被初始化,类加载和初始化好像让人很困惑,对初学者难以理解,在这篇教程中我们将看看类加载什么时候发生,类和接口是如何被初始化的,我并不会拘泥于类加载器的细节或者说类加载器的工作方式。仅仅使这篇文章更加专注和简...

Geek_sun的博客 1万+

C++如何实时监测另一个进程是否已经退出?(附源码)

调用WaitForSingleObject实时监测目标进程是否已经退出

dvlinker的技术专栏 8275

Java类的加载、链接和初始化

Java字节码表现形式是二进制数组byte[],而在jvm中为java.lang.Class对象      一个Java类从字节码到能够在jvm中被使用,需要经过加载、链接和初始化,而我们可见的只有类的加载这一过程,我们可以利用类加载器在程序运行时刻动态的去加载一个类,在一个类使用之前链接和初始化已经完成            Java类的加载      类加载器分为两类:启动类加载器

Tibib的专栏 1142

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Java中类的加载,连接和初始化

类的加载,连接和初始化 当程序主动使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三个步骤对类进行初始化 类的加载 类的加载是指将类的class文件读入内存中,并创建一个java.lang.Class对象, 类的加载由类加载器完成,类加载器通常由JVM提供,JVM提供的类加载器通常被称为系统类加载器。也可以通过继承ClassLoader类来创建类加载器。 通...

zhenyuw123的博客 243

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Java类的加载和初始化

为什么说Java是跨平台语言 Java语言的运行环境是在Java虚拟机中。 Java虚拟机消除了各个平台之间的差异,只要操作系统平台下安装了Java虚拟机,那么使用Java开发的东西都能在其上面运行。如下图所示: Java虚拟机对各个平台而言,实质上是一个可执行程序。例如在windows平台下,java虚拟机就是一个java.exe进程而已。 JVM虚拟机启动和加载类过程 下面以一个简单...

Embrace Change 94

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

JAVA类的加载及初始化详细解说

一、什么是类的加载? 1.java文件需要通过java源码编译器编译成.class文件(二进制文件) 2.java类加载器会将.class文件加载至JVM内存中去 总结:类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个 java.lang.Class对象,用来封装类在方法区内的数据结构 二、类的初始化过程 加载...

weixin_43518279的博客 548

java类的加载与初始化_java类的加载与初始化总结

1、触发类加载的原因(主动调用与被动调用):六种主动调用:1)、创建类的实例(new操作、反射、cloning、反序列化)2)、调用类的静态方法3)、使用或对类/接口的static属性赋值(不包括static final的与在编译期确定的常量表达式(包括常量、字符串常量))4)、调用API中的反射方法,Class.forName()等。5)、子类被初始化6)、被设定为JVM启动时的启动类(含mai...

weixin_29797343的博客 302

Java类的加载、连接和初始化

Java类的加载、连接和初始化 以下摘抄自《疯狂Java》,因为转载和翻译都需要链接地址,所以只好写成原创,免得麻烦。 1、类的加载 当程序主动使用某个类时,如果该类还未被加载到内存中,则系统会通过加载、连接、初始化三个步骤来对该类初始化。如果没有意外,JVM将会连续完成这三个步骤,所以有时也把这三个步骤统称为类加载或类初始化。 类加载是指将类的class文件读入内存,并为之创建一个java.lang.Class对象,也就是说,当程序中使用任何类时,系统都会为之建立一个java.lang.Class对象。

weixin_57220071的博客 446

java 类初始化执行_Java 类的加载与初始化

Java 类的加载与初始化本文结构:1.先看几道题2.类的加载于初始化(1)类的加载(2)类的初始化(a)会发生类的初始化的情况(b)不会发生类的初始化的情况首先看几道题。解析可在看完讲解后再看Demo1public class Demo1 {public static void main(String args[]) {Dog woofer = new Dog();Dog nipper = ne...

weixin_39716703的博客 237

byte 初始化 java_Java类的加载、连接和初始化

最近在复习Java反射,需要看一下类的加载机制这部分,正好给大家整理总结一下。1、JVM和类当我们调用Java命令运行某个Java程序时,该命令将会启动一个Java虚拟机进程,不管该Java程序有多么复杂,该程序启动了多少个线程,它们都会处于该Java虚拟机进程里。正如前面介绍的,同一个JVM的所有线程、所有变量都处于同一个进程里,它们都使用该JVM进程的内存区。当系统出现以下几个情况时,JVM进...

weixin_35980011的博客 297

Java类的加载以及初始化顺序

首先是都知道的父子类的初始化顺序:父类静态属性>父类静态代码块>子类静态属性>子类静态代码块>父类非静态属性>父类非静态代码块>父类构造方法>子类非静态属性>子类非静态代码块>子类构造方法。 单个类的情况 但是如果在testClass中加上static testClass field = new testClass();...

卷福。的博客 335

java类的加载与初始化_Java类何时以及如何加载和初始化?

在Java中,您首先要编写一个.java文件,然后在编译期间将其编译为.class文件。Java能够在运行时加载类。困惑是“负载”和“初始化”之间的区别是什么。Java类何时以及如何加载和初始化?通过使用下面的简单示例可以清楚地说明。说“上课”是什么意思?首先将C / C ++编译为本机代码,然后在编译后需要链接步骤。链接的作用是组合来自不同位置的源文件并形成可执行程序。Java不会这样做。将Ja...

weixin_28304023的博客 165

java初始化加载类_详解Java 类的加载、连接和初始化

系统可能在第一次使用某个类时加载该类,也可能采用预加载机制来加载某个类。本节将会详细介绍类加载、连接和初始化过程中的每个细节。JVM 和类当调用 java 命令运行某个 Java 程序时,该命令将会启动一个 Java 虚拟机进程,不管该 Java 程序有多么复杂,该程序启动了多少个线程,它们都处于该 Java 虚拟机进程里。正如前面介绍的,同一个 JVM 的所有线程、所有变量都处于同一个进程里,它...

weixin_42109925的博客 258

Java:简述类的加载机制-初始化

如果Class是类而不是接口,且Class的父类Super Class(SC)和各个接口SIn(按照implements子句中的顺序来)还没有初始化,那么就在SC上面递归地进行完整的初始化过程,如果有必要,需要先验证和准备SC;如果SC或SIn初始化过程中抛出异常,则获取LC,将Class标记为错误状态,并通知所有正在等待的线程,然后释放LC,然后再抛出同样的异常。类的初始化阶段,是真正开始执行类中定义的java程序代码(.class字节码),并按程序员的意图去初始化类变量的过程。

王小二(海阔天空) 572
上一篇: Java static修饰的方法中不能使用this、super关键字
下一篇: Java Scanner类中有关Readable的使用与有关介绍
CoderBruis
博客等级 码龄10年 4444粉丝 102原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值