知识大全 深入了解Java的String
Posted 知
篇首语:花门楼前见秋草,岂能贫贱相看老。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 深入了解Java的String相关的知识,希望对你有一定的参考价值。
深入了解Java的String 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
一 从根本上认识java lang String类和String池
首先 我建议先看看String类的源码实现 这是从本质上认识String类的根本出发点 从中可以看到 String类是final的 不可被继承 public final class String
String类是的本质是字符数组char[] 并且其值不可改变 private final char value[]; 然后打开String类的API文档 可以发现
String类对象有个特殊的创建的方式 就是直接指定比如String x = abc abc 就表示一个字符串对象 而x是 abc 对象的地址 也叫做 abc 对象的引用
String对象可以通过 + 串联 串联后会生成新的字符串 也可以通过concat()来串联 这个后面会讲述
创建字符串的方式很多 归纳起来有三类 其一 使用new关键字创建字符串 比如String s = new String( abc ); 其二 直接指定 比如String s = abc ; 其三 使用串联生成新的字符串 比如String s = ab + c ;
Java运行时会维护一个String Pool(String池) JavaDoc翻译很模糊 字符串缓冲区 String池用来存放运行时中产生的各种字符串 并且池中的字符串的内容不重复 而一般对象不存在这个缓冲池 并且创建的对象仅仅存在于方法的堆栈区 下面是个系统内存示意图
二 String对象的创建
String对象的创建也很讲究 关键是要明白其原理 原理 当使用任何方式来创建一个字符串对象s时 Java运行时(运行中JVM)会拿着这个X在String池中找是否存在内容相同的字符串对象 如果不存在 则在池中创建一个字符串s 否则 不在池中添加
原理 Java中 只要使用new关键字来创建对象 则一定会(在堆区或栈区)创建一个新的对象
原理 使用直接指定或者使用纯字符串串联来创建String对象 则仅仅会检查维护String池中的字符串 池中没有就在池中创建一个 有则罢了!但绝不会在堆栈区再去创建该String对象
原理 使用包含变量的表达式来创建String对象 则不仅会检查维护String池 而且还会在堆栈区创建一个String对象
另外 String的intern()方法是一个本地方法 定义为public native String intern(); intern()方法的价值在于让开发者能将注意力集中到String池上 当调用 intern 方法时 如果池已经包含一个等于此 String 对象的字符串(该对象由 equals(Object) 方法确定) 则返回池中的字符串 否则 将此 String 对象添加到池中 并且返回此 String 对象的引用
cha138/Article/program/Java/ky/201311/28768相关参考
深入了解String 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!一从根本上认识javalangS
知识大全 面向Java开发人员的Scala指南: 深入了解Scala并发性 了解 Scala 如何简化并发编
面向Java开发人员的Scala指南:深入了解Scala并发性了解Scala如何简化并发编 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后
知识大全 面向Java开发人员的Scala指南: 深入了解Scala并发性 了解 actor 如何提供新的应
面向Java开发人员的Scala指南:深入了解Scala并发性了解actor如何提供新的应 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后
Java当中的String数据类型 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! java中St
不再纠结Java中的String类 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb
全面解析Java中的String数据类型 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 首先Str
知识大全 JAVA对象转为Java String的几种常用方法
JAVA对象转为JavaString的几种常用方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 Java中的String、StringBuffer和Math类
Java中的String、StringBuffer和Math类 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来
java.lang.String类运算符重载 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Gi
知识大全 用Java写出一段string和stringbuffer的代码
用Java写出一段string和stringbuffer的代码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来