string str= new string ("hello");
会产生堆内存垃圾空间,且没有保存到string对象池中。
如何将其保存到对象池中?
string str= new string ("hello").intern( );
字符串两种实例化的区别:
直接赋值:只开辟一块堆内存,而且内容保存在对象池中,以供下次使用。
构造方法:会开辟两块堆内存,并产生垃圾堆空间,而且不能直接保存在对象池中
string str= new string ("hello");
会产生堆内存垃圾空间,且没有保存到string对象池中。
如何将其保存到对象池中?
string str= new string ("hello").intern( );
字符串两种实例化的区别:
直接赋值:只开辟一块堆内存,而且内容保存在对象池中,以供下次使用。
构造方法:会开辟两块堆内存,并产生垃圾堆空间,而且不能直接保存在对象池中
1.采用直接赋值的模式进行String类对象的实例化操作,则该实例化对象(字符串内容)将自动保存在Java中的对象池中。下次创建对象是采用直接赋值的方式创建相同的字符串,则不会new新的东西,直接调用对象池中的对象。
2.使用构造方法创建字符串,则会产生垃圾空间,实际上也会对字符串共享产生一定的问题。
3.public String intern()方法可以实现将new出来的字符串常量放入共享池中。