Java多线程 发布private对象逸出的演示
发布日期:2021-06-30 13:12:05
浏览次数:3
分类:技术文章
本文共 1205 字,大约阅读时间需要 4 分钟。
文章目录
发布逸出
什么是发布: 把这个对象, 给别的类去使用. (作为参数传递, return对象等情况. )
对象逸出: 对象发布到了不该发布的地方. 如下的情况都是逸出 如下的代码演示了发布逸出的情况 ,定义了一个private对象, 并且用一个public的方法getStates去返回该对象. 在ReleaseEscapeDemo的构造方法中, 给这个map赋初始化的值. 这样的值,在生产环境中 , 可能是一些配置的信息 ,是要提供给其他很多的业务代码去使用的 . 原则上是不允许修改的, 但是在main方法中, 尝试去获得map , 并且去remove掉一个元素.package com.thread.background;import java.util.HashMap;import java.util.Map;/** * 类名称:ReleaseEscapeDemo * 类描述: 发布逸出的演示 * * @author: https://javaweixin6.blog.csdn.net/ * 创建时间:2020/9/1 7:52 * Version 1.0 */public class ReleaseEscapeDemo { //定义一个private私有变量 private Mapstates ; public ReleaseEscapeDemo() { states = new HashMap<>(); states.put("1","a"); states.put("2","b"); states.put("3","c"); } //对象逸出 返回了一个私有变量 public Map getStates() { return states; } public static void main(String[] args) { ReleaseEscapeDemo re = new ReleaseEscapeDemo(); Map states = re.getStates(); System.out.println(states.get("1")); states.remove("1"); System.out.println(states.get("1")); }}
运行程序后, 控制台打印如下, 说明了成功的获得了值, 并且把map中的值给移除了. 这就是private对象逸出. 会导致其他代码原本要获得key为a的值, 结果却获得不到了
转载地址:https://javaweixin6.blog.csdn.net/article/details/108333311 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年05月04日 02时31分24秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
rocketMQ实战(四): hello world
2019-05-01
抖音、腾讯、阿里、美团春招服务端开发岗位硬核面试(完结)
2019-05-01
token超时刷新策略
2019-05-01
9种分布式ID生成方式,总有一款适合你
2019-05-01
由DFS到访问者模式
2019-05-01
字节的面试题到底有多难?大厂为何都注重算法?
2019-05-01
阿里大师呕心整理出来的分布式事务至尊级学习笔记!干货满满!
2019-05-01
膜拜!这份技术点拉满的Redis深度历险笔记,价值百万!
2019-05-01
RabbitMQ消息队列(七):适用于云计算集群的远程调用(RPC)
2019-05-01
xtrabackup备份之增量备份(二)
2019-05-01
《视频直播技术详解》系列:(6)编码和封装
2019-05-01
类函数重写、重载、覆盖示例
2019-05-01
五种主要多核并行编程方法分析与比较
2019-05-01
GB28181计算注册登陆时的鉴权信息
2019-05-01
人工智能为什么这么火?看看安防江湖30年血战就知道了
2019-05-01
“中国已建成世界上最大的视频监控网”背后的问题
2019-05-01
一个ps解复用H264和H264打包ps的动态库及demo
2019-05-01
“前端智能为安防产生新的数据价值”
2019-05-01
异或^ 的几个作用
2019-05-01
nanomsg编译与测试
2019-05-01