java静态代码块

article/2025/9/1 16:13:52

今天涉及到一个表需要加字段来关联另一张表的需求,考虑到项目已经上线,这个表又跟很多表联系,就想到了使用静态代码块去new一个Map来存放关联的字段,当然这是少量数据的表,大表的话还得考虑创建字典表了。

public static Map<String,Integer> map = new HashMap<>(); {map.put("V19",226);map.put("V18",227);map.put("V20",228);map.put("V09",209);
}

首先,肯定不能写个非静态的,不然每次调用这个接口都要去new一个map,这肯定是不现实的,一般new的对象都放到堆里面,这又是一个频繁调用的接口,所以考虑到使用单例或者静态代码块。

既然用到了,就在复习一下,之前的笔记都还在

首先,静态代码块是随着jvm加载类时候执行的,并且只执行一次,这就是我这次需求考虑到的一点。

然后就是大家都熟悉的面试题,静态代码块的实行顺序:

静态代码块——>非静态代码块——>构造函数

故意写反一下测试一下:

class StaticTest {{System.out.println("父类非静态代码块执行了!!!!");}public StaticTest(){System.out.println("父类构造函数执行了!!!!");}static {System.out.println("父类静态代码块执行了!!!!");}public static void main(String[] args) {StaticTest one = new StaticTest();}
}

结果:

看到这里已经很明显了,首先!!再次提一下,静态代码块是加载类时候就执行的,跟new不new没关系!!

class StaticTest {{System.out.println("父类非静态代码块执行了!!!!");}public StaticTest(){System.out.println("父类构造函数执行了!!!!");}static {System.out.println("父类静态代码块执行了!!!!");}
}
class StaticTestSon extends StaticTest{{System.out.println("子类非静态代码块执行了!!!!");}public StaticTestSon(){System.out.println("子类构造函数执行了!!!!");}static {System.out.println("子类静态代码块执行了!!!!");}public static void main(String[] args) {}
}

结果:

然后就是大家了解的,new子类时候,会先调用父类的构造方法,但是因为非静态代码块执行顺序大于构造方法,所以执行顺序就是 下面的结果

class StaticTest {{System.out.println("父类非静态代码块执行了!!!!");}public StaticTest(){System.out.println("父类构造函数执行了!!!!");}static {System.out.println("父类静态代码块执行了!!!!");}
}
class StaticTestSon extends StaticTest{{System.out.println("子类非静态代码块执行了!!!!");}public StaticTestSon(){System.out.println("子类构造函数执行了!!!!");}static {System.out.println("子类静态代码块执行了!!!!");}public static void main(String[] args) {StaticTestSon staticTestSon1 = new StaticTestSon();StaticTestSon staticTestSon2 = new StaticTestSon();}
}

结果:

 


http://chatgpt.dhexx.cn/article/W88nVog2.shtml

相关文章

静态代码块

在Java类中&#xff0c;使用static关键字修饰的代码块称为静态代码块 当类被加载的时候&#xff0c;静态代码块就会被执行 由于类只会加载一次&#xff0c;所以静态代码块只会执行一次 在程序当中&#xff0c;使用静态代码块对类的成员变量进行初始化 package qmfx2; publi…

代码块(静态代码块和非静态代码块)(重难点)

1 基本介绍 代码化块又称为初始化块,属于类中的成员[即是类的一部分]&#xff0c;类似于方法&#xff0c;将逻辑语句封装在方法体中&#xff0c;通过{}包围起来。 但和方法不同&#xff0c;没有方法名&#xff0c;没有返回&#xff0c;没有参数&#xff0c;只有方法体&#xff…

分布式与集群的区别是什么?

在IDF05&#xff08;Intel Developer Forum 2005&#xff09;上&#xff0c;Intel首席执行官Craig Barrett就取消4GHz芯片计划一事&#xff0c;半开玩笑当众单膝下跪致歉&#xff0c;给广大软件开发者一个明显的信号&#xff0c;单纯依靠垂直提升硬件性能来提高系统性能的时代已…

分布式和集群的架构套路总结

本文成于2020年3月14日 参考&#xff1a;原文 文章目录 分布式和集群名词解释使用分布式的心路历程常见的分布式集群架构1. 纯负载均衡形式(集群方向)2. 领导选举型(分布式方向)3. 区块链型(分布式方向)4. master-slaver型(分布式方向)5. 规则型一致性Hash 分布式和集群名词解释…

分布式和集群的区别是什么?

分布式是指将不同功能&#xff0c;或不同地点&#xff0c;或拥有不同数据的多台计算机通过网络连接起来&#xff0c;由控制系统统一管理&#xff0c;完成大规模信息处理的计算机系统。 集群是指将多台服务器集中在一起提供同一种服务&#xff0c;在逻辑上可以看做是一台服务器…

集群、分布式、微服务的区别和介绍

目录 一、集群的概念 二、为什么要使用集群&#xff1f; 1、集群的特点 2、集群的优势 3、集群分类及不同分类的特点 三、集群分类介绍 1、负载均衡集群 2、高可用性集群 3、高性能计算集群 四、集群与分布式区别 1、分布式图解 2、集群模式图解 五、分布式与微服…

