首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用括号初始化集合,可别这么干

Double Brace Initialization should not be used 前言 最近在修改sonar问题时,发现有人使用括号初始化集合,提示可能发生内存泄漏。...Thread.sleep(1000); } } 输出 访问外部类对象的属性:bob Thread name: Finalizer Object: sandy Gc happen 分析 匿名内部类持有外部类对象引用 括号初始化时...使用了匿名内部类 括号初始化的方法 非括号初始化的方法 编译后产生的文件 可以发现,多了一个内部类:A$1.class。...查看内部类字节码 拥有一个外部类的成员变量 通过构造方法传入了外部类对象的引用 将外部类对象的引用赋值给成员变量 执行我们写的put方法 内部类继承于HashMap 发生了内存泄漏 使用非括号初始化...map的sandy被回收了,而使用括号初始化map的bob却没有被回收。

94430
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    双引号与括号

    给变量赋值时,也可以通过括号使特殊字符被当作普通字符处理。如下图所示。在这个例子中,括号阻止了$置换。如果将括号替换为双引号则会报错。 ? 如果在一个脚本中同时使用双引号和括号会是什么结果呢?...给变量b赋值时使用了反斜杠置换,给变量c赋值时使用了双引号加括号,其中双引号在最外层,给变量d赋值时使用了括号加双引号,其中括号在最外层,对比下来可以得出这样的结论:在同时使用双引号和括号时,最外层的做主...对于括号,如前文所述“括号内的置换有可能会被阻止”,这是因为括号的功能稍微复杂一些,但总的来说遵循两个原则:第一个原则是如果括号是用做置换操作,则其内部的置换操作会被阻止;第二个原则是如果括号用做界限符...如果需要双引号或括号作为普通字符出现在字符串中时,可通过反斜杠\置换,或者通过双引号和括号的嵌套使用实现特定功能,如下图所示。 ?...结论: -双引号实现参数分组,不阻止置换; -括号实现参数分组,阻止内部置换; -同时使用双引号和括号实现参数分组时,是否置换由最外层符号决定

    2.3K10

    ”BUG的测试分享

    ”一词我是从区块链领域的听到的,查了一下资料,基本所有的引用都是基于区块链,但是今天所讲的“”不是区块链领域,而是普通的接口测试中遇到的BUG,由于概念一致,所以采用“”一词。...,顾名思义,花了两次,一分钱或者交换流通的物品。下面分享一下自己在工作中遇到的一个的BUG的测试方案和原因解释。...解决方案:在常规测试场景以外,利用多线程并发去测试BUG。...主要利用了写好的性能测试框架去并发去发送某一个httprequestbase对象,通过构造对应的测试数据,检查测试完成后的测试数据,对比发现是否存在的BUG。...发起扣费等业务时,并没有重新校验用户余额(或者说改过程是非原子操作不安全),这样导致了最后扣费的时候,使用的用户余额是旧的数值,其他线程也尚未完成扣费,造成了用户的一份金币,被当做两份金币消费了,也就是

    87020

    leetcode 22 括号生成 js 实现

    括号生成 难度中等 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合 示例 1: 输入:n = 3 输出:["((()))","(()())","(())(...n, 且右括号的数量要一直小于或等于左括号 * - 针对组成的括号字符串的每一个位置字符来说,要么是左括号,要么是右括号, 具体这个位置应该是左还是右,看上面的规则而定 * - 所以想到,我可以递归地往每个位置放左和右括号.../solution/jsshua-ti-mian-shi-ti-jie-by-distracted-br3o6/ // 当左括号数量小于n时,可以添加一个左括号,但是括号总数不增加 // 当右括号数量小于左括号时...,可以添加一个右括号括号总数加1 // 当括号总数等于n时,返回当前缓存数组中的值 var generateParenthesis = function(n) { const res = []...; // index 代表当前括号对数,left,right分别代表左右括号数,temp 代表当前生成的临时的括号数组 const dfs = (index, left, right,

    1.5K20

    编程语言简史:有人不喜欢括号,于是他发明了 Python

    这在后来被证明是正确的——在Electron.js被发明出来后 1972年 Dennis Ritchie在贝尔实验室上班上到无聊了,于是他决定写出带有括号的C语言,这门语言取得了巨大成功。...1983年 Bjarne Stroustrup 注意到C在编译方面的时间还不够多,于是他把自己能想到的每一项功能都增加了进去,然后称之为C++。...1991年 Guido van Rossum不喜欢括号,于是他发明了Python,语法选择的灵感来源自Monty Python(巨蟒剧团)和Flying Circus(飞行马戏团)。...他先是找到了Netscape然后说这门语言叫做LiveScript,但在代码评审期间Java变得流行起来,所以他们决定最好还是用括号,然后就把它更名为JavaScript。

    1.2K70
    领券