JAVA里使用双括号来初始化静态常量

对双大括号初始化的理解 偶然见到一种实例化方式,感到十分新奇: //新建一个列表并赋初值A、B、C ArrayList<String> list = new ArrayList<String>() {{ add("A"); add("B"); add("C"); }};还有其他比如HashMap的初始化: Map map = new HashMap 阅读详情

这貌似是个不为人知的语言技巧。我看到一般人写Java里初始化静态常量都是

public static final Map<String, String> DATA = new TreeMap<String, String>();

static
{
DATA.put("a", "A");
//blah blah blah
}

使用所在类的static块来初始化DATA,其实还有另外一种写法:

public static final Map<String, String> DATA = new TreeMap<String, String>()
{{

this.put("a", "A");

//blah blah blah

}};

这实际上是利用了匿名类的特性,内层的{是用来作匿名子类的构造函数,所以可以直接插入初始化代码,这个小语言技巧不常见,但是比较实用。

JAVA中使用双括号来初始化静态常量的小技巧 主要介绍了JAVA中使用双括号来初始化静态常量的小技巧,需要的朋友可以参考下 立即下载

相关推荐

Icarus Verilog和GTKwave使用简析

本简要介绍Icarus Verilog和GTKwave的使用,使用iverilog(Icarus Verilog)编译仿真verilog而使用GTKWave查看仿真数据波形下载安装 基本使用 iverilog使用 GTKWave使用 iverilog常用选项 使用库 注意

husipeng86的专栏 1万+

Linux中双小括号,双中括号用法总结

①整数扩展。这种扩展计算是整数型的计算,不支持浮点型。((exp))结构扩展并计算一个算术表达式的值,如果表达式的结果为0,那么返回的退出状态码 为1,或者 是"假",而一个非零值的表达式所返回的退出状态码将为0,或者是"true"。若是逻辑判断,表达式exp为真则为1,假则为0。#输出0(0是退出状态,要与返回值(为真)区别,可以理解为正常退出)((1<1))echo $?#输出一个正整数。

qq_32118757的博客 1796

Vanna 2.0:基于LLM的智能文本到SQL框架,实现企业级数据查询与权限控制

文本到SQL技术是自然语言处理与数据库交互的重要桥梁,它允许用户使用日常语言直接查询数据库,无需编写复杂的SQL语句。其核心原理是利用大语言模型理解用户意图,并结合检索增强生成技术,将自然语言问题转换为准确的结构化查询语言。这项技术的价值在于大幅降低了数据访问门槛,提升了业务人员的数据自助分析能力,并能在金融分析、销售报表、运营监控等场景中实现实时数据洞察。Vanna 2.0作为一个开源框架,通过引入用户感知的智能体架构和行级安全策略,解决了企业级应用中的多租户数据隔离与权限控制等关键问题,使得自然语言数据

weixin_42629522的博客 543

java字符常量括_java基础---2. 常量&变量

1.常量分类:字符串常量:双引号括起来的就是字符串常量,"abc"、"你好"整数常量:100、200...浮点数常量: 1.1、-3.14...字符常量:单引号括起来的就是字符常量,'A'、'中'...布尔常量:仅true、false空常量:null(没有任何数据)public class Demo01Const{public static void main(String[] args){//字...

weixin_29557763的博客 581

Open3D——点云构建Delaunay三角网【2026最新版】

点云构建Delaunay三角网

点云侠的博客 8365

Multisim14使用教程详尽版--(2025最新版)

摘要:本文详细介绍了Multisim14电路仿真软件的功能和使用方法。主要内容包括:1)主流电路仿真软件比较,突出Multisim在教学、竞赛设计中的优势;2)软件界面说明,涵盖菜单栏、工具栏、元器件库和仪器仪表;3)18类元器件分类详解及其使用操作;4)15种仪器仪表的原理和应用场景;5)电路原理图设计与仿真流程;6)基本电路分析方法(直流静态工作点分析、交流分析等)。文章还提供了硬件工程师笔试面试相关资源链接,涵盖电阻、电容、三极管等器件知识及AD软件操作指南。通过系统讲解,帮助用户掌握Multisim

XU157303764的博客 2万+

linux双括号用法,linux shell (()) 双括号运算符使用

