Java里面的静态代码块

问题:Java里面的静态代码块

I was looking over some code the other day and I came across:
前几天我在看一些代码时发现:

static {...
}

我是c++转来的,我不知道为啥要这样干。这个代码也编译成功了,没出错误。这里的"static"代码块是啥啊?

回答一

它是一个静态初始化器。它在类被加载时执行(准确地说应该是初始化,但你通常不会注意到其中的区别)。

它也可以被看成是一个“类的构造函数”。

请注意,还有一些实例初始化器,它们看起来相同,但是它们没有static关键字。当创建对象的实例时,除了构造函数中的代码外,还会运行这些代码。

回答二

它是一个静态初始化器。它在类加载时执行和是进行静态变量初始化的地方。

来自http://java.sun.com/docs/books/tutorial/java/javaOO/initial.html

一个类可以有任意数量的静态初始化块,它们可以出现在类的任何地方。系统保证在运行时静态初始化的代码块按照它们在源代码中出现的顺序被调用。

如果你有一个类,带有实现了查找功能的静态的map,它看起来就是这样的:

class MyClass {static Map<Double, String> labels;static {labels = new HashMap<Double, String>();labels.put(5.5, "five and a half");labels.put(7.1, "seven point 1");}//...
}

它是非常有用的。因为上面的静态域不能使用labels = … 来初始化,它需要以某种方式调用put方法。

文章翻译自Stack Overflow:https://stackoverflow.com/questions/2943556/static-block-in-java

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/390890.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搭建Maven私服那点事

摘要&#xff1a;本文主要介绍在CentOS7.1下使用nexus3.6.0搭建maven私服&#xff0c;以及maven私服的使用&#xff08;将自己的Maven项目指定到私服地址、将第三方项目jar上传到私服供其他项目组使用&#xff09; 一、简介 Maven是一个采用纯Java编写的开源项目管理工具, Mave…

lee最短路算法_Lee算法的解释:迷宫运行并找到最短路径

lee最短路算法Lee算法是什么&#xff1f; (What is the Lee Algorithm?) The Lee algorithm is one possible solution for maze routing problems. It always gives an optimal solution, if one exists, but is slow and requires large memory for dense layout.Lee算法是迷…

gan训练失败_我尝试过(但失败了)使用GAN来创作艺术品,但这仍然值得。

gan训练失败This work borrows heavily from the Pytorch DCGAN Tutorial and the NVIDA paper on progressive GANs.这项工作大量借鉴了Pytorch DCGAN教程 和 有关渐进式GAN 的 NVIDA论文 。 One area of computer vision I’ve been wanting to explore are GANs. So when m…

怎么样实现对一个对象的深拷贝

问题&#xff1a;怎么样实现对一个对象的深拷贝 使用深拷贝的方法有点难实现啊。要保证原来的对象和克隆对象不是共享同一个引用的步骤是什么啊&#xff1f; 回答一 一种安全的方法是先序列化对象&#xff0c;然后反序列化。这保证了所有东西都是一个新的引用。 这里有一篇…

19.7 主动模式和被动模式 19.8 添加监控主机 19.9 添加自定义模板 19.10 处理图形中的乱码 19.11 自动发现...

2019独角兽企业重金招聘Python工程师标准>>> 19.7 主动模式和被动模式 • 主动或者被动是相对客户端来讲的 • 被动模式&#xff0c;服务端会主动连接客户端获取监控项目数据&#xff0c;客户端被动地接受连接&#xff0c;并把监控信息传递给服务端 服务端请求以后&…

Codeforces Round #444 (Div. 2) C.Solution for Cube 模拟

向题解低头&#xff0c;向大佬低头(。﹏。)orz……模拟也不能乱模啊……要好好分析题意&#xff0c;简化简化再简化orz敲黑板 六个面的魔方&#xff0c;能一步还原的情况一定是只有2个面是单色&#xff0c;其余四个面&#xff0c;每个面2种颜色&#xff0c;而且不会出现任意两面…

fcc认证_介绍fCC 100:我们对2019年杰出贡献者的年度总结

fcc认证2019 has been a big year for the global freeCodeCamp community.对于全球freeCodeCamp社区来说&#xff0c;2019年是重要的一年。 More people are answering questions on the forum. 越来越多的人在论坛上回答问题。 Our publication has several new, rising aut…

华盛顿特区与其他地区的差别_使用华盛顿特区地铁数据确定可获利的广告位置...

