您的位置:首页 > 编程语言 > Java开发

Java基础回顾 : String类的内存分析

2016-05-23 16:20 330 查看
String类的内存分析:

在Java之中有一种称为共享设计模式的概念.在JVM的底层会存在有一个对象池,在对象池之中会保留有已经开辟空间的对象,那么String就是利用了对象池的概念,当利用直接赋值的形式定义一个字符串时,第一次会开辟新的堆内存空间,但是随后会将此对象保存在池之中,如果下次同样使用直接赋值的形式,那么会直接取出对象池中保存的对象继续使用,并且不会开辟新的内存空间.

String str1 = "Hello";
String str2 = "Hello";
String str3 = "Hello";




String类对象两种实例化的区别?

1.构造方法:会产生两块内存空间,其中一块将成为垃圾,并且不会自动入池保存,用记可以通过intern()方法手工入池;

2.直接赋值:只会产生一块堆内存空间,可以自动入池保存.

String str = new String("Hello");



★ . 另外需要说明的是,当字符串一旦声明之后,那么字符串的内容是不可能被改变的.当我们使用字符串连接符("+")进行操作时,改变的不是字符串本身,只是对字符串进行了重新组合生成新的字符串,新的字符串内存地址和原来的内存地址不同.改变的只是指向的内存地址.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: