Chinaunix首页 | 论坛 | 博客
  • 博客访问: 483260
  • 博文数量: 1496
  • 博客积分: 79800
  • 博客等级: 大将
  • 技术积分: 9940
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-09 13:22
文章分类

全部博文(1496)

文章存档

2011年(1)

2008年(1495)

我的朋友

分类:

2008-09-09 17:10:39

    一、从根本上认识java.lang.String类和String池

    首先,我建议先看看String类的源码实现,这是从本质上认识String类的根本出发点。从中可以看到:
    1、String类是final的,不可被继承。public final class String。

    2、String类是的本质是字符数组char[], 并且其值不可改变。private final char value[];
    然后打开String类的API文档,可以发现:

    3、String类对象有个特殊的创建的方式,就是直接指定比如String x = "abc","abc"就表示一个字符串对象。而x是"abc"对象的地址,也叫做"abc"对象的引用。

    4、String对象可以通过“+”串联。串联后会生成新的字符串。也可以通过concat()来串联,这个后面会讲述。

    5、创建字符串的方式很多,归纳起来有三类:
    其一,使用new关键字创建字符串,比如String s1 = new String("abc");
    其二,直接指定。比如String s2 = "abc";
    其三,使用串联生成新的字符串。比如String s3 = "ab" + "c";

    6、运行时会维护一个String Pool(String池),Doc翻译很模糊“字符串缓冲区”。String池用来存放运行时中产生的各种字符串,并且池中的字符串的内容不重复。而一般对象不存在这个缓冲池,并且创建的对象仅仅存在于方法的堆栈区。下面是个系统内存示意图:

[1]  

【责编:Zenghui】

--------------------next---------------------

阅读(116) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~