估计很多朋友都感觉比较难以接受。特变逻辑运算符”[]”使用时候,必须保证运算符与算数 之间有空格。 四则运算也只能借助:let,expr等命令完成。 今天讲的双括号”(())”结构语句,就是对shell中算数及赋值运算的扩展。使用方法:语法:((表达式1,表达式2…))特点:1、在双括号结构中,所有表达式可以像c语言一样,如:a++,b--等。2、在双括号结构中,所有变量可以不加入:“$”符号前缀...

weixin_32273159的博客 1580

Unity 热更 之 【YooAsset 热更】几分钟快速了解 YooAsset [功能面板]、以及 [基础代码] 说明

Unity 的资源管理系统不断发展,以适应不同项目的需求和解决特定的问题。AssetBundle 和 Addressable Asset System 是 Unity 官方提供的资源管理解决方案,而 YooAsset 是第三方提供的资源管理系统。简化的API和易用性YooAsset 可能提供了更简单直观的 API,使得资源加载和管理更加容易。对于不熟悉 Addressable 或 AssetBundle 复杂配置的开发者来说,YooAsset 可能是一个更易于上手的选择。性能优化。

仙魁XAN 2955

c语言加减乘除运算编程_linux shell “(())” 双括号运算符使用

在刚开始学习inux shell脚本编程时候,对于它的 四则运算以及逻辑运算。估计很多朋友都感觉比较难以接受。特变逻辑运算符”[]”使用时候,必须保证运算符与算数 之间有空格。 四则运算也只能借助:let,expr等命令完成。 今天讲的双括号”(())”结构语句,就是对shell中算数及赋值运算的扩展。使用方法:语法:((表达式1,表达式2…))特点:1、在双括号结构中,所有表达式可以像c语言一样...

weixin_40002692的博客 871

Loki 分布式日志中心服务

分布式日志中心 Loki + Promtail + Grafana

原名又逢乱世。不要放下学习的脚步,毕竟比天天打牌、钓鱼、打游戏更能从内在充实自己。 2351

使用verilog设计实现QR分解

QR(正交三角)分解法是求一般矩阵全部特征值的最有效并广泛应用的方法,一般矩阵先经过正交相似变化成为Hessenberg矩阵,然后再应用QR方法求特征值和特征向量。 使用verilog对QR实现方法进行设计并进行功能仿真: 如下: 顶层模块代码: module TOP( H1R, H1I, H2R, H2I, H3R, H3I, H4R, H4I, clk, rst_n, Y1R, Y1I, Y2R, Y2I, X1R, X1I, X2R, X2I ); parameter width = 16; // I

QQ_778132974的博客 2149

java 静态初始化常量_Java的静态变量初始化的坑

