深入了解Java的String

欢迎进入Java社区论坛,与200万技术人员互动交流 >>进入

一、从根本上认识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、Java运行时会维护一个String Pool(String池),JavaDoc翻译很模糊“字符串缓冲区”。String池用来存放运行时中产生的各种字符串,并且池中的字符串的内容不重复。而一般对象不存在这个缓冲池,并且创建的对象仅仅存在于方法的堆栈区。下面是个系统内存示意图:

[1][2]

只要看得开放得下,何愁没有快乐的春莺在啼鸣,

深入了解Java的String

相关文章:

你感兴趣的文章:

标签云: