一、
java类中 static静态代码块的执行次数
1、在类加载的init阶段,类的类构造器中会收集所有的static块和字段并执行,static块只执行一次,由JVM保证其只执行一次。
2、
直接看示例
public class TestStatic{
public static String name = "";
static{
System.out.println("init ....");
name = "admin";
}
public static String getName(){
return name;
}
public static String getIdAndName(int id){
return id + "---" + name;
}
public static void main(String[] args) {
String name = TestStatic.getName();
String idAndName = TestStatic.getIdAndName(888);
System.out.println(name);
System.out.println(idAndName);
}
}
对执行结果分析:
在调用TestStatic类中任何一个方法时,jvm进行类加载,static语句块是在类加载器加载该类的最后阶段进行初始化的。并且只会被初始化一次。
若一次性调用多个方法,则只会执行一次static代码块。
说明:static语句块,不是在实例化的时候被执行的。
三、
static代码块的使用
1、项目对某些数据进行初始化,可以在两个地方处理。
第一、就是在项目启动时,加载某个类,对数据进行数据化(如:初始化基础数据或数据库连接池)。
第二、就是在某个工具类中使用static静态代码块,当第一次访问工具类时,就会先进行初始化(只会执行一次),保存到静态全局属性中,当其他类再次访问时,将直接使用初始化数据(如:连接redis数据库,并初始化连接池)。
2、缓存数据
分享到:
相关推荐
Java静态代码块是Java语言中的一种特殊代码块,它们在类加载的时候执行,且只执行一次。它们通常用来初始化静态变量、设置静态变量的初始值等。静态代码块的作用域是整个类,而不是某个对象实例。 静态代码块的执行...
当类加载到内存中时,静态代码块会自动执行一次,通常用于类的初始化。 **示例代码:** ```java public class Counter { public static int count; // 静态代码块 static { count = 0; } // 非静态代码块 ...
在此示例中,"static block"只打印一次,因为静态代码块只在类加载时执行。 2. **继承与静态**:如果一个类(如`Q`)继承另一个类(如`P`),并都有静态代码块,父类的静态代码块会在子类之前执行。即使子类创建了...
### JAVA类验证URL知识点 #### 一、概述 在Java开发过程中,经常需要验证一个URL是否可用或可访问。这通常涉及到网络请求以及状态码的处理。本文将详细介绍`URLAvailability.java`类的设计思路与实现细节,该类...
- `if` 语句:用于根据条件执行不同的代码块。 - 示例代码中的 `if (y.lastIndexOf(s) == (y.length() - s.length()))` 用来判断字符串 `y` 是否以字符串 `s` 结尾。 5. **数组处理**: - `length` 属性:获取...
在Java中,`Vector`和`Hashtable`等容器类在初始化时都有默认的初始容量(通常是10)。当这些容器的大小超过初始容量时,它们会自动扩展。这种自动扩展的过程涉及到创建新的数组并将原有数据复制过去,这不仅消耗CPU...
在开发过程中,代码性能优化是一项至关重要的工作,尤其是在Java这样的广泛应用的语言中。本文将从给定的文件信息出发,详细阐述如何通过一系列具体的方法来提高Java代码的质量与系统性能。 #### 1. 合理管理资源 ...
Java中的类可以包含不同的成员,包括字段(变量)、方法、构造方法、块(代码块)和内部类。Java类的成员访问权限决定了它们可以被其他类访问的范围。 Java的继承机制允许一个类(子类)继承另一个类(父类)的属性...
- `switch`语句用于基于不同情况执行不同的代码块,适用于整型、字符型和枚举类型等。 9. **循环**: - Java提供了多种循环结构,包括`for`循环、`while`循环和`do/while`循环。 - `for`循环通常用于已知循环...
Static关键字在Java编程语言中扮演着至关重要的角色,它允许我们创建类级别的变量和方法,这些变量和方法不依赖于类的实例即可访问。在深入理解Static关键字之前,我们需要了解类和对象的概念。类是创建对象的蓝图,...
for循环提供了一种在给定次数内重复执行代码块的方式,而while循环则在条件为真时持续执行代码块。 Java的类(class)是一种自定义数据类型,它定义了对象的属性和方法。例如,String类是Java中最常用的类之一,它...
- **switch case多分支语句**:基于不同情况执行不同代码块。 ```java switch (expression) { case value1: // 代码块1 break; case value2: // 代码块2 break; default: // 默认代码块 } ``` ##### ...
选择结构语句包括`if`、`if-else`和`switch`,用于根据条件执行不同的代码块。循环结构语句有`for`、`while`和`do-while`,用于重复执行一段代码直到满足特定条件为止。在猜数字游戏中,`for`循环常用来限制用户猜测...
- `else`:与`if`配合使用,当`if`条件不满足时执行的代码块。 - `for`:循环结构,通常用于已知循环次数的情况。 - `while`:循环结构,当条件为真时持续执行循环体。 - `do...while`:后检测循环,至少执行一...
- **`do...while`循环**:至少执行一次代码块,然后检查条件是否为真。 ### 示例代码解析 在给定的部分内容中,还包含了几个示例代码,涵盖了字符串输出、循环结构的应用等,例如输出希腊字母表、计算序列和等,...
- `if`、`else`和`else if`:用于条件判断,根据不同的条件执行不同的代码块。 - `switch`语句:提供了多路选择,可以替代多个`if-else`语句。 - `for`、`while`和`do-while`循环:`for`适用于已知循环次数,`...
Java中有53个关键字,如`public`、`private`、`protected`、`static`、`final`等,用于声明类、变量、方法等。 **二、标识符** 1. **命名规则**: - 由字母、数字、下划线(_)、美元符号($)组成。 - 不能以...
- `do...while`循环:至少执行一次代码块,然后检查条件。 #### 七、对象和类 - Java是一种面向对象的语言,几乎所有的Java程序都是通过创建对象来工作的。 - 类定义了一组具有相似属性和行为的对象的模板。 - ...
1.4.1 类(Class):Java世界中一类物体 14 1.4.2 方法(Method):物体的功能 15 1.4.3 main()方法:所有Java程序执行的起点 15 .1.5 名词解释 16 1.5.1 JDK和Java平台 16 1.5.2 Java编译器(Java Compiler)...
从给定的文件信息来看,这是一段使用Java编写的猜数字游戏的源代码,其核心功能是生成一个0到99之间的随机数,并让用户通过输入猜测这个数字,直到猜中为止。下面将对这段代码的关键知识点进行详细的解析: ### 1. ...