什么是初始化块?

2023-11-27

我们可以将代码放入构造函数、方法或初始化块中。初始化块有什么用?是不是每个java程序都必须有它?


首先,有两种类型初始化块:

  • 实例初始化块, and
  • 静态初始化块.

此代码应该说明它们的用法以及它们的执行顺序:

public class Test {
    
    static int staticVariable;
    int nonStaticVariable;        

    // Static initialization block:
    // Runs once (when the class is initialized)
    static {
        System.out.println("Static initalization.");
        staticVariable = 5;
    }
    
    // Instance initialization block:
    // Runs each time you instantiate an object
    {
        System.out.println("Instance initialization.");
        nonStaticVariable = 7;
    }
    
    public Test() {
        System.out.println("Constructor.");
    }
    
    public static void main(String[] args) {
        new Test();
        new Test();
    }
}

Prints:

Static initalization.
Instance initialization.
Constructor.
Instance initialization.
Constructor.

如果您希望无论使用哪个构造函数都运行一些代码,或者希望对匿名类进行一些实例初始化,则实例初始化块非常有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是初始化块? 的相关文章

随机推荐

  • $_SERVER['HTTP_HOST'] 未设置

    我的 php 页面有很多流量 但没有变量 SERVER HTTP HOST set 此流量相当于每秒 1 次点击 我不知道它可能是什么 但为了减少服务器负载 我在每个 php 页面的顶部这样做 if isset SERVER HTTP HO
  • Android:使用 AlarmManager 获取所有 PendingIntents 设置

    我设置一个这样的闹钟 alarmManager set AlarmManager RTC WAKEUP alarmTime pendingEvent 我有兴趣删除以前设置的所有警报 清除它们 有没有办法让我做到这一点或获取当前设置的所有警报
  • Java图像分析-计算垂直线

    I need a little help on an image analysis algorithm in Java I basically have images like this 因此 正如您可能猜到的 我需要计算行数 您认为哪种方
  • Pandas:如何将具有多个值的单元格转换为多行?

    我有一个像这样的数据框 Name asn count Org1 asn1 asn2 1 org2 asn3 2 org3 asn4 asn5 5 我想将我的 DataFrame 转换为如下所示 Name asn count Org1 asn
  • IE10上indexeddb的存储限制

    我们正在构建一个 Web 应用程序 它使用 indexedDB 将大量文件存储为 blob 如果用户最大限度地使用我们的应用程序 我们可以在 indexeddb 中存储多达 15GB 的文件 我们遇到了 IE10 的问题 我强烈怀疑是配额问
  • 如何干净地反序列化 JSON,其中字符串值包装在同名的对象中

    我想将一些奇怪的 JSON 反序列化为 C 类 Result Client ProductList Product Name Name Car polish Name Name Mr
  • 如何获取wifi热点状态

    我正在创造无线热点在我的手机中 我想在打开或关闭热点时获取其状态更改事件 请看下面的代码 这会帮助你 public class WifiApManager private final WifiManager mWifiManager pub
  • 在没有 Spring 的情况下使用 AspectJ 日志记录 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我刚刚开发了一个日志很差或没有日志的旧应用程序 它没有实现 Spring 框架 是否可以在没有 Spring 的情况下实现 AspectJ 日志记录
  • 如何使用 Lambda 表达式获取单词平均长度

    我有一个单词列表文本文件 我想从该文件中获取最小 最大和平均单词长度 我有一个流方法 public static Stream
  • AppKit 中 UIKit 的 [NSString sizeWithFont:constrainedToSize:]

    AppKit 适用于 Mac OS X 上的 Cocoa 中是否有任何等效方法可以与 UIKit 执行相同的操作 NSString sizeWithFont constrainedToSize 如果不是 我怎样才能获得渲染受宽度 高度限制的
  • Swift 2.2 如何更改标签栏控制器的背景颜色

    我一直在尝试更改选项卡栏的背景 并且在 ObjC 中阅读了许多帖子 其中许多帖子都很旧了 但我没有找到任何适用于我正在使用的 Swift 的东西 我终于弄清楚如何从代码中做到这一点 因此标签栏颜色可以随着每个主题颜色的变化而改变 以下是我使
  • 收到错误 java.io.IOException:服务器返回 HTTP 响应代码:401

    我正在尝试对 https url 进行身份验证 但出现异常 下面是代码 import java io BufferedReader import java io IOException import java io InputStream
  • FlexSlider有销毁方法吗

    当异步调用新的画廊列表时 我尝试重新初始化 FlexSlider 而不刷新页面 我认为下面的例程会起作用 但事实并非如此 即使新图像已成功加载 第一个 FlexSlider 似乎仍然存在 有没有办法先破坏然后重建画廊 Thanks func
  • python re 模块中的“[ab]+”等于“(a|b)+”吗?

    我认为 pat1 ab 和 pat2 a b 在 Python python2 7 windows re 模块中作为正则表达式模式具有相同的功能 但我对 ab 和 a b 感到困惑 它们是否具有相同的功能 如果没有 您能解释一下细节吗 Cr
  • OpenCV 中的局部标准化

    我正在尝试在 OpenCV 中实现局部归一化算法 以减少图像中的照明差异 我找到了一个MATLAB 函数 我已经在OpenCV中实现了它 但是 我得到的结果与 MATLAB 函数给出的结果不同 这是我的代码 Mat localNorm Ma
  • 将多个空列添加到 pandas DataFrame

    如何将多个空列添加到DataFrame从列表中 我可以 df B None df C None df D None 但我不能这样做 df B C D None KeyError B C D not in index 你可以使用df rein
  • Firestore 数组中的排序顺序

    我试图更多地了解 Firebase 中的数组 目前 我将地图存储在数组中 其中地图内的字段之一是position我可以在我的移动应用程序中使用它在检索时对数组进行排序并按以下顺序显示结果position The Firebase 上的文档
  • 实现抛射运动

    我在互联网上查找了一些资源 并发现了很多有用的信息 但它们是数学网站 试图告诉我如何解决物体必须处于什么角度才能到达 y 位置 但是 我正在尝试运行模拟 但没有找到任何可以实现代码来模拟抛物线的固体方程 有一些物理知识的人可以帮我解决这个问
  • 检查包含特定字符串的数组列表的方法

    我有一个从数据库导入记录的 ArrayList 有没有什么方法可以检查 arrayList 是否包含我想要与另一个 api 列表匹配的 schname List
  • 什么是初始化块?

    我们可以将代码放入构造函数 方法或初始化块中 初始化块有什么用 是不是每个java程序都必须有它 首先 有两种类型初始化块 实例初始化块 and 静态初始化块 此代码应该说明它们的用法以及它们的执行顺序 public class Test