读书笔记:《Java2 教程》(七)

String

 

从这部分开始,我们来看一下Java中一些核心的class。这些核心的类被封装在java.lang package中。

首先,从String开始。

String 是最常用的类之一。它的构造形式有两种,一种是面向对象式的,采用调用构造函数的形式进行:

String  strDemo new String(……);

另一种形式则是通过赋值语句来完成的:

String  strDemo2 Test String!”;

这两种方式都是正确和有效的。当然,采用第一种方式可以利用String的多个构造函数来以多种方式构造出一个String对象。

 

知识要点:

1 String 对象中每个字符都是一个16位的unicode字符;(还记得char吗?)

2 String对象在创建之后是保持不变的。这个说法比较令人费解,从java api中,我们可以看到 String对象支持很多方法,其中就包括 concate() replaceAll()等,直观上的感觉,如果对String对象进行了这些操作,那么它一定是会被改变的啊。其实不然,我们举个例子:


/**

 * Created on 2005-06-07 by Alpha

 * Demonstrate the consistancy of the String Class

 */

import java.lang.*;

 

public class Demo

{

    /**

     *

     * @param args  the parameters

     */

    public static void main(String[] args)

    {

        /**

         * define a string object

         */

        String strDemo = "This is a demo string.";

       

        strDemo.concat("string added.");

        

        System.out.println(strDemo);

        

    }

}


 

你是不是会认为结果是

This is a demo string. String added.  


其实不然,结果是:
This is a demo string. 
 


这是为什么呢?难道concat方法没有正确执行吗?不是的。这正是说明了String在创建后不变的特性。在java/lang/string.class中,String是这样被定义的:

 

public final class String

    implements java.io.Serializable, Comparable, CharSequence

 

还记得final的含义吗?对了,正是它决定了String的性质。在例子中,strDemo.concat("string added.")语句被正确的执行了,其结果是创建了一个新的String 对象,但是strDemo是没有受到影响的。

 

String对象常用的方法有:

public  int     length()     返回String对象长度

public  char    chatAt()     返回在某个位置上的字符

public  String  concate()    String尾部连接

public  String  replace()    替换

public  String  substring()  取子串

 

 

为了方便的修改String 对象,Java引入了一个StringBuffer类,它是可以改变的。除此之外,在使用上与String 类似。

 

详细的内容可以查看java  api 文档。

 

 

 

相关文章:
读书笔记:《Java2 教程》(一)

读书笔记:《Java2 教程》(

读书笔记:《Java2 教程》(三)

读书笔记:《Java2 教程》(四)

读书笔记:《Java2 教程》(五)

读书笔记:《Java2 教程》(六)

原文地址:https://www.cnblogs.com/A1240/p/169525.html