在网上看到一个很有意思的题目,题目如下classSingleTon {private static SingleTon singleTon = newSingleTon();public static int count1;public static int count2 = 1;privateSingleTon() {count1++;count2++;}public staticSingleT...

weixin_31975737的博客 580

【DevOps】rancher集成ldap,实现统一账号登录

登录到rancher控制台,选择【安全】-【认证】 选择【OpenLDAP】 其中【搜索起点】需要去ldap界面查配置完成

CN_Eden 1092

Java 隐藏特性:双括号初始化(Double Brace Initialization)

Java 隐藏特性:双括号初始化引入双括号初始化理解双括号初始化内部类初始化块(代码块)剖析双括号初始化扩展阅读 引入双括号初始化 Java 中的“双括号初始化”常被人以隐藏特性的方式所提及,那何谓“双括号初始化”呢?我们又在哪里有应用到“双括号初始化”呢? 首先,我们先来观察一段典型的“双括号初始”示例代码片段: Map<String, String> map = new HashM...

www.wuxianjie.net 3178

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Java中双括号初始化是个什么操作

最近在阅读Mybatis源码的时候,看到了一种原来很少见到的语法: public class RichType { ... private List richList = new ArrayList() { { add("bar"); ...

听得到微笑的博客 1258

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Java中的双大括号初始化

什么是Java双大括号初始化? 通常情况下,初始化Java集合并向其中添加几个元素的步骤如下: Set&lt;Integer&gt; set = new HashSet&lt;&gt;(); set.add(1); set.add(2); set.add(3); 或者我们可以在静态初始化块中向作为静态变量的集合添加元素: private static final Set&lt;In...

正西风落叶下长安 8535

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Java:双括号初始化 / 匿名内部类初始化法

1.楔子 在开发中一个常见的操作就是新建Map或者List并进行初始化,但是在java的集合框架中并未提供好的初始化方式,只能先new,然后在一个个的put,但这样显得非常的low,如何才能优雅的初始化常见集合呢? 2. 一个看似很装逼的方式 2.1 代码实例 这种初始化方式使用了匿名内部类和非静态初始化块的奇技淫巧方式,详见代码如下: package com.sino.daily.code_20...

借你一秒 1479

Java集合的双大括号初始化原理

Java集合的双大括号初始化原理 使用两个大括号进行初始化 如ArrayList List<String> list = new ArrayList<String>() {{ add("Hello"); add("World!"); }}; HashMap Map<String, Object> map = new HashMap<String, Object>() { { put("name", "Tom");

qq_46186167的博客 2515

java 两个大括号_Java中的双大括号初始化

什么是Java双大括号初始化?通常情况下,初始化Java集合并向其中添加几个元素的步骤如下:Set set = new HashSet<>();set.add(1);set.add(2);set.add(3);或者我们可以在静态初始化块中向作为静态变量的集合添加元素:private static final Set set = new HashSet<>();static ...

weixin_30472793的博客 1941

Java双括号初始化

常用的初始化方式Java中可以使用括号进行初始化,并且分为静态代码块和非静态代码块。如下:public class Test { public static int num = 0; String s = ""; { s = "abc"; System.out.println("non static init"); } stati

DC的陋室 7482

java hashmap初始化_Java 隐藏特性:双括号初始化(Double Brace Initialization)

点击上方蓝色文字关注公众号Java 隐藏特性:双括号初始化(Double Brace Initialization)引入双括号初始化Java 中的“双括号初始化”常被人以隐藏特性的方式所提及,那何谓“双括号初始化”呢?我们又在哪里有应用到“双括号初始化”呢?首先,我们先来观察一段典型的“双括号初始”示例代码片段:Map<String, String> map = new Ha...

weixin_30086969的博客 846

双大括号初始化的理解和使用

利用匿名内部类进行 对象的 双大括号初始化 方法,比new出对象再进行依次赋值要方便、简介的多。但也存在代码可读性以及执行效率相对低的问题。

不如一默 1万+

探索 Java 隐藏特性:双括号初始化

双括号初始化是 Java 中一种隐藏的特性,可以简化集合和类实例的初始化过程。在 Java 编程中,初始化一个集合或类的实例通常需要使用明确的方式,如在构造函数中添加元素或在集合类的 add() 方法中逐个添加元素。不过,需要注意的是,双括号初始化可能会导致一些性能问题,因为它会创建一个匿名内部类的实例。双括号初始化是一种语法糖,能够通过在初始化代码块中添加第二组括号来初始化集合或类的实例。此外,双括号初始化的语法并不是官方建议的初始化方式,它是一种隐藏的特性,可能会给其他开发者造成困惑。

相当rapper的程序员 306

代码评审——静态map初始化并赋值问题

在程序开发过程中,经常使用到Map来进行数据的处理。但在开发过程中,当使用静态Map时,初始化数据会存在一些危险的情况。

月空的博客 1621

永远不要使用双花括号初始化实例,否则就会OOM!

此时的小王被问的一脸懵逼,内心有无数个草泥马奔腾而过,心想你这头老牛竟然也和我争这颗嫩草,但内心却有一种不祥的预感,感觉自己要输,瞬间羞涩的不知该说啥,只能红着小脸,轻轻的“嗯?小王沉默了片刻,只是凭借着以往的经验来看,这“老家伙”还是有点东西的,于是敷衍的“哦~”了一声,仿佛自己明白了怎么回事一样,,其实内心仍然迷茫的一匹,为了不让其他同事发现,只得这般作态。生活中的尴尬无处不在,有时候你只是想简单的装一把,但某些“老同志”总是在不经意之间,给你无情的一脚,踹得你简直无法呼吸。

【欢迎关注公众号:冬瓜白】 6761
上一篇: C++/C博客记录
下一篇: soap12 soap11的区别
heipacker
博客等级 码龄17年 9粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值