理解分布式和集群的区别

简单理解&#xff1a; 分布式&#xff1a;一个业务分拆多个子业务&#xff0c;部署在不同的服务器上 集群&#xff1a;同一个业务&#xff0c;部署在多个服务器上 一句话&#xff0c;就是&#xff1a;“分头做事”与“一堆人”的区别 图文理解&#xff1a; 详细理解&#x…

什么是分布式和集群?

漫小画 擅长漫话 程小员 擅长编程 某天&#xff0c;下班较早&#xff0c;我正在玩吃鸡&#xff0c;已经到决赛圈了&#xff0c;这时候&#xff0c;女朋友满脸求知欲的朝我走过来。 上次他们都说你给我讲的面向对象太简单了。 那你想怎样&#xff1f;为什么我一玩游戏你就过来问…

分布式和集群区别与分布式的应用场景

分布式是指将一个业务拆分不同的子业务&#xff0c;分布在不同的机器上执行&#xff0c;集群是指多台服务器集中在一起&#xff0c;实现同一业务&#xff0c;可以视为一台计算机&#xff0c;一个云计算平台&#xff0c;就是通过一套软件系统把分布式部署的资源集中调度使用。要…

java集群和分布式 区别_集群和分布式的区别?

集群和分布式有什么区别&#xff1f; 分布式系统&#xff1a; 分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性&#xff0c;所以分布式系统具有高度的内聚性和透明性。因此&#xff0c;网络和分布式系统之间的区别更多的在于高层软件(特别是操作…

分布式和集群的区别

分布式和集群的区别 分布式 分布式就是将多台服务器集中在一起&#xff0c;每台服务器都实现总体中的不同业务。每台服务器都缺一不可&#xff0c;如果某台服务器发生宕机了&#xff0c;则网站的 部分功能缺失&#xff0c;将导致整体无法运行。 分布式存在的作用主要是将应用…

php常用换行代码

文章目录 一、""二、"\n" 记录一下php换行的代码书写 一、"</br>" "<br/>"浏览器显示换行&#xff0c;源代码显示<br/>例&#xff1a; <?php echo "Test"."<br/>"; echo "one…

php不换行显示,php中\n不换行

本文俺将跟大家介绍两个解决办法。 原因 PHP中默认输出的文档格式是text/html&#xff0c;在html文件中识别\n为空格。 解决办法 办法一 设置content-type 显示的将content-type设置为text/plain&#xff0c;注&#xff1a;设置后将不能使用html标签。 例&#xff1a; /** * 犀…

php 保存文件并换行,php是怎样向文件中写入换行_后端开发

php向文件中写入换行的要领是&#xff1a;1、在变量【$filename】背面加上“\r\n”&#xff1b;2、在代码中写入【file_put_contents($filelist&#xff0c;$filename“\r\n”&#xff0c;FILE_APPEND)】函数。 PHP写文件换行的体式格局 直接在字符串背面加"\r\n"不行…

php换行替换,php怎么替换回车换行

php替换回车的方法&#xff1a;1、使用语句“str_replace(array("/r", "/n", "/r/n"), "", $string);”&#xff1b;2、利用正则表达式&#xff1b;3、通过语句“$str str_replace(PHP_EOL,)”。 PHP替换回车换行的三种方法 一个小小…

关于PHP中echo换行问题

前提&#xff1a;在 PHP 中仅双引号支持字符串转义“\” 但是我发现即使是双引号&#xff0c;\n也没有正常换行 echo "hello \n world";首先&#xff0c;PHP没有任何问题&#xff0c;成功将转移换行符\n解析出来&#xff0c;最初还以为PHP不兼容\n这个语法呢。 检查…

php换行操作总结

作为php的初学者,常常遇到一个容易混淆的小问题, 那就是在php代码中写入\n换行操作符&#xff0c;以为在浏览器那里呈现的输出是换行&#xff0c;没想到却没有。但是写入 br 却顺利通过.导致很多初学者傻傻分不清! 其实<br>和\n都可以,为什么说都可以呢&#xff1f; 这…

php echo换行

<?php $root [1, 2, 2, 3, 4, 4, 3];echo count($root) . "<br>";echo $root[0]; ?>

PHP如何换行

mac下<br>和\n都可以 为什么说都可以呢&#xff1f; 这和php文件的执行方式有关 php文件有两种执行方式&#xff0c;一种是通过网页访问&#xff0c;一种是通过命令提示符 <?phpecho "this is a \n"; echo "test \n";?> ① 通过网页执行 …

php 换行替换成p,php 换行如何替换

php换行替换的方法&#xff1a;1、使用str_replace来替换换行&#xff0c;语法如“str_replace(array("\\r\\n", "\\r", "\\n"), "", $str);”&#xff1b;2、使用正则表达式替换&#xff1b;3、使用php定义好的变量替换。 推荐&#…