Java多线程 发布private对象逸出的演示
发布日期:2021-06-30 13:12:05
浏览次数:2
分类:技术文章
本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年04月14日 05时33分23秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
未来已至,5G加持下的云游戏将走向何方?
2019-05-01
闭关三月!猛男逆道而行,四杀斩获阿里 / 腾讯 / 京东 / 百度等大厂 offer
2019-05-01
【linux用户模块】用户/用户组的管理
2019-05-01
计算机网络 —— 网络层 1.
2019-05-01
http协议缓存详解
2019-05-01
Echarts使用及动态加载图表数据 折线图X轴数据动态加载
2019-05-01
接口api开发中安全性问题
2019-05-01
spring boot 知识点整理
2019-05-01
URL重定向,referer,referrer和安全
2019-05-01
Android生命周期
2019-05-01
Android进度条自定义——类似ProgressDialog效果的Dialog
2019-05-01
Android 之 ContentProvider 与 ContentResolver
2019-05-01
【接口自动化】
2019-05-01
SpringBoot搭建一个Web工程
2019-05-01
Spring Boot 安全框架 Shiro 入门
2019-05-01
如何用一句话激怒互联网人?
2019-05-01
用 Python 爬了点你们喜欢的电影
2019-05-01
推荐一位川大零基础转行 Python 的人生勇士
2019-05-01
讲真,做Python一定不要只会一个方向!
2019-05-01
Python 2大限来了!113天后自生自灭,官方不再维护更新
2019-05-01