知识大全 深入了解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

深入了解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数据类型

Java当中的String数据类型  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  java中St

知识大全 不再纠结Java中的String类

不再纠结Java中的String类  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb

知识大全 全面解析Java中的String数据类型

全面解析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类运算符重载

java.lang.String类运算符重载  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Gi

知识大全 用Java写出一段string和stringbuffer的代码

用Java写出一段string和stringbuffer的代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来