在这个类第一次被调用或实例化的时候就会被执行(因为此时类开始加载)。
静态代码块只会执行一次,一般会用来初始化一些值,并且在所有对象中全局共享。
静态变量,静态方法,静态代码块是在加载类的时候执行的,只发布到tomcat服务器上,但是并没有加载这个类,也不执行,访问这个类的时候才开始加载。
[color=red]类加载是为了执行静态方法[/color
Java注解和反射(静态语言和动态语言、类加载器、反射)一、注解(Annotation)Java不注解是程序本身 ,但可以对程序作出解释.(这一点和注释(comment)没什么区别) , 可以被其他程序(比如:编译器等)读取定义格式注解是以"@注释名"在代码中存在的 , 还可以添加一些参数值 , 例如@SuppressWarnings(value=“unchecked”).使用场景可以附加在pac
1、编译和运行概念要搞清:编译即javac的过程,负责将.java文件compile成.class文件,主要是类型、格式检查与编译成字节码文件,而加载是指java *的过程,将.class文件加载到内存中去解释执行,即运行的时候才会有加载一说。2、类的加载时机,肯定是在运行时,但并不是一次性全部加载,而是按需动态,依靠反射来实现动态加载,一般来说一个class只会被加载一次,之后就会从jvm的cl
转载
2024-04-10 08:10:58
52阅读
一、概述 我们在谈到java里面static代码块的执行时机的时候,我们都知道是它在类被加载的时候被执行,这种说法没有毛病,但是有误区,因为一个类的加载过程并不是一步就可以完成的。 如果从大的整体上来说这句话没有
转载
2023-09-02 07:11:40
302阅读
1、简单认为JAVA静态代码块在类被加载时就会自动执行 是错误的class MyClass1 {
static {//静态块
System.out.println("static block ");
}
}
public class Main {
Class[] classArray = {
MyClass1.cla
转载
2023-09-22 11:49:24
210阅读
静态方法在Java中定义时即加载,不需要实例化对象就可以直接调用。本文将从静态方法的特点、加载时机和代码示例三个方面进行科普介绍。
## 1. 静态方法的特点
在Java中,静态方法具有以下特点:
- 静态方法属于类而不属于对象,可以通过类名直接调用,无需创建对象实例。
- 静态方法可以直接访问类的静态变量和其他静态方法,但不能直接访问非静态成员。
- 静态方法不能使用this关键字,因为t
原创
2023-10-28 11:21:10
526阅读
目录1.static:静态的2.static可以用来修饰:属性、方法、代码块、内部类3.使用static修饰属性:静态变量(或类变量)4.使用static修饰方法:静态方法4.1 Java中静态方法能否被重写5.static注意点:6.开发中的使用:练习题: 1.static:静态的2.static可以用来修饰:属性、方法、代码块、内部类3.使用static修饰属性:静态变量(或类变量)3.1
转载
2024-07-01 01:14:19
95阅读
### Java中类加载时静态方法什么时候加载
在Java中,类加载是指将类的字节码文件加载到内存中,并创建一个java.lang.Class对象来表示该类。类加载过程中,会执行一些初始化操作,其中包括静态方法的加载。但是,静态方法什么时候加载呢?在本文中,我们将详细讨论这个问题,并提供相应的代码示例来加深理解。
#### 类加载过程概述
在深入了解类加载时静态方法加载的时机之前,先让我们了
原创
2023-11-12 06:03:45
184阅读
我们知道,一个类的方法从调用方式上可以分为“静态方法”与“非静态方法”(实例方法)。在.net框架中,也有很多这种公共静态方法。现在我想讨论一下,一个类为什么要提供静态方法以及在什么时候应该提供静态方法。静态方法与非静态方法最明显的区别就是如果某个方法是公共静态的,那么可以直接 通过类名.方法名的方法来调用,而公共实例方法则需要事先实例化对象,然后才能调用。很多人认为静态方法来速度上、在内存占用比
转载
2024-08-11 10:53:05
26阅读
前言: 在看单例模式的时候,在网上找帖子看见其中有一种(IoDH) 实现单例的方式,其中用到了静态内部类,文章中有写到当jvm加载外部类的时候,并没有加载静态内部内这和之前自己想的不一样,特意在网上找了一些帖子总结一下。一、学习前千的疑问: 稍微了解Java虚拟机内的加载过程的步骤,都很清楚,一个类的静态资源、一些常量都是在类加载的时候就被加载金内存中分配空间了,所以我一开始理所当然的以为静态
转载
2024-02-16 09:49:23
53阅读
1 java 一般执行顺序:1 静态块(静态变量)2 成员变量3构造方法4 静态方法 1 静态代码块(只加载一次)2 构造方法(创建一个实例加载一次)3 静态方法需要调用才会执行, 总结:静态代码块不等于静态方法。 静态代码块: static { }匿名代码块 :{}构造函数: public test() {}new test();完成的步骤1  
转载
2023-07-16 09:44:44
157阅读
类的加载时机类从被加载到虚拟机内存中开始,直到卸载出内存为止,它的整个生命周期包括了:加载、验证、准备、解析、初始化、使用和卸载这7个阶段。其中,验证、准备和解析这三个部分统称为连接(linking)。其中,加载、验证、准备、初始化和卸载这五个阶段的顺序是确定的,类的加载过程必须按照这种顺序按部就班的“开始”(仅仅指的是开始,而非执行或者结束,因为这些阶段通常都是互相交叉的混合进行,通常会在一个阶
转载
2023-09-20 11:41:16
0阅读
# Java中静态方法加载的时机
## 1. 流程概述
Java中的静态方法在类加载的过程中被加载。具体的流程如表格所示:
| 步骤 | 描述 |
| --- | --- |
| 1. 类加载 | 加载类的字节码文件到内存中 |
| 2. 验证 | 确保加载的字节码文件符合Java虚拟机规范 |
| 3. 准备 | 为类的静态变量分配内存并设置默认值 |
| 4. 解析 | 将符号引用转换为
原创
2023-08-18 10:45:16
341阅读
# Java类的静态方法何时调用
在Java中,静态方法是一种与类本身关联的方法,而不是与类的实例(对象)关联。静态方法以`static`关键字声明,可以通过类名称直接调用,而不需要创建类的实例。本文将探讨静态方法的使用场景,并给出相应的代码示例,帮助读者更好地理解静态方法的特性及其调用时机。
## 什么是静态方法?
静态方法是指属于类而非对象的方法。当在类中定义静态方法时,这个方法可以直接
目录类加载的时机类加载过程一、加载二、连接1、验证2、准备3、解析三、初始化类加载器类加载机制类加载的时机隐式加载:new 创建类的实例显式加载:ClassLoader,forName等访问类的静态变量,或者为静态变量赋值调用类的静态方法使用反射方式创建某个类或者接口对象的Class对象初始化某个类的子类,子类和当前类都会被加载直接使用java.exe命令来运行某个主类这里需要提一下,那些不被加载
转载
2023-07-18 21:01:05
184阅读
# Java类在什么时候被加载的实现指南
在Java中,类的加载是一个重要的概念。了解类何时被加载对于性能优化和资源管理至关重要。本文将详细讲解Java类加载的流程,并提供示例代码以便更好理解。
## 一、Java类加载的流程
Java类加载的过程可以分为以下几个步骤。下面是一个简单的流程表,帮助更好理解每个步骤。
| 步骤 | 描述 |
|-
原创
2024-08-28 07:08:45
19阅读
JVM把描述类的数据从Class文件加载到内存,对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是JVM类加载机制。 Java的类型加载、连接和初始化过程都是在程序运行期间完成的。 类加载到内存,和到卸载出内存为止,整个生命周期:加载、验证、准备、解析、初始化、使用
转载
2023-08-26 12:43:50
72阅读
Java虚拟机规范没有强制性约束在什么时候开始类加载过程,但是对于初始化阶段,虚拟机规范则严格规定了有且只有四种情况必需立即对类进行“初始化”(而加载、验证、准备阶段则必需在此之前开始),这四种情况归类如下:
1.遇到new、getstatic、putstatic或invokestatic这4条字节码指令时,如果类没有进行过初始化,则需要先触发其初始化
转载
2023-05-23 20:53:08
148阅读
1、静态代码块:在方法区类加载的时候执行;如果一个类需要在加载的时候执行一段代码,可以在静态块中写入逻辑。代码块是自动执行的2、构造方法:在对象实例化的时候执行。3、静态方法:在类进行方法调用的时候执行。代码是被动调用执行的 它们在代码中具体的执行过程如下:对象的初始化顺序:首先执行父类静态的内容,父类静态的内容执行完毕后,接着去执行子类的静态的内容,当子类的静态内容执行完毕之后,再去看
转载
2023-06-18 12:19:10
1135阅读
class Parent{
static String name = "hello";
static{
System.out.println("parent block");
}
{
System.out.println("parent static block");
}