Java 中的静态块与初始化块? [复制]

2023-12-09

可能的重复:
静态初始化块

考虑以下code:

public class Test {
    {
        System.out.println("Empty block");
    }
    static {
        System.out.println("Static block");
    }
    public static void main(String[] args) {
        Test t = new Test();
    }
}

我们明白,首先static块将被执行,然后是empty堵塞。但问题是我一直没能理解一个东西的真正用处。empty堵塞。谁能举一个真实的例子 -

  • Both static and empty正在使用块
  • Both static and empty块有不同的效用

它们有两个截然不同的目的:

  • 静态初始化块将在类加载时调用,并且无法访问实例变量或方法。根据 @Prahalad Deshpande 的评论,它通常用于创建静态变量。
  • 另一方面,非静态初始化块仅在对象构造时创建,将有权访问实例变量和方法,并且(根据 @EJP 建议的重要更正)将在构造函数的开头、在超级构造函数已被调用(显式或隐式)并且before调用任何其他后续构造函数代码。我见过当一个类有多个构造函数并且需要为所有构造函数调用相同的初始化代码时使用它。就像构造函数一样,您应该避免在此块中调用非最终方法。

请注意,这个问题已经在 stackoverflow 中得到了多次回答,您最好搜索并查看类似的问题及其答案。例如:静态初始化块

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

Java 中的静态块与初始化块? [复制] 的相关文章

随机推荐

  • 如何在ruby中仅在内存中创建zip文件?

    我想创建给定目录中所有 HTML 文件的 zip 文件 该 zip 文件将作为附件与目录中的其余文件一起通过电子邮件发送 到目前为止 如果我从 pony 发送任何附件是 HTML 文件 我尝试过的所有电子邮件客户端都无法阅读电子邮件 所以我
  • python中的//=有什么作用? [复制]

    这个问题在这里已经有答案了 我正在阅读http learnpythonthehardway org book ex37 html但我不明白是什么 符号确实如此 我感觉合理 a 9 a 3 a 3 gt True But a 9 a 3 a
  • 使用 igraph 中的 graph.tree 函数绘制树

    在 igraph 包的文档中有一个示例 igraph options plot layout layout reingold tilford plot graph tree 20 2 输出应将数据表示为树 但我得到的是 您显然需要指定根 l
  • 如何避免回调与 Promise 的嵌套结构? [完成的]

    我使用承诺来避免回调创建的嵌套结构 然而在这段代码中我仍然有一些嵌套 我做错了什么还是在这种情况下这是不可避免的 在这种情况下 我想检查并查看配置文件是否存在 如果不存在 我想创建它 DB getProfile id google then
  • 文章类别:加载顺序重要吗?

    我一直在网上搜索 试图找到我的问题的答案 但似乎找不到直接的答案 我在工作中经常使用文章类 但从来没有真正需要知道它们是否按顺序加载 即页面上首先出现的内容 Example div class example1 example2 examp
  • 有没有办法在 VSTS 发布管理中执行嵌套变量

    我在变量组中创建了一些具有以下名称的变量 CodeNetworkShare Dev CodeNetworkShare Test CodeNetworkShare Prod 我在发布定义中导入了这个变量组 然后我尝试了以下方法在发布定义中使用
  • 将 coxph 摘要从 R 导出到 csv

    如何将 cox proportional 危险模型的摘要从 R 导出到 csv 我通过函数 coxph 进行了测试 通过生存包 现在我想将其摘要导出到 csv 该怎么做 c lt coxph Surv x y summary c 我认为你需
  • 如何在 blazor 页面上使用 usermanager?

    你好社区我有一个问题如何使用usermanager in a blazor页面网络组装 通过注入 inject UserManager
  • 将未知编码的TXT文件转换为字符串

    如果编码类型未知 如何将纯文本 txt 文件转换为字符串 我正在开发一项功能 允许用户将 txt 文件导入到我的应用程序中 这意味着该文件可以在任意数量的应用程序中创建 使用对纯文本文件有效的各种编码中的任何一种 我的理解是这可能包括 AS
  • stopPropagation 阻止显示引导程序的对话框

    我在 div 内有一个按钮 div div
  • 预期的标识符、字符串或数字

    我有一个像这样的对象 var defaults id ActionSlider element closeBtnWidth 55 panelWidth 320 class css create function 当我以 IE8 标准运行页面
  • 替换长 URL 的一部分并重定向

    有没有办法重定向 URL 如下所示 URL是基于过滤系统生成的 所以它是这样的 https example com product category no slash generated part is autoadded here 由于产
  • 给定一个视图,我如何获取它的viewController?

    我有一个指向UIView 我如何访问它UIViewController self superview 是另一个UIView 但不是UIViewController right 来自UIResponder的文档nextResponder UI
  • 以编程方式触发时 UIRefreshControl 不刷新

    我试图在视图加载时显示刷新控件 以表明我正在从 Parse 获取数据 刷新控件在应用程序运行时正常工作 但我无法让它从应用程序中的任何位置以编程方式触发 这是似乎没有运行的代码 override func viewDidAppear ani
  • 在 PHP 代码中以密件抄送方式添加电子邮件地址

    我正在尝试弄清楚如何在密件抄送中添加电子邮件地址 由于我添加了更多 headers 来添加盲电子邮件地址 因此整个代码不再起作用
  • Google App Engine 数据存储中的地理空间查询

    我读了下面的帖子 使用 Objectify 查询 Geopt 这正是我的应用程序所需要的 在帖子的最后 我读到地理空间搜索正在阿尔法体育场 但该帖子已经一年了 我在 Google App Engine 上找不到有关地理空间查询状态的任何信息
  • 如何通过 RPC 连接到 Hedera 测试网?​

    我无法通过 HTTP 连接到 Hedera Testnet RPC 端点 可靠地 我间歇性地收到以下 未知错误 Request ID fe7b9928 a23f 0d72 61a1 b7cd23658c01 Unknown error in
  • SQL查找具有多个字段的重复项(无唯一ID)解决方法

    我正在尝试使用以下几个字段从数据库中查找重复的供应商vendor表和供应商地址桌子 问题是 我进行的内部联接越多 查询丢失潜在结果的次数就越少 虽然我的供应商 ID 中没有重复项 但我希望找到类似的潜在供应商 ID 这是我到目前为止的查询
  • Android:在通话期间检测当前活动的电话号码

    目标 在 Android 平台上 检测当前正在与用户通话的个人的电话号码 目前 使用PhoneListener 在呼叫保持的情况下存在一定的歧义 案例 用户正在通话期间与某人通话 通话 1 用户因此处于呼叫状态摘机 然后用户处于 RINGI
  • Java 中的静态块与初始化块? [复制]

    这个问题在这里已经有答案了 可能的重复 静态初始化块 考虑以下code public class Test System out println Empty block static System out println Static bl