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 教程》(一)