华盛顿特区与其他地区的差别深度分析 (In-Depth Analysis) Living in Washington DC for the past 1 year, I have come to realize how WMATA metro is the lifeline of this vibrant city. The metro network is enormous and well-connected throughout the DMV area. When …

Windows平台下kafka环境的搭建

近期在搞kafka&#xff0c;在Windows环境搭建的过程中遇到一些问题&#xff0c;把具体的流程几下来防止后面忘了。 准备工作&#xff1a; 1.安装jdk环境 http://www.oracle.com/technetwork/java/javase/downloads/index.html 2.下载kafka的程序安装包&#xff1a; http://kafk…

deeplearning.ai 改善深层神经网络 week2 优化算法

这一周的主题是优化算法。 1. Mini-batch&#xff1a; 上一门课讨论的向量化的目的是去掉for循环加速优化计算&#xff0c;X [x(1) x(2) x(3) ... x(m)]&#xff0c;X的每一个列向量x(i)是一个样本&#xff0c;m是样本个数。但当样本很多时&#xff08;比如m500万&#xff09…

gcc汇编汇编语言_什么是汇编语言?

gcc汇编汇编语言Assembly Language is the interface between higher level languages (C, Java, etc) and machine code (binary). For a compiled language, the compiler transforms higher level code into assembly language code.汇编语言是高级语言(C &#xff0c;Java等…

铺装s路画法_数据管道的铺装之路

铺装s路画法Data is a key bet for Intuit as we invest heavily in new customer experiences: a platform to connect experts anywhere in the world with customers and small business owners, a platform that connects to thousands of institutions and aggregates fin…

leetcode421. 数组中两个数的最大异或值(贪心算法)

给你一个整数数组 nums &#xff0c;返回 nums[i] XOR nums[j] 的最大运算结果&#xff0c;其中 0 ≤ i ≤ j < n 。 进阶&#xff1a;你可以在 O(n) 的时间解决这个问题吗&#xff1f; 示例 1&#xff1a; 输入&#xff1a;nums [3,10,5,25,2,8] 输出&#xff1a;28 解…

IBM推全球首个5纳米芯片:计划2020年量产

IBM日前宣布&#xff0c;该公司已取得技术突破&#xff0c;利用5纳米技术制造出密度更大的芯片。这种芯片可以将300亿个5纳米开关电路集成在指甲盖大小的芯片上。 IBM推全球首个5纳米芯片 IBM表示&#xff0c;此次使用了一种新型晶体管&#xff0c;即堆叠硅纳米板&#xff0c;将…

drop sql语句_用于从表中删除数据SQL Drop View语句

drop sql语句介绍 (Introduction) This guide covers the SQL statement for dropping (deleting) one or more view objects.本指南介绍了用于删除(删除)一个或多个视图对象SQL语句。 A View is an object that presents data from one or more tables.视图是显示来自一个或多…

async 和 await的前世今生 (转载)

async 和 await 出现在C# 5.0之后&#xff0c;给并行编程带来了不少的方便&#xff0c;特别是当在MVC中的Action也变成async之后&#xff0c;有点开始什么都是async的味道了。但是这也给我们编程埋下了一些隐患&#xff0c;有时候可能会产生一些我们自己都不知道怎么产生的Bug&…

项目案例:qq数据库管理_2小时元项目:项目管理您的数据科学学习

项目案例:qq数据库管理Many of us are struggling to prioritize our learning as a working professional or aspiring data scientist. We’re told that we need to learn so many things that at times it can be overwhelming. Recently, I’ve felt like there could be …

react 示例_2020年的React Cheatsheet(+真实示例)

react 示例Ive put together for you an entire visual cheatsheet of all of the concepts and skills you need to master React in 2020.我为您汇总了2020年掌握React所需的所有概念和技能的完整视觉摘要。 But dont let the label cheatsheet fool you. This is more than…

leetcode 993. 二叉树的堂兄弟节点

在二叉树中&#xff0c;根节点位于深度 0 处&#xff0c;每个深度为 k 的节点的子节点位于深度 k1 处。 如果二叉树的两个节点深度相同&#xff0c;但 父节点不同 &#xff0c;则它们是一对堂兄弟节点。 我们给出了具有唯一值的二叉树的根节点 root &#xff0c;以及树中两个…

Java之Set集合的怪

工作中可能用Set比较少&#xff0c;但是如果用的时候&#xff0c;出的一些问题很让人摸不着头脑&#xff0c;然后我就看了一下Set的底层实现&#xff0c;大吃一惊。 ###看一个问题 Map map new HashMap();map.put(1,"a");map.put(12,"ab");map.put(123,&q…