内部可变状态escape实例
来源:互联网 发布:集邮网厅抢票软件 编辑:程序博客网 时间:2024/05/28 15:29
在高并发编程中,作者举了一个内部可变状态escape的例子,不是很理解,自己又测试了一下,跟大家共享一下。
class UnsafeStates {
private String[] states = new String[] {"AK","AL"};
public String[] getStates(){
return states;
}
}
public class UnsafeStatesTest {
public static void main(String[] args) {
UnsafeStates us = new UnsafeStates();
String[] argStr = us.getStates();
argStr[0] = "AKL";
System.out.println(us.getStates()[0]);
}
}
结果:
AKL
理解重点:
1.String的存储方式
一般String类中字符串值都是直接存值的。但像String str = "abc";这种场合下,其字符串值却是保存了一个指向存在栈中数据的引用!用new()来新建对象的,都会在堆中创建,而且其字符串是单独存值的,即使与栈中的数据相同,也不会与栈中的数据共享
2.unsafe的发布方式,将会使别的对象可以调用对象内部私有的属性,导致私有变量失去意义。
0 0
- 内部可变状态escape实例
- Java可变参数实例
- va_list 可变参数实例
- php 可变变量实例
- HDU 3605 Escape(最大流+状态压缩)
- HDU 3605 Escape 建图状态压缩
- hdu 3605 Escape 状态压缩+最大流
- HDU 3605 Escape(最大流+状态压缩)
- HDU 3605 Escape(最大流+状态压缩)
- hdu 3605 Escape (最大流+状态压缩)
- java对象可变状态风险
- Java 可变 数组 可变 参数 实例
- escape
- escape
- escape
- Escape
- Escape
- Escape
- Spring --- java定时器,Spring定时器和Quartz定时器
- 近几年行人检测文章推荐
- 中缀转后缀
- hadoop 模拟百度网盘
- AJAX实现DropDownList无刷新二级联动
- 内部可变状态escape实例
- Tomcat的部署,服务器不能联网时,会报错(DTD,dom4j)
- spring集成mvc时web工程配置文件的启动顺序
- XSS跨站之旅第02篇:XSS简单介绍及知识储备(1)
- django+nginx+uwsgi 文献参考
- Android Geofence的学习(一)翻译官方文档
- Java异常体系结构
- 选择性编译Boost组件
- ActiveRecord 的查询按照某个虚拟字段排序