博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
高并发编程之发布与溢出
阅读量:4974 次
发布时间:2019-06-12

本文共 520 字,大约阅读时间需要 1 分钟。

发布定义:

指一个对象可以在对象的作用域范围以外使用。

溢出定义:

当某个不应该发布的对象被发布时称为溢出。

 

最常见的案例是将对象的引用保存在共有的静态变量之中

for example:

public static  set<Secrect>  sets;

public void init(){

this.sets=new HashSet<Secrect>();

}

这个时候当发布Secrect对象时,其实会间接发布sets对象。因为任何代码都可以遍历这个sets对象并获取到新发布的secrect对象。

 

 

再看一个案例:

 

public class unsafeClass{

private String[] states=new String[]{"a","b"};

public String[] getState(){

return states;

}

如果按照上述方式发布states就会出现问题,因为任何调用者都可以修改states内容;这个时候其实states已经溢出了它所在的作用域,这个本应是私有的变量被发布了

 

}

转载于:https://www.cnblogs.com/zhangfengshi/p/9558497.html

你可能感兴趣的文章
spring的关于数据源的datasource接口的深入理解
查看>>
PHP 事件驱动框架 实践
查看>>
一 vue 基本语法总结(参考api)!!!
查看>>
SNMP协议
查看>>
Python笔记【7】_反射getattr&hasattr&setattr&delattr
查看>>
u-boot中的两个数据结构gd_t和bd_t
查看>>
Android中处理崩溃异常和记录日志
查看>>
windows Flask小记(1)安装和配置虚拟环境
查看>>
jsp页面应用Java类
查看>>
UIActionSheet的简单使用
查看>>
【洛谷 P2485】 [SDOI2011]计算器 (BSGS)
查看>>
Nginx Location
查看>>
十四、关键字
查看>>
html信息提示框
查看>>
词频统计 WordCounter 软工个人项目
查看>>
实战项目:通过当当API将订单抓取到SAP(二)
查看>>
Silverlight学习笔记(1)——样式的运用
查看>>
JavaScript函数
查看>>
angular5 使用 ueditor
查看>>
基于HTML5的可预览多图片Ajax上传
查看>>