欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java中字符串池,String池,共享池到底是怎么回事?

程序员文章站 2024-01-07 10:56:40
栈中有共享池的概念,(视频下载) (全部书籍)比如下面例子中,sz="hello";在栈中创建一个String对象引用变量sz,然后看看栈中有没有"hello",如果没有,则将"hello"存放进栈,并令sz指向”hello”,如果已经有”hello” 则直接令sz指向“hello”。对于int, ......

栈中有共享池的概念, 比如下面例子中,sz="hello";在栈中创建一个string对象引用变量sz,然后看看栈中有没有"hello",如果没有,则将"hello"存放进栈,并令sz指向”hello”,如果已经有”hello” 则直接令sz指向“hello”。对于int, float 类型的变量也是一样的有这种共享池的概念,

对于下面程序中:ss0 = new string( "hello" );是用new()来新建对象的, 存于堆中。每调用一次就会创建一个新的对象。当然从节省空间的角度来讲,肯定不如str="hello",有童鞋一定问,那要它有什么用?当时设计编译器时,为什么要设计它?马克-to-win,那我请问你,如果在你编程序时,你还不知道字符串内容怎么办?这时就用到new string(string original),所以,什么都有什么的用处。

(注意不能看调试窗口里value id,eclipse的问题)

java中字符串池,String池,共享池到底是怎么回事?

 
本章源码

public class test
{
    public static void main(string args[]) {
        string str, str1, ss0, ss1, ss2, ss3, ss4;
        str = "hello";
        str1 = "hello";
        ss0 = new string("hello");
。。。。。。。。。。。。。。。。
详情请见:http://www.mark-to-win.com/index.html?content=javabeginner/javaurl.html&chapter=javabeginner/javabeginner2_web.html#stringpoolsharepool