iscsi网络存储
2014-03-09 11:44
274 查看
public static void main(String[] args) {
String s1 = new StringBuilder("计算机").append("啊").toString();
System.out.println(s1.intern() == s1);
String s2 = new StringBuilder("ja").append("va").toString();
System.out.println(s2.intern() == s2);
}
这段代码在JDK1.6上运行,会得到2个false,而在1.7上,会得到一个true 一个false。
原因来自于
1.6下:intern()方法会把首次遇到的字符串实例复制到永久代中,返回永久代中这个字符串实例的引用。而由StringBuilder创建的实例在Java堆中,必然不是同一个引用。返回false.
1.7下:intern()不会复制实例,只是在常量池中记录首次出现的实力引用。所以intern()返回的引用和StringBuilder创建的字符串实例是同一个。 s2为什么会返回false呢?因为“java”这个字符串在执行StringBuilder.toString()前就出现过,已经有他的引用了。所以不是同一个对象。
String s1 = new StringBuilder("计算机").append("啊").toString();
System.out.println(s1.intern() == s1);
String s2 = new StringBuilder("ja").append("va").toString();
System.out.println(s2.intern() == s2);
}
这段代码在JDK1.6上运行,会得到2个false,而在1.7上,会得到一个true 一个false。
原因来自于
1.6下:intern()方法会把首次遇到的字符串实例复制到永久代中,返回永久代中这个字符串实例的引用。而由StringBuilder创建的实例在Java堆中,必然不是同一个引用。返回false.
1.7下:intern()不会复制实例,只是在常量池中记录首次出现的实力引用。所以intern()返回的引用和StringBuilder创建的字符串实例是同一个。 s2为什么会返回false呢?因为“java”这个字符串在执行StringBuilder.toString()前就出现过,已经有他的引用了。所以不是同一个对象。
相关文章推荐
- Openfiler2.99搭建ISCSI网络存储-EXSI5.0挂载
- ISCSI网络存储
- centos 挂载iscsi 连接网络存储 vnxe
- CentOS 6.3下配置iSCSI网络存储
- 局域网模拟网络存储:linux iscsi store windows/linux client
- iscsi网络存储服务
- iscsi 挂载网络存储及存储访问
- 第17章 使用iSCSI服务部署网络存储
- ESXServer使用Openfiler搭建的Soft RAID模式ISCSI网络存储
- SAN iSCSI网络存储配置+ iSCSI网络集群
- linux搭建gfs系统--iscsi+GFS实现网络存储
- centos7配置iscsi网络存储
- ISCSI网络存储
- 使用iSCSI服务部署网络存储
- ISCSI网络存储服务
- linux 下iscsi网络存储配置
- Linux搭建GFS系统--iSCSI+GFS实现网络存储
- 基于IP SAN 的网络存储 ISCSI
- 4.6.1 ISCSI网络存储
- CentOS 6配置iSCSI网络存储