【java基础】String Pool
来源:互联网 发布:17年10美国非农数据 编辑:程序博客网 时间:2024/05/16 18:17
String Pool正如它的名字所说明的那样,是在heap memory中保存一个字符串池.
使用String Pool主要的目的是用来节省存储空间,一般java程序中分布着大量的字符串变量.Java中String对象的内容是不能被修改的,因此,如果字符串的内容是一样,就没有必要再重新创建一个新字符串对象来表示,完全可以把已经存在的对象作为返回,这样可以有效剩下空间.这种方式需要在定义字符串的时候使用双引号,例如: String a = “alice”,如果使用String的构造方法String(String)这时JVM并不会将创建的对象放到String Pool当中,而是在heap中的其他位置分配空间去创建String对象.
可以看如下的小例子:
public class StringPool { public static void main(String[] args) { String a = "Alice"; //String Pool String b = "Bob"; //String Pool String a1 = "Alice"; //String Pool String b1 = new String("Bob"); // heap but not in string pool System.out.println("a == a1 ? " + (a == a1)); System.out.println("b == b1 ? " + (b == b1)); }}
执行的结果:
a == a1 ? true
b == b1 ? false
下面的图描述的不同创建方式所分配的内存空间的策略:
参考:
http://www.journaldev.com/797/what-is-java-string-pool
0 0
- 【java基础】String Pool
- JAVA String Pool
- Java String Pool
- JAVA中的String Pool .
- STRING POOL IN JAVA
- java String深入constant pool
- java里的String Pool
- 理解Java String和String Pool
- 理解Java String和String Pool
- Java中的String和String pool
- Java String intern() 和 String Pool
- java string pool(java 字符串池)
- Java String with Constant pool, heap&stack
- Java String Pool (字符串池)
- String Pool
- String Pool
- String Pool
- 深入理解Java String 池概念(String pool concept)
- Java语言实现CRC32校验
- React Native进行签名打包Apk
- Java枚举的7种常见用法
- [Python编程]正则表达式
- 创建简单springMVC项目
- 【java基础】String Pool
- 没有需求,我们开发个毛?
- html的经验
- spark1.6从hdfs上读取文件运行wordcount
- 简单字符设备驱动程序
- apache优化配置
- UVA oj 490 Rotating Sentences(字符串)
- maven基本命令(生成web项目)
- Java Zip 压缩、解压