文章目录

  • 发布逸出

发布逸出

什么是发布: 把这个对象, 给别的类去使用. (作为参数传递, 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 Map<String,String> states ;public ReleaseEscapeDemo() {states = new HashMap<>();states.put("1","a");states.put("2","b");states.put("3","c");}//对象逸出  返回了一个私有变量public Map<String, String> getStates() {return states;}public static void main(String[] args) {ReleaseEscapeDemo re = new ReleaseEscapeDemo();Map<String, String> states = re.getStates();System.out.println(states.get("1"));states.remove("1");System.out.println(states.get("1"));}
}

运行程序后, 控制台打印如下, 说明了成功的获得了值, 并且把map中的值给移除了. 这就是private对象逸出.
会导致其他代码原本要获得key为a的值, 结果却获得不到了

Java多线程 发布private对象逸出的演示相关推荐

  1. Java多线程 解决private对象逸出--返回副本

    文章目录 解决private对象逸出--返回副本 解决private对象逸出–返回副本 如下的代码, 使用的是返回对象的副本的方式, 来解决private对象逸出 package com.thread ...

  2. Java内存模型:线程并发下的对象逸出

    Java内存模型:线程并发下的对象逸出原因分析及解决方案:

  3. Java并发编程——this引用逸出(this Escape)

    http://blog.csdn.net/flysqrlboy/article/details/10607295       并发编程实践中,this引用逃逸("this"esca ...

  4. java火箭应用_从火箭发场景来学习Java多线程并发闭锁对象

    原标题:从火箭发场景来学习Java多线程并发闭锁对象 从火箭发场景来学习Java多线程并发闭锁对象 倒计时器场景 在我们开发过程中,有时候会使用到倒计时计数器.最简单的是:int size = 5; ...

  5. java 闭锁_从火箭发场景来学习Java多线程并发闭锁对象

    从火箭发场景来学习Java多线程并发闭锁对象 倒计时器场景 在我们开发过程中,有时候会使用到倒计时计数器.最简单的是:int size = 5; 执行后,size-这种方式来实现.但是在多线程并发的情 ...

  6. java多线程访问beans对象_springboot在多线程中注入对象

    springboot多线程,线程类无法实现自动注入需要的bean,可以通过工具类获取需要的bean @Component public class ApplicationContextProvider ...

  7. java多线程同步synchronized——对象监视器

    1.synchronized关键字的作用域有二种: 1)是某个对象实例内,synchronized aMethod(){}可以防止多个线程同时访问这个对象的synchronized方法(如果一个对象有 ...

  8. java多线程发布订阅,多线程实现发布订阅升级版---遗留问题

    昨天晚上遗留的两个问题 1.两个消费者消费消息都到100了,但是下图中的日志未打印出来 这个问题看代码 public classConsumerObjectOne implementsRunnable ...

  9. 对象的创建、发布、逸出

    对象创建.发布 对象的创建,许多新手也都耳熟能详了,例如 public class School {private static Person person = new Person(); } 但是因 ...

最新文章

  1. pycharm 运行控制台中文乱码解决办法
  2. 我对CTO的理解 CTO要有技术魅力
  3. 【Android UI设计与开发】第05期:引导界面(五)实现应用程序只启动一次引导界面
  4. 弹性均质圆环法计算过程_蚝油的加工工艺,蚝油总固形物(水分含量)计算公式,检测方法...
  5. android 模糊查询搜索框_彻底搞懂 iOS 和 Android 的设计差异
  6. 昨天521表白失败,我想用Python分析一下...表白记录和聊天记录
  7. 有关 google analytics
  8. nosuiteable Oracle,快给你的Kubernetes集群建一个只读账户(防止高管。。。后)
  9. 【java笔记】Collections集合工具类
  10. 研究多个基因间相互作用的频域方法
  11. python装b代码_教你装逼了:怎么样发布你的 Python 代码给别人 “pip install”
  12. 最简单DIY基于Android系统的万能蓝牙设备智能遥控器
  13. DW个人网站制作成品 简单个人静态HTML网页设计作品 DIV布局个人介绍网页模板代码
  14. html历史记录代码,js 实现浏览历史记录示例
  15. Windows下MongoDB数据库基本使用
  16. 使用R语言进行perMANVOA分析NMDS结果多个分组之间显著性
  17. 【算法】3 由招聘问题看随机算法
  18. 怎么让win10隐藏任务栏不会在程序有消息时自动弹出
  19. 西电工作笔记(部分)【10000字】【原创】
  20. 数据库增量备份 - DB INCR DB FULL

热门文章

  1. 「2022」字节-前端(互娱)笔试题
  2. FDTD仿真、解决微环透射率大于1 T大于1的问题
  3. Pinbar交易系统指标
  4. Excel常用技巧(1)——经纬度度分秒转换十进制度格式
  5. jdk11基础上安装jdk1.8总结
  6. testin 基础操作
  7. 使用CNN进行ROI提取(优化代码篇)
  8. 原油期货价格跌到1美元
  9. ubuntu下LaTeX的中文输入法与中文配置
  10. mmap函数详解(what?why?how?)