StaticBlockDemo.java

本文提供了一个简单的静态块示例代码,展示了如何在Java中使用静态块。通过创建SomeClass实例来触发静态块的执行。

public class StaticBlockDemo{

  public static void main(){

    SomeClass c=new SomeClass();

  }

}

### Java 中 `static` 关键字的作用 在Java中,`static`关键字是一个非常重要的修饰符,它可以用于变量、方法、代码块和内部类等。使用`static`可以使它们成为所属类的一部分而不是某个特定对象的部分,这意味着所有该类的实例都将共享同一个`static`成员。 #### 一、静态变量(Static Variables) 1. **定义** - 静态变量也被称为类变量,因为它们属于整个类而非单个对象。无论创建了多少个对象,所有的对象都共享这唯一的静态变量副本。 2. **声明方式** ```java public class Example { static int count = 0; // 所有Example类的对象都会共享这个count变量 } ``` 3. **初始化时机** - 当加载类到内存的时候就会自动完成对静态变量的初始化工作了,并且只会发生一次。 4. **优点** - 节省内存空间:由于是全局共有的所以不需要为每一个新产生的对象分配额外的空间去保存相同的数据; - 方便修改:一处更改即可影响全部依赖于此变量的地方; 5. **缺点及注意事项** - 每次调用构造函数时不会重新赋初值; - 如果不是特别必要的话尽量少用它以免造成不必要的麻烦比如同步问题之类的。 #### 二、静态方法(Static Methods) 1. **定义** - 只能访问其他静态成员(包括字段和方法),无法直接引用非静态成员除非明确指定某一个对象作为前缀; 2. **声明方式** ```java public class MathUtil { public static int add(int a, int b) { return a + b; } } // 直接通过MathUtil.add()就可以调用了无需实例化对象 ``` 3. **特点** - 提高效率:减少了创建临时对象所带来的性能开销; - 工具性质强:非常适合用来构建一些工具库函数如数学运算等功能模块。 #### 三、静态代码块(Static Block) 1. **定义** - 它是一段特殊的语句序列会在类首次被加载入JVM虚拟机之前被执行而且只运行这一次; 2. **应用场景** - 常见于需要一次性执行的任务例如资源文件读取配置参数设置数据库连接池建立等等。 ```java class StaticBlockDemo{ static { System.out.println("这是静态代码块"); } public StaticBlockDemo(){ System.out.println("这是构造函数"); } } // 输出顺序一定是 先打印"这是静态代码块", 再打印"这是构造函数" ``` #### 四、静态内部类(Static Inner Class) 1. **定义** - 这种内嵌式的类别可以直接像普通顶层类一样地自由访问外部宿主类的所有成员而不用生成任何关联性的实体出来; 2. **优势** - 减少了对外部环境的影响同时也避免了很多潜在的问题比如说循环引用导致GC困难等问题的发生几率会大大降低; - 管理方便容易组织成更清晰合理的项目架构体系。 综上所述,在适当的情景下合理运用好`static`可以帮助开发者简化编码过程提高软件质量哦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值