JDK帮助文档stringbuffer中文版

JavaTM Platform
Standard Ed. 6

java.lang
类 StringBuffer

java.lang.Object
  继承者 java.lang.StringBuffer
所有已实现的接口:
Serializable, Appendable, CharSequence

public final class StringBuffer
   
   
    
    extends 
    
    Object
   
   
   
   
    
    implements 
    
    Serializable, 
    
    CharSequence
   
   
 

线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。

可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。

StringBuffer 上的主要操作是 appendinsert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串缓冲区中。append 方法始终将这些字符添加到缓冲区的末端;而 insert 方法则在指定的点添加字符。

例如,如果 z 引用一个当前内容为 "start" 的字符串缓冲区对象,则此方法调用 z.append("le") 会使字符串缓冲区包含 "startle",而 z.insert(4, "le") 将更改字符串缓冲区,使之包含 "starlet"。

通常,如果 sb 引用 StringBuilder 的一个实例,则 sb.append(x) sb.insert(sb.length(), x) 具有相同的效果。

当发生与源序列有关的操作(如源序列中的追加或插入操作)时,该类只在执行此操作的字符串缓冲区上而不是在源上实现同步。

每个字符串缓冲区都有一定的容量。只要字符串缓冲区所包含的字符序列的长度没有超出此容量,就无需分配新的内部缓冲区数组。如果内部缓冲区溢出,则此容量自动增大。从 JDK 5 开始,为该类补充了一个单个线程使用的等价类,即 StringBuilder。与该类相比,通常应该优先使用 StringBuilder 类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。

从以下版本开始:
JDK1.0
另请参见:
StringBuilder, String, 序列化表格

构造方法摘要
StringBuffer()           构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。
StringBuffer(CharSequence seq)           public java.lang.StringBuilder(CharSequence seq) 构造一个字符串缓冲区,它包含与指定的 CharSequence 相同的字符。
StringBuffer(int capacity)           构造一个不带字符,但具有指定初始容量的字符串缓冲区。
StringBuffer(String str)           构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。
 
方法摘要
 StringBufferappend(boolean b)           将 boolean 参数的字符串表示形式追加到序列。
 StringBufferappend(char c)           将 char 参数的字符串表示形式追加到此序列。
 StringBufferappend(char[] str)           将 char 数组参数的字符串表示形式追加到此序列。
 StringBufferappend(char[] str, int offset, int len)           将 char 数组参数的子数组的字符串表示形式追加到此序列。
 StringBufferappend(CharSequence s)           将指定的 CharSequence 追加到该序列。
 StringBufferappend(CharSequence s, int start, int end)           将指定 CharSequence 的子序列追加到此序列。
 StringBufferappend(double d)           将 double 参数的字符串表示形式追加到此序列。
 StringBufferappend(float f)           将 float 参数的字符串表示形式追加到此序列。
 StringBufferappend(int i)           将 int 参数的字符串表示形式追加到此序列。
 StringBufferappend(long lng)           将 long 参数的字符串表示形式追加到此序列。
 StringBufferappend(Object obj)           追加 Object 参数的字符串表示形式。
 StringBufferappend(String str)           将指定的字符串追加到此字符序列。
 StringBufferappend(StringBuffer sb)           将指定的 StringBuffer 追加到此序列中。
 StringBufferappendCodePoint(int codePoint)           将 codePoint 参数的字符串表示形式追加到此序列。
 intcapacity()           返回当前容量。
 charcharAt(int index)           返回此序列中指定索引处的 char 值。
 intcodePointAt(int index)           返回指定索引处的字符(统一代码点)。
 intcodePointBefore(int index)           返回指定索引前的字符(统一代码点)。
 intcodePointCount(int beginIndex, int endIndex)           返回此序列指定文本范围内的统一代码点。
 StringBufferdelete(int start, int end)           移除此序列的子字符串中的字符。
 StringBufferdeleteCharAt(int index)           移除此序列指定位置的 char
 voidensureCapacity(int minimumCapacity)           确保容量至少等于指定的最小值。
 voidgetChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)           将字符从此序列复制到目标字符数组 dst
 intindexOf(String str)           返回第一次出现的指定子字符串在该字符串中的索引。
 intindexOf(String str, int fromIndex)           从指定的索引处开始,返回第一次出现的指定子字符串在该字符串中的索引。
 StringBufferinsert(int offset, boolean b)           将 boolean 参数的字符串表示形式插入此序列中。
 StringBufferinsert(int offset, char c)           将 char 参数的字符串表示形式插入此序列中。
 StringBufferinsert(int offset, char[] str)           将 char 数组参数的字符串表示形式插入此序列中。
 StringBufferinsert(int index, char[] str, int offset, int len)           将数组参数 str 的子数组的字符串表示形式插入此序列中。
 StringBufferinsert(int dstOffset, CharSequence s)           将指定 CharSequence 插入此序列中。
 StringBufferinsert(int dstOffset, CharSequence s, int start, int end)           将指定 CharSequence 的子序列插入此序列中。
 StringBufferinsert(int offset, double d)           将 double 参数的字符串表示形式插入此序列中。
 StringBufferinsert(int offset, float f)           将 float 参数的字符串表示形式插入此序列中。
 StringBufferinsert(int offset, int i)           将 int 参数的字符串表示形式插入此序列中。
 StringBufferinsert(int offset, long l)           将 long 参数的字符串表示形式插入此序列中。
 StringBufferinsert(int offset, Object obj)           将 Object 参数的字符串表示形式插入此字符序列中。
 StringBufferinsert(int offset, String str)           将字符串插入此字符序列中。
 intlastIndexOf(String str)           返回最右边出现的指定子字符串在此字符串中的索引。
 intlastIndexOf(String str, int fromIndex)           返回最后一次出现的指定子字符串在此字符串中的索引。
 intlength()           返回长度(字符数)。
 intoffsetByCodePoints(int index, int codePointOffset)           返回此序列中的一个索引,该索引是从给定 index 偏移 codePointOffset 个代码点后得到的。
 StringBufferreplace(int start, int end, String str)           使用给定 String 中的字符替换此序列的子字符串中的字符。
 StringBufferreverse()           将此字符序列用其反转形式取代。
 voidsetCharAt(int index, char ch)           将给定索引处的字符设置为 ch
 voidsetLength(int newLength)           设置字符序列的长度。
 CharSequencesubSequence(int start, int end)           返回一个新的字符序列,该字符序列是此序列的子序列。
 Stringsubstring(int start)           返回一个新的 String,它包含此字符序列当前所包含的字符子序列。
 Stringsubstring(int start, int end)           返回一个新的 String,它包含此序列当前所包含的字符子序列。
 StringtoString()           返回此序列中数据的字符串表示形式。
 voidtrimToSize()           尝试减少用于字符序列的存储空间。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

构造方法详细信息

StringBuffer

public StringBuffer()
构造一个其中不带字符的字符串缓冲区,其初始容量为 16 个字符。


StringBuffer

public StringBuffer(int capacity)
构造一个不带字符,但具有指定初始容量的字符串缓冲区。

参数:
capacity - 初始容量。
抛出:
NegativeArraySizeException - 如果 capacity 参数小于 0

StringBuffer

public StringBuffer(String str)
构造一个字符串缓冲区,并将其内容初始化为指定的字符串内容。该字符串的初始容量为 16 加上字符串参数的长度。

参数:
str - 缓冲区的初始内容。
抛出:
NullPointerException - 如果 strnull

StringBuffer

public StringBuffer(CharSequence seq)
public java.lang.StringBuilder(CharSequence seq) 构造一个字符串缓冲区,它包含与指定的 CharSequence 相同的字符。该字符串缓冲区的初始容量为 16 加上 CharSequence 参数的长度。

如果指定的 CharSequence 的长度小于或等于 0,则返回容量为 16 的空缓冲区。

参数:
seq - 要复制的序列。
抛出:
NullPointerException - 如果 seqnull
从以下版本开始:
1.5
方法详细信息

length

public int length()
返回长度(字符数)。

指定者:
接口 CharSequence 中的 length
返回:
此对象表示的当前字符序列的长度。

capacity

public int capacity()
返回当前容量。容量指可用于最新插入的字符的存储量,超过这一容量就需要再次进行分配。

返回:
当前容量。

ensureCapacity

public void ensureCapacity(int minimumCapacity)
确保容量至少等于指定的最小值。如果当前容量小于 minimumCapacity 参数,则可分配一个具有更大容量的新的内部数组。新容量的大小应大于:
  • minimumCapacity 参数。
  • 旧容量的两倍加 2
如果 minimumCapacity 参数为非正数,则此方法不执行任何操作并返回。

参数:
minimumCapacity - 所需的最小容量。

trimToSize

public void trimToSize()
尝试减少用于字符序列的存储空间。如果缓冲区大于保存当前字符序列所需的存储空间,则将重新调整其大小,以便更好地利用存储空间。调用此方法可能会影响后续调用 capacity() 方法时返回的值(但不要求如此)。

从以下版本开始:
1.5

setLength

public void setLength(int newLength)
设置字符序列的长度。序列将被更改为一个新的字符序列,新序列的长度由参数指定。对于每个小于 newLength 参数的非负索引 k,如果 k 小于原字符序列的长度,则新字符序列索引 k 处的字符与原字符序列索引 k 处的字符相同;否则,新字符序列索引 k 处的字符将是 null 字符 '\u0000'。换句话说,如果 newLength 参数小于当前长度,则长度将更改为指定的长度。

如果 newLength 参数大于或等于当前长度,则将追加有效的 null 字符 ('\u0000'),使长度满足 newLength 参数。

newLength 参数必须大于或等于 0

参数:
newLength - 新长度
抛出:
IndexOutOfBoundsException - 如果 newLength 参数为负。
另请参见:
length()

charAt

public char charAt(int index)
返回此序列中指定索引处的 char 值。第一个 char 值在索引 0 处,第二个在索引 1 处,依此类推,这类似于数组索引。

index 参数必须大于等于 0,且小于此序列的长度。

如果索引处指定的 char 值是一个代理项,则返回该代理项的值。

指定者:
接口 CharSequence 中的 charAt
参数:
index - 所需 char 值的索引。
返回:
指定索引处的 char 值。
抛出:
IndexOutOfBoundsException - 如果 index 为负或大于等于 length()
另请参见:
length()

codePointAt

public int codePointAt(int index)
返回指定索引处的字符(统一代码点)。该索引引用 char 值(Unicode 代码单元),其范围是从 0length() - 1

如果给定索引指定的 char 值属于高代理项范围,则后续索引小于此序列的长度;如果后续索引处的 char 值属于低代理项范围,则返回此代理项对 (surrogate pair) 对应的增补代码点。否则,返回给定索引处的 char 值。

参数:
index - char 值的索引。
返回:
index 处字符的代码点值。
从以下版本开始:
1.5

codePointBefore

public int codePointBefore(int index)
返回指定索引前的字符(统一代码点)。该索引引用 char 值(Unicode 代码单元),其范围是从 1length()

如果 (index - 1) 处的 char 值属于低代理项范围,则 (index - 2) 为非负;如果(index - 2) 处的 char 值属于高代理项范围,则返回该代理项对的增补代码点值。如果 index - 1 处的 char 值是未配对的低(高)代理项,则返回代理项值。

参数:
index - 应该返回的代码点之后的索引。
返回:
给定索引之前的 Unicode 代码点值。
从以下版本开始:
1.5

codePointCount

public int codePointCount(int beginIndex,
                          int endIndex)
返回此序列指定文本范围内的统一代码点。文本范围始于指定的 beginIndex,并扩展到索引 endIndex - 1 上的 char。因此文本范围的长度( char 形式)为 endIndex-beginIndex。该序列中每个未配对的代理项都被作为一个代码点进行计数。

参数:
beginIndex - 文本范围的第一个 char 的索引。
endIndex - 文本范围的最后一个 char 之后的索引。
返回:
指定文本范围内的 Unicode 代码点的数量。
从以下版本开始:
1.5

offsetByCodePoints

public int offsetByCodePoints(int index,
                              int codePointOffset)
返回此序列中的索引,该索引是从给定 index 偏移 codePointOffset 个代码点后得到的。 indexcodePointOffset 给出的文本范围内的不成对代理项是按一个代码点算作一个项进行计数的。

参数:
index - 将进行偏移的索引
codePointOffset - 用代码点计算的偏移量
返回:
此序列中的索引
从以下版本开始:
1.5

getChars

public void getChars(int srcBegin,
                     int srcEnd,
                     char[] dst,
                     int dstBegin)
将字符从此序列复制到目标字符数组 dst。要复制的第一个字符在索引 srcBegin 处;要复制的最后一个字符在索引 srcEnd-1 处。要复制的字符总数为 srcEnd-srcBegin。要复制到 dst 子数组的字符从索引 dstBegin 处开始,结束于以下索引:

 dstbegin + (srcEnd-srcBegin) - 1
 

参数:
srcBegin - 从此偏移量处开始复制。
srcEnd - 在此偏移量处停止复制。
dst - 用来保存复制数据的数组。
dstBegin - dst 中的偏移量。
抛出:
NullPointerException - 如果 dstnull
IndexOutOfBoundsException - 如果以下任意一项为 true:
  • srcBegin 为负
  • dstBegin 为负
  • srcBegin 参数大于 srcEnd 参数。
  • srcEnd 大于 this.length()
  • dstBegin+srcEnd-srcBegin 大于 dst.length

setCharAt

public void setCharAt(int index,
                      char ch)
将给定索引处的字符设置为 ch。此序列将被转换,以表示等同于原字符序列的新字符序列,唯一的不同在于新序列在 index 处包含 ch

index 参数必须大于等于 0,且小于此序列的长度。

参数:
index - 要修改的字符的索引。
ch - 新字符。
抛出:
IndexOutOfBoundsException - 如果 index 为负或大于等于 length()
另请参见:
length()

append

public StringBuffer append(Object obj)
追加 Object 参数的字符串表示形式。

参数将被转换成字符串,就好象使用了 String.valueOf 方法一样。然后,将所得字符串中的字符追加到此序列。

参数:
obj - 一个 Object
返回:
此对象的一个引用。
另请参见:
String.valueOf(java.lang.Object), append(java.lang.String)

append

public StringBuffer append(String str)
将指定的字符串追加到此字符序列。

按顺序追加 String 变量中的字符,使此序列增加该变量的长度。如果 strnull,则追加 4 个字符 "null"

假设此字符序列的长度在执行 append 方法前为 n。如果 k 小于 n,则新字符序列中索引 k 处的字符等于原序列中索引 k 处的字符;否则它等于参数 str 中索引 k-n 处的字符。

参数:
str - 一个 string。
返回:
此对象的一个引用。

append

public StringBuffer append(StringBuffer sb)
将指定的 StringBuffer 追加到此序列中。

按顺序将 StringBuffer 参数中的字符追加到此 StringBuffer 中,并使 StringBuffer 在长度上增加该参数的长度。如果 sbnull,则将 4 个 "null" 字符追加到此 StringBuffer 中。

在执行 append 方法前,让 StringBuffer 中包含的原有字符序列的长度为 n。如果 k 小于 n,则新字符序列中索引 k 处的字符等于原有字符序列中索引 k 处的字符;否则它等于参数 sb 中索引 k-n 处的字符。

该方法在 this(目标)对象上实现同步,但不在源(sb)上实现同步。

参数:
sb - 要追加的 StringBuffer
返回:
该对象的一个引用。
从以下版本开始:
1.4

append

public StringBuffer append(CharSequence s)
将指定的 CharSequence 追加到该序列。

按顺序将 CharSequence 参数中的字符追加到该序列中,使该序列增加该参数的长度。

该方法的结果与调用 this.append(s, 0, s.length()) 的结果完全相同;

该方法在 this(目标)对象上实现同步,但不在源(s)上实现同步。

如果 snull,则追加 4 个 "null" 字符。

指定者:
接口 Appendable 中的 append
参数:
s - 要追加的 CharSequence
返回:
此对象的一个引用。
从以下版本开始:
1.5

append

public StringBuffer append(CharSequence s,
                           int start,
                           int end)
将指定 CharSequence 的子序列追加到此序列。

按顺序追加参数 s 中的字符,即从索引 start 开始到索引 end 结束的此序列的内容。此序列增加的长度为 end - start

假设此字符序列的长度在执行 append 方法前为 n。如果 k 小于 n,则新字符序列中索引 k 处的字符等于原序列中索引 k 处的字符;否则它等于参数 s 中索引 k+start-n 处的字符。

如果 snull,则认为 s 参数包含 4 个字符 "null",并以此为根据追加字符。

指定者:
接口 Appendable 中的 append
参数:
s - 要追加的序列。
start - 要追加的子序列的起始索引。
end - 要追加的子序列的结束索引。
返回:
此对象的一个引用。
抛出:
IndexOutOfBoundsException 如果 startend 为负;或者 start 大于 end;或者 end 大于 s.length()
从以下版本开始:
1.5

append

public StringBuffer append(char[] str)
char 数组参数的字符串表示形式追加到此序列。

按顺序将数组参数中的字符追加到此序列的内容中。此字符将增加该参数的长度。

该方法的总体效果与以下操作过程的效果相同:先使用 String.valueOf(char[]) 方法将参数转换为字符串,然后将所得字符串的字符追加到此字符序列。

参数:
str - 要追加的字符。
返回:
此对象的一个引用。

append

public StringBuffer append(char[] str,
                           int offset,
                           int len)
char 数组参数的子数组的字符串表示形式追加到此序列。

char 数组 str 中的字符按顺序追加到此序列的内容中,从索引 offset 开始。此字符的长度将增加 len

该方法的最终效果与以下操作过程的效果相同:先使用 String.valueOf(char[]) 方法将参数转换为字符串,然后将所得字符串的字符追加到此字符序列。

参数:
str - 要追加的字符。
offset - 要追加的第一个 char 的索引。
len - 要追加的 char 的数量。
返回:
此对象的一个引用。

append

public StringBuffer append(boolean b)
boolean 参数的字符串表示形式追加到序列。

参数将被转换成字符串,就好象使用了 String.valueOf 方法一样。然后,将所得字符串中的字符追加到此序列。

参数:
b - 一个 boolean 值。
返回:
此对象的一个引用。
另请参见:
String.valueOf(boolean), append(java.lang.String)

append

public StringBuffer append(char c)
char 参数的字符串表示形式追加到此序列。

参数将被追加到此序列。此序列的长度将增加 1

该方法的最终效果与以下操作过程的效果相同:先使用 String.valueOf(char[]) 方法将参数转换为字符串,然后将所得字符串的字符追加到此字符序列。

指定者:
接口 Appendable 中的 append
参数:
c - 一个 char 值。
返回:
此对象的一个引用。

append

public StringBuffer append(int i)
int 参数的字符串表示形式追加到此序列。

参数将被转换成字符串,就好象使用了 String.valueOf 方法一样。然后,将所得字符串中的字符追加到此序列。

参数:
i - 一个 int 值。
返回:
此对象的一个引用。
另请参见:
String.valueOf(int), append(java.lang.String)

appendCodePoint

public StringBuffer appendCodePoint(int codePoint)
codePoint 参数的字符串表示形式追加到此序列。

参数将被追加到此序列。此序列的长度将增加 Character.charCount(codePoint)

该方法的最终效果与以下操作过程的效果相同:先使用 Character.toChars(int) 方法将 char 数组转换为字符串,然后将所得字符串的字符追加到此字符序列。

参数:
codePoint - 一个 Unicode 代码点
返回:
此对象的一个引用。
从以下版本开始:
1.5

append

public StringBuffer append(long lng)
long 参数的字符串表示形式追加到此序列。

参数将被转换成字符串,就好象使用了 String.valueOf 方法一样。然后,将所得字符串中的字符追加到此序列。

参数:
lng - 一个 long 值。
返回:
此对象的一个引用。
另请参见:
String.valueOf(long), append(java.lang.String)

append

public StringBuffer append(float f)
float 参数的字符串表示形式追加到此序列。

参数将被转换成字符串,就好象使用了 String.valueOf 方法一样。然后被所得字符串中的字符追加到此字符串序列。

参数:
f - 一个 float 值。
返回:
此对象的一个引用。
另请参见:
String.valueOf(float), append(java.lang.String)

append

public StringBuffer append(double d)
double 参数的字符串表示形式追加到此序列。

参数将被转换成字符串,就好象使用了 String.valueOf 方法一样。然后,将所得字符串中的字符追加到此序列。

参数:
d - 一个 double 值。
返回:
此对象的一个引用。
另请参见:
String.valueOf(double), append(java.lang.String)

delete

public StringBuffer delete(int start,
                           int end)
移除此序列的子字符串中的字符。该子字符串从指定的 start 处开始,一直到索引 end - 1 处的字符,如果不存在这种字符,则一直到序列尾部。如果 start 等于 end,则不发生任何更改。

参数:
start - 起始索引(包含)。
end - 结束索引(不包含)。
返回:
此对象。
抛出:
StringIndexOutOfBoundsException - 如果 start 为负、大于 length() 或大于 end
从以下版本开始:
1.2

deleteCharAt

public StringBuffer deleteCharAt(int index)
移除此序列指定位置的 char。此序列将缩短一个 char

注:如果给定索引处的字符是增补字符,则此方法将不会移除整个字符。如果需要准确处理增补字符,那么可以通过调用 Character.charCount(thisSequence.codePointAt(index))(用此序列取代 thisSequence)来确定要移除的 char 的数量。

参数:
index - 要移除的 char 的索引
返回:
此对象。
抛出:
StringIndexOutOfBoundsException - 如果 index 为负或大于等于 length()
从以下版本开始:
1.2

replace

public StringBuffer replace(int start,
                            int end,
                            String str)
使用给定 String 中的字符替换此序列的子字符串中的字符。该子字符串从指定的 start 处开始,一直到索引 end - 1 处的字符,如果不存在这种字符,则一直到序列尾部。先将子字符串中的字符移除,然后将指定的 String 插入 start。(如果需要,序列将延长以适应指定的字符串。)

参数:
start - 起始索引(包含)。
end - 结束索引(不包含)。
str - 将替换原有内容的字符串。
返回:
此对象。
抛出:
StringIndexOutOfBoundsException - 如果 start 为负、大于 length() 或大于 end
从以下版本开始:
1.2

substring

public String substring(int start)
返回一个新的 String,它包含此字符序列当前所包含的字符子序列。该子字符串始于指定索引处的字符,一直到此字符串末尾。

参数:
start - 起始索引(包含)。
返回:
新的字符串。
抛出:
StringIndexOutOfBoundsException - 如果 start 小于 0,或大于此对象的长度。
从以下版本开始:
1.2

subSequence

public CharSequence subSequence(int start,
                                int end)
返回一个新的字符序列,该字符序列是此序列的子序列。

调用该方法的形式为:

 sb.subSequence(begin, end)
与下列方法调用完全相同:
 sb.substring(begin, end)
提供此方法是为了使此类能够实现 CharSequence 接口。

指定者:
接口 CharSequence 中的 subSequence
参数:
start - 起始索引(包含)。
end - 结束索引(不包含)。
返回:
指定子序列。
抛出:
IndexOutOfBoundsException - 如果 startend 为负数;如果 end 大于 length(),或者 start 大于 end
从以下版本开始:
1.4

substring

public String substring(int start,
                        int end)
返回一个新的 String,它包含此序列当前所包含的字符子序列。该子字符串从指定的 start 处开始,一直到索引 end - 1 处的字符。

参数:
start - 起始索引(包含)。
end - 结束索引(不包含)。
返回:
新的字符串。
抛出:
StringIndexOutOfBoundsException - 如果 startend 为负数或大于 length();如果 start 大于 end
从以下版本开始:
1.2

insert

public StringBuffer insert(int index,
                           char[] str,
                           int offset,
                           int len)
str 数组参数的子数组的字符串表示形式插入此序列中。其中子数组从指定的 offset 开始,包含 lenchar。子数组的字符将被插入 index 所指示的位置。此序列的长度将增加 lenchar

参数:
index - 要插入子数组中的位置。
str - 一个 char 数组。
offset - 将插入子数组中的第一个 char 的索引。
len - 将插入子数组中的 char 的数量。
返回:
此对象
抛出:
StringIndexOutOfBoundsException - 如果 index 为负或大于 length();或者 offsetlen 为负;或者 (offset+len) 大于 str.length
从以下版本开始:
1.2

insert

public StringBuffer insert(int offset,
                           Object obj)
Object 参数的字符串表示形式插入此字符序列中。

第二个参数将被转换成字符串,就好象使用了 String.valueOf 方法一样。然后,将所得字符串中的字符追加到此序列。

offset 参数必须大于等于 0,且小于等于此序列的长度。

参数:
offset - 偏移量。
obj - 一个 Object
返回:
此对象的一个引用。
抛出:
StringIndexOutOfBoundsException - 如果 offset 参数无效。
另请参见:
String.valueOf(java.lang.Object), insert(int, java.lang.String), length()

insert

public StringBuffer insert(int offset,
                           String str)
将字符串插入此字符序列中。

按顺序将 String 参数中的字符插入此序列中的指定位置,将该位置处原来的字符向后移,此序列将增加该参数的长度。如果 strnull,则向此序列中追加 4 个字符 "null"

新字符序列在索引 k 处的字符有以下几种情况:

  • 如果 k 小于 offset,则等于原字符序列中索引 k 处的字符。
  • 如果 k 不小于 offset 但小于 offset+str.length(),则等于 str 参数中索引 k-offset 中的字符。
  • 如果 k 不小于 offset+str.length(),则等于原字符序列中索引 k-str.length() 处的字符

offset 参数必须大于等于 0,且小于等于此序列的长度。

参数:
offset - 偏移量。
str - 一个 string。
返回:
此对象的一个引用。
抛出:
StringIndexOutOfBoundsException - 如果 offset 参数无效。
另请参见:
length()

insert

public StringBuffer insert(int offset,
char[] str)
char 数组参数的字符串表示形式插入此序列中。

数组参数的字符将被插入此序列中 offset 所指示的位置处。此字符将增加该参数的长度。

该方法的最终效果与以下操作过程的效果相同:先使用 String.valueOf(char[]) 方法将参数转换为字符串,然后将所得字符串的字符插入到此字符序列中 offset 所指示的位置。

参数:
offset - 偏移量。
str - 一个字符数组。
返回:
此对象的一个引用。
抛出:
StringIndexOutOfBoundsException - 如果 offset 参数无效。

insert

public StringBuffer insert(int dstOffset,
CharSequence s)
将指定 CharSequence 插入此序列中。

按顺序将 CharSequence 参数中的字符插入此序列中的指定位置,位于该位置处的原来的字符则将向后推移,此序列将增加该参数的长度。

此方法的最终效果与调用此对象的 insert(dstOffset, s, 0, s.length()) 方法的效果完全相同。

如果 snull,则向此序列中追加 4 个字符 "null"

参数:
dstOffset - 偏移量。
s - 要插入的序列。
返回:
此对象的一个引用。
抛出:
StringIndexOutOfBoundsException - 如果 offset 参数无效。
从以下版本开始:
1.5

insert

public StringBuffer insert(int dstOffset,
                           CharSequence s,
                           int start,
                           int end)
将指定 CharSequence 的子序列插入此序列中。

参数 s 中,由 startend 指示的子序列将按顺序被插入此序列指定的目标偏移量处,位于该位置的任何原有字符都将向后移。序列的长度将增加 end - start

此字符序列在索引 k 处的字符将有以下几种情况:

  • 如果 k 小于 dstOffset,则等于原字符序列中索引 k 处的字符
  • 如果 k 大于等于 dstOffset 但小于 dstOffset+end-start,则等于 s 参数中索引 k+start-dstOffset 处的字符
  • 如果 k 大于等于 dstOffset+end-start,则等于此序列中索引 k-(end-start) 处的字符

dstOffset 参数必须大于等于 0,并小于等于此序列的长度。

start 参数必须为非负,但不得大于 end

end 数必须大于等于 start,且小于等于 s 的长度。

如果 snull,则认为 s 参数包含 4 个字符 "null",并以此为根据插入字符。

参数:
dstOffset - 此序列中的偏移量。
s - 要插入的序列。
start - 要插入的子序列的起始索引。
end - 要插入的子序列的结束索引。
返回:
此对象的一个引用。
抛出:
IndexOutOfBoundsException - 如果 dstOffset 为负或大于 this.length();或者 start end 为负;或者 start 大于 end;或者 end 大于 s.length()
从以下版本开始:
1.5

insert

public StringBuffer insert(int offset,
                           boolean b)
boolean 参数的字符串表示形式插入此序列中。

第二个参数将被转换成字符串,就好象使用了 String.valueOf 方法一样。然后,将所得字符串中的字符追加到此序列。

offset 参数必须大于等于 0,且小于等于此序列的长度。

参数:
offset - 偏移量。
b - 一个 boolean 值。
返回:
此对象的一个引用。
抛出:
StringIndexOutOfBoundsException - 如果 offset 参数无效。
另请参见:
String.valueOf(boolean), insert(int, java.lang.String), length()

insert

public StringBuffer insert(int offset,
                           char c)
char 参数的字符串表示形式插入此序列中。

第二个参数将被插入此序列中 offset 指示的位置处。此序列的长度将增加 1。

该方法的最终效果与以下操作的效果相同:先使用 String.valueOf(char) 方法将参数转换为字符串,然后将所得字符串中的字符插入此字符序列中 offset 指定的位置处。

offset 参数必须大于等于 0,且小于等于此序列的长度。

参数:
offset - 偏移量。
c - 一个 char 值。
返回:
此对象的一个引用。
抛出:
StringIndexOutOfBoundsException - 如果 offset 参数无效。
另请参见:
length()

insert

public StringBuffer insert(int offset,
                           int i)
int 参数的字符串表示形式插入此序列中。

第二个参数将被转换成字符串,就好象使用了 String.valueOf 方法一样。然后,将所得字符串中的字符追加到此序列。

offset 参数必须大于等于 0,且小于等于此序列的长度。

参数:
offset - 偏移量。
i - 一个 int 值。
返回:
此对象的一个引用。
抛出:
StringIndexOutOfBoundsException - 如果 offset 参数无效。
另请参见:
String.valueOf(int), insert(int, java.lang.String), length()

insert

public StringBuffer insert(int offset,
                           long l)
long 参数的字符串表示形式插入此序列中。

第二个参数将被转换成字符串,就好象使用了 String.valueOf 方法一样。然后,将所得字符串中的字符追加到此序列中 offset 指示的位置处。

offset 参数必须大于等于 0,且小于等于此序列的长度。

参数:
offset - 偏移量。
l - 一个 long 值。
返回:
此对象的一个引用。
抛出:
StringIndexOutOfBoundsException - 如果 offset 参数无效。
另请参见:
String.valueOf(long), insert(int, java.lang.String), length()

insert

public StringBuffer insert(int offset,
                           float f)
float 参数的字符串表示形式插入此序列中。

第二个参数将被转换成字符串,就好象使用了 String.valueOf 方法一样。然后,将所得字符串中的字符追加到此序列。

offset 参数必须大于等于 0,且小于等于此序列的长度。

参数:
offset - 偏移量。
f - 一个 float 值。
返回:
此对象的一个引用。
抛出:
StringIndexOutOfBoundsException - 如果 offset 参数无效。
另请参见:
String.valueOf(float), insert(int, java.lang.String), length()

insert

public StringBuffer insert(int offset,
                           double d)
double 参数的字符串表示形式插入此序列中。

第二个参数将被转换成字符串,就好象使用了 String.valueOf 方法一样。然后,将所得字符串中的字符追加到此序列。

offset 参数必须大于等于 0,且小于等于此序列的长度。

参数:
offset - 偏移量。
d - 一个 double 值。
返回:
此对象的一个引用。
抛出:
StringIndexOutOfBoundsException - 如果 offset 参数无效。
另请参见:
String.valueOf(double), insert(int, java.lang.String), length()

indexOf

public int indexOf(String str)
返回第一次出现的指定子字符串在该字符串中的索引。返回的整数是满足以下条件的最小 k 值:
 this.toString().startsWith(str, k)
 

参数:
str - 任意字符串。
返回:
如果字符串参数是作为一个子字符串出现在该对象中,则返回第一个这样的子字符串的第一个字符的索引;如果它不是作为一个子字符串出现,则返回 -1
抛出:
NullPointerException - 如果 strnull
从以下版本开始:
1.4

indexOf

public int indexOf(String str,
                   int fromIndex)
从指定的索引处开始,返回第一次出现的指定子字符串在该字符串中的索引。返回的整数是满足以下条件的最小 k 值:
     k >= Math.min(fromIndex, str.length()) &&
                   this.toString().startsWith(str, k)
 
如果不存在这样的 k 值,则返回 -1。

参数:
str - 要搜索的子字符串。
fromIndex - 搜索开始处的索引。
返回:
从指定的索引处开始,返回第一次出现的指定子字符串在该字符串中的索引。
抛出:
NullPointerException - 如果 strnull
从以下版本开始:
1.4

lastIndexOf

public int lastIndexOf(String str)
返回最右边出现的指定子字符串在此字符串中的索引。将最右边的空字符串 "" 视为出现在索引值 this.length() 处。返回的索引是满足以下条件的最大 k 值:
 this.toString().startsWith(str, k)
 

参数:
str - 要搜索的子字符串。
返回:
如果在该对象中字符串参数是作为一个子字符串出现多次,则返回最后一个这种子字符串的第一个字符。如果它不是作为一个子字符串出现,则返回 -1
抛出:
NullPointerException - 如果 strnull
从以下版本开始:
1.4

lastIndexOf

public int lastIndexOf(String str,
                       int fromIndex)
返回最后一次出现的指定子字符串在此字符串中的索引。返回的整数是满足以下条件的最大 k 值:
     k <= Math.min(fromIndex, str.length()) &&
                   this.toString().startsWith(str, k)
 
如果不存在这样的 k 值,则返回 -1。

参数:
str - 要搜索的子字符串。
fromIndex - 搜索开始处的索引。
返回:
最后一次出现的指定子字符串在此字符串中的索引。
抛出:
NullPointerException - 如果 strnull
从以下版本开始:
1.4

reverse

public StringBuffer reverse()
将此字符序列用其反转形式取代。如果序列中存在代理项对 (surrogate pair),在 reverse 操作中将其作为单个字符处理。因此,高-低代理项的顺序不会反转。假设 n 为执行 reverse 方法前此字符序列的字符长度(并非 char 值的长度),则新字符序列中索引 k 处的字符将等于原字符序列索引 n-k-1 处的字符。

注意,进行 reverse 操作后,执行操作前未成对的低代理项和高代理项将成为代理项对。例如,反转 "\uDC00\uD800" 将生成有效的代理项对 "\uD800\uDC00"。

返回:
此对象的一个引用。
从以下版本开始:
JDK1.0.2

toString

public String toString()
返回此序列中数据的字符串表示形式。分配一个新的 String 对象,并将它初始化,以包含当前由此对象表示的字符串序列。然后返回此 String。对此序列的后续更改不影响该 String 的内容。

指定者:
接口 CharSequence 中的 toString
返回:
此字符序列的字符串表示形式。

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
写在前面的话 引言 1. 前提 2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体 8. 源代码 9. 编码样式 10. Java版本 11. 课程和培训 12. 错误 13. 封面设计 14. 致谢 第1章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 实现方案的隐藏 1.4 方案的重复使用 1.5 继承:重新使用接口 1.5.1 改善基础类 1.5.2 等价和类似关系 1.6 多形对象的互换使用 1.6.1 动态绑定 1.6.2 抽象的基础类和接口 1.7 对象的创建和存在时间 1.7.1 集合与继承器 1.7.2 单根结构 1.7.3 集合库与方便使用集合 1.7.4 清除时的困境:由谁负责清除? 1.8 违例控制:解决错误 1.9 多线程 1.10 永久性 1.11 Java和因特网 1.11.1 什么是Web? 1.11.2 客户端编程 1.11.3 服务器端编程 1.11.4 一个独立的领域:应用程序 1.12 分析和设计 1.12.1 不要迷失 1.12.2 阶段0:拟出一个计划 1.12.3 阶段1:要制作什么? 1.12.4 阶段2:开始构建? 1.12.5 阶段3:正式创建 1.12.6 阶段4:校订 1.12.7 计划的回报 1.13 Java还是C++? 第2章 一切都是对象 2.1 用句柄操纵对象 2.2 必须创建所有对象 2.2.1 保存在什么地方 2.2.2 特殊情况:主类型 2.2.3 Java中的数组 2.3 绝对不要清除对象 2.3.1 作用域 2.3.2 对象的作用域 2.4 新建数据类型:类 2.4.1 字段和方法 2.5 方法、自变量和返回值 2.5.1 自变量列表 2.6 构建Java程序 2.6.1 名字的可见性 2.6.2 使用其他组件 2.6.3 static关键字 2.7 我们的第一个Java程序 2.8 注释和嵌入文档 2.8.1 注释文档 2.8.2 具体语法 2.8.3 嵌入 2.8.4 @see:引用其他类 2.8.5 类文档标记 2.8.6 变量文档标记 2.8.7 方法文档标记 2.8.8 文档示例 2.9 编码样式 2.10 总结 2.11 练习 第3章 控制程序流程 3.1 使用Java运算符 3.1.1 优先级 3.1.2 赋值 3.1.3 算术运算符 3.1.4 自动递增和递减 3.1.5 关系运算符 3.1.6 逻辑运算符 3.1.7 按位运算符 3.1.8 移位运算符 3.1.9 三元if-else运算符 3.1.10 逗号运算符 3.1.11 字串运算符 3.1.12 运算符常规操作规则 3.1.13 造型运算符 3.1.14 Java没有“sizeof” 3.1.15 复习计算顺序 3.1.16 运算符总结 3.2 执行控制 3.2.1 真和假 3.2.3 反复 3.2.6 中断和继续 3.2.7 切换 3.3 总结 3.4 练习 第4章 初始化和清除 4.1 由构建器保证初始化 4.2 方法过载 4.2.1 区分过载方法 4.2.2 主类型的过载 4.2.3 返回值过载 4.2.4 默认构建器 4.2.5 this关键字 4.3 清除:收尾和垃圾收集 4.3.1 finalize()用途何在 4.3.2 必须执行清除 4.4 成员初始化 4.4.1 规定初始化 4.4.2 构建器初始化 4.5 数组初始化 4.5.1 多维数组 4.6 总结 4.7 练习 第5章 隐藏实施过程 5.1 包:库单元 5.1.1 创建独一无二的包名 5.1.2 自定义工具库 5.1.3 利用导入改变行为 5.1.4 包的停用 5.2 Java访问指示符 5.2.1 “友好的” 5.2.2 public:接口访问 5.2.3 private:不能接触 5.2.4 protected:“友好的一种” 5.3 接口与实现 5.4 类访问 5.5 总结 5.6 练习 第6章 类再生 6.1 合成的语法 6.2 继承的语法 6.2.1 初始化基础类 6.3 合成与继承的结合 6.3.1 确保正确的清除 6.3.2 名字的隐藏 6.4 到底选择合成还是继承 6.6 递增开发 6.7 上溯造型 6.7.1 何谓“上溯造型”? 6.8 final关键字 6.8.1 final数据 6.8.2 final方法 6.8.3 final类 6.8.4 final的注意事项 6.9 初始化和类装载 6.9.1 继承初始化 6.10 总结 6.11 练习 第7章 多形性 7.1 上溯造型 7.1.1 为什么要上溯造型 7.2 深入理解 7.2.1 方法调用的绑定 7.2.2 产生正确的行为 7.2.3 扩展性 7.3 覆盖与过载 7.4 抽象类和
内容: 1 转换基本数据类型;运算符;计算阶乘; 2 复数类;java的参数传递;自定义形状类;类的加载顺序;方法和变量在继承时的覆盖和隐藏;排序类; 3数字 数字类;格式化数字;转换数字进制;生成随机数; 4数组和集合 使用Arrays类;动态调整数组长度;java为数据结构中的列表定义了一个接口类java.util.list同时提供了3个实现类,分别是ArrayList、Vector、LinkedList使用; 生成不重复的随机数序列;列表、集合与数组的互相转换;java为数据结构中的映射定义一个接口java.util.Map,有四个实现类HashMap Hashtable LinkedHashMap TreeMap用法和区别;对Map排序; 5字符串 使用String;判断一个字符串是否是合法的java标识符;使用StringBuffer;IP地址转化成整数,整数转化成IP地址; 十八为身份证格式验证;表达式解析器;字符串编码的转换;字符串对齐器;密码加密和验证(MD5); 制作命令行程序;使用正则表达式操作字符串;使用正则表达式验证电话号码的格式; 6java异常处理 throw和throws、try和catch;自定义异常类;使用finally;使用异常的技巧和原则; 7 IO输入输出流 获取文件的基本信息;列出指定目录下的文件,并可过滤文件;创建文件和目录;删除文件和目录;移动文件和目录; 复制文件和目录;一个简单的文件搜索器; 多种方式读文件内容, 按字节读取文件内容、按字符读取文件内容、按行读取文件内容、随机读取文件内容; 多种方式写文件内容, 按字节写文件内容、按字符写文件内容、按行写文件内容 ; 添加内容到文件结尾;文件的分割和合并;使用StreamTokenizer统计文件的字符数; 序列化和反序列化对象(将不长用的对象暂时持久化到文件中为对象的序列化,反之用时再把对象恢复到内存为反序列化); 控制对象的序列化和反序列化; 读jar包的资源文件;用zip格式压缩 和解压文件;操作Excel文件;操作Pdf文件;自定义日志文件类; 8线程 线程的启动 和停止;线程的互斥;线程的协作;线程join;生产者、消费者问题;线程的优先级;列出虚拟机中所有的线程;守护线程Daemon;线程池;一个死锁的例子; 定时器Timer:包括在指定时间执行任务,在指定时间之后执行任务以及在某个时间之后每隔时间段重复执行的任务; 9 Java GUI 日历:使用swing和awt实现一个图形化的日历可以查询星期、日期和年份信息(CalenderTrain.java);标准计算器(Callulator.java);更改组建外观,对日历设置几个显示外观(lookandfeel.java);自定义对话框DialogWindows;制作欢迎界面SplashWindow.java; 10 java图形 一个圆形按钮,当单击按钮时颜色发生变化CircleButton.java; 捕捉屏幕相当于键盘上的PrintScreen,CsreenCaputure.java; 缩放图片JPGTransforme.java; 2d图形,实现一个2d画板,能够画2d的线、圆和矩形,能指定图形的颜色并且能够撤销和恢复图形,command.java; 3d图形,Graphic3d.java; 一个时钟程序,能够显示星期和日期,变化背景和透明度Clock.java; 11 java多媒体 滚动的消息,实现一个简单的动画,具有滚动效果的文本消息RollingMessage.java; 三维弹球,BouncingB.java; 贪吃蛇游戏SnakeModel.java; java的声音处理,介绍java中如何处理声音,包括实现响铃,播放wav,au等音频文件,以及控制声音的大小和音量,Beep.java; 媒体播放器,JMFMediaPlayer.java; 12反射 是java程序开发的特征之一,允许java程序对自身进行检查,并能直接操作程序的内部属性; instanceof操作符,instanceof.java; 获取类的信息,ViewClassInfoJrame.java; 动态调用类的方法,CallMetod.java; 13、网络编程 获取URL信息,主要是使用URLConnection类,GetUrlInfo.java; web浏览器,webbrowser.java; 获取IP地址和域名,GetIpAddress.java; Http客户端,httpClient.java; 基本socket编程,介绍socket编程的基本步骤,启动socket服务器后,在打开socket的客户端,在输入框里输入消息发送到服务器,服务器受到消息后返回给客户端; Http服务器,httpsever.java; 一个支持多线程的服务器框架,GeneralServer.java; 代理服务器,ProxyServer.java; telnet客户端,访问系统的telnet服务实质上是与telnet服务建立socket连接,默认的telnet服务的端口是23,TelnetClient.java; UDP编程,包括收发udp报文; 聊天室服务器端,Chatserver.java;聊天室客户端,ChatClient.java; Ftp客户端,Mainframe.java; 14数据库 连接各种数据库DBconnector.java; 获得数据库和表的元数据Getmetadata.java; 查询和更新数据库OperateDatadb.java; 批处理,介绍如何一次执行一批sql语句,这些sql语句用插入、更新和删除等相关操作; 提交和回滚transaction.java; 使用PreparedStatement,动态执行sql语句,UsingPreparedStatement.java; 读写二进制数据,BinaryData.java; 读写Blob数据,blob数据常以二进制形式存储比较大的文件数据,如图片、视频文件等,本文介绍如何往数据库中读写blob数据,BlobData.java; 使用ResultSet更新数据库,UpdateWithResultSet.java; 使用RowSet,.UsingRowSet.java; 调用存储过程,StorageProcedure.java; 一个数据库连接池,JDBCInfo.java; 15 applet java可以编写两类程序,applications和applet,applications可以在控制台直接运行,与其他高级编程语言没有太大区别,而java的特色在于它具有编制小应用程序的功能,applet可以在internet上传输并在兼容java的web浏览器中运行的程序; applet时钟,Clock.java; 处理鼠标和键盘,用户在applet上按下键盘时,该实列能把按下的建显示出来,点击鼠标时能把鼠标事件和鼠标坐标显示出来,MouseAndKeyapplet.java; 英文打字小游戏,TypingGame.java; applet间通信; 汉诺塔游戏, 16 j2se5.0 新特性 自动装箱和拆箱; 新的for循环; 枚举类型; 静态导入; 格式化输出; 使用ProcessBuilder执行本地命令; 泛型编程; 监控和管理虚拟机;新的线程执行架构; 线程锁; 线程条件; 线程同步装置:semaphore countdownlatch cyclicbarrier exchanger; 17 java与xml 用dom处理xml文档; 用sax处理xml文档; 用xslt转换xml; 对象与xml的转换; 18 java mail 使用smtp协议发送简单邮件; 发送带附件的邮件; 给多人发送邮件; 使用pop3接收邮件; 19jsp与servlet 获取客户端的真实ip地址; jsp无刷新聊天室; 设置和读取cookie; 上传文件; 用servlet生成图形验证码; 用servlet实现分页查看数据库;
------------------------------------------------- 本教程由yyc,spirit整理 ------------------------------------------------- “Thinking in Java”详细目录   写在前面的话 引言 1. 前提 2. Java的学习 3. 目标 4. 联机文档 5. 章节 6. 练习 7. 多媒体CD-ROM 8. 源代码 9. 编码样式 10. Java版本 11. 课程和培训 12. 错误 13. 封面设计 14. 致谢 第1章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 实现方案的隐藏 1.4 方案的重复使用 1.5 继承:重新使用接口 1.5.1 改善基础类 1.5.2 等价和类似关系 1.6 多形对象的互换使用 1.6.1 动态绑定 1.6.2 抽象的基础类和接口 1.7 对象的创建和存在时间 1.7.1 集合与继承器 1.7.2 单根结构 1.7.3 集合库与方便使用集合 1.7.4 清除时的困境:由谁负责清除? 1.8 违例控制:解决错误 1.9 多线程 1.10 永久性 1.11 Java和因特网 1.11.1 什么是Web? 1.11.2 客户端编程 1.11.3 服务器端编程 1.11.4 一个独立的领域:应用程序 1.12 分析和设计 1.12.1 不要迷失 1.12.2 阶段0:拟出一个计划 1.12.3 阶段1:要制作什么? 1.12.4 阶段2:开始构建? 1.12.5 阶段3:正式创建 1.12.6 阶段4:校订 1.12.7 计划的回报 1.13 Java还是C++? 第2章 一切都是对象 2.1 用句柄操纵对象 2.2 必须创建所有对象 2.2.1 保存在什么地方 2.2.2 特殊情况:主类型 2.2.3 Java中的数组 2.3 绝对不要清除对象 2.3.1 作用域 2.3.2 对象的作用域 2.4 新建数据类型:类 2.4.1 字段和方法 2.5 方法、自变量和返回值 2.5.1 自变量列表 2.6 构建Java程序 2.6.1 名字的可见性 2.6.2 使用其他组件 2.6.3 static关键字 2.7 我们的第一个Java程序 2.8 注释和嵌入文档 2.8.1 注释文档 2.8.2 具体语法 2.8.3 嵌入HTML 2.8.4 @see:引用其他类 2.8.5 类文档标记 2.8.6 变量文档标记 2.8.7 方法文档标记 2.8.8 文档示例 2.9 编码样式 2.10 总结 2.11 练习 第3章 控制程序流程 3.1 使用Java运算符 3.1.1 优先级 3.1.2 赋值 3.1.3 算术运算符 3.1.4 自动递增和递减 3.1.5 关系运算符 3.1.6 逻辑运算符 3.1.7 按位运算符 3.1.8 移位运算符 3.1.9 三元if-else运算符 3.1.10 逗号运算符 3.1.11 字串运算符+ 3.1.12 运算符常规操作规则 3.1.13 造型运算符 3.1.14 Java没有“sizeof” 3.1.15 复习计算顺序 3.1.16 运算符总结 3.2 执行控制 3.2.1 真和假 3.2.2 if-else 3.2.3 反复 3.2.4 do-while 3.2.5 for 3.2.6 中断和继续 3.2.7 切换 3.3 总结 3.4 练习 第4章 初始化和清除 4.1 由构建器保证初始化 4.2 方法过载 4.2.1 区分过载方法 4.2.2 主类型的过载 4.2.3 返回值过载 4.2.4 默认构建器 4.2.5 this关键字 4.3 清除:收尾和垃圾收集 4.3.1 finalize()用途何在 4.3.2 必须执行清除 4.4 成员初始化 4.4.1 规定初始化 4.4.2 构建器初始化 4.5 数组初始化 4.5.1 多维数组 4.6 总结 4.7 练习 第5章 隐藏实施过程 5.1 包:库单元 5.1.1 创建独一无二的包名 5.1.2 自定义工具库 5.1.3 利用导入改变行为 5.1.4 包的停用 5.2 Java访问指示符 5.2.1 “友好的” 5.2.2 public:接口访问 5.2.3 private:不能接触 5.2.4 protected:“友好的一种” 5.3 接口与实现 5.4 类访问 5.5 总结 5.6 练习 第6章 类再生 6.1 合成的语法 6.2 继承的语法 6.2.1 初始化基础类 6.3 合成与继承的结合 6.3.1 确保正确的清除 6.3.2 名字的隐藏 6.4 到底选择合成还是继承 6.5 protected 6.6 递增开发 6.7 上溯造型 6.7.1 何谓“上溯造型”? 6.8 final关键字 6.8.1 final数据 6.8.2 final方法 6.8.3 final类 6.8.4 final的注意事项 6.9 初始化和类装载 6.9.1 继承初始化 6.10 总结 6.11 练习 第7章 多形性 7.1 上溯造型 7.1.1 为什么要上溯造型 7.2 深入理解 7.2.1 方法调用的绑定 7.2.2 产生正确的行为 7.2.3 扩展性 7.3 覆盖与过载 7.4 抽象类和方法 7.5 接口 7.5.1 Java的“多重继承” 7.5.2 通过继承扩展接口 7.5.3 常数分组 7.5.4 初始化接口中的字段 7.6 内部类 7.6.1 内部类和上溯造型 7.6.2 方法和作用域中的内部类 7.6.3 链接到外部类 7.6.4 static内部类 7.6.5 引用外部类对象 7.6.6 从内部类继承 7.6.7 内部类可以覆盖吗? 7.6.8 内部类标识符 7.6.9 为什么要用内部类:控制框架 7.7 构建器和多形性 7.7.1 构建器的调用顺序 7.7.2 继承和finalize() 7.7.3 构建器内部的多形性方法的行为 7.8 通过继承进行设计 7.8.1 纯继承与扩展 7.8.2 下溯造型与运行期类型标识 7.9 总结 7.10 练习 第8章 对象的容纳 8.1 数组 8.1.1 数组和第一类对象 8.1.2 数组的返回 8.2 集合 8.2.1 缺点:类型未知 8.3 枚举器(反复器) 8.4 集合的类型 8.4.1 Vector 8.4.2 BitSet 8.4.3 Stack 8.4.4 Hashtable 8.4.5 再论枚举器 8.5 排序 8.6 通用集合库 8.7 新集合 8.7.1 使用Collections 8.7.2 使用Lists 8.7.3 使用Sets 8.7.4 使用Maps 8.7.5 决定实施方案 8.7.6 未支持的操作 8.7.7 排序和搜索 8.7.8 实用工具 8.8 总结 8.9 练习 第9章 违例差错控制 9.1 基本违例 9.1.1 违例自变量 9.2 违例的捕获 9.2.1 try块 9.2.2 违例控制器 9.2.3 违例规范 9.2.4 捕获所有违例 9.2.5 重新“掷”出违例 9.3 标准Java违例 9.3.1 RuntimeException的特殊情况 9.4 创建自己的违例 9.5 违例的限制 9.6 用finally清除 9.6.1 用finally做什么 9.6.2 缺点:丢失的违例 9.7 构建器 9.8 违例匹配 9.8.1 违例准则 9.9 总结 9.10 练习 第10章 Java IO系统 10.1 输入和输出 10.1.1 InputStream的类型 10.1.2 OutputStream的类型 10.2 增添属性和有用的接口 10.2.1 通过FilterInputStream从InputStream里读入数据 10.2.2 通过FilterOutputStream向OutputStream里写入数据 10.3 本身的缺陷:RandomAccessFile 10.4 File类 10.4.1 目录列表器 10.4.2 检查与创建目录 10.5 IO流的典型应用 10.5.1 输入流 10.5.2 输出流 10.5.3 快捷文件处理 10.5.4 从标准输入中读取数据 10.5.5 管道数据流 10.6 StreamTokenizer 10.6.1 StringTokenizer 10.7 Java 1.1的IO流 10.7.1 数据的发起与接收 10.7.2 修改数据流的行为 10.7.3 未改变的类 10.7.4 一个例子 10.7.5 重定向标准IO 10.8 压缩 10.8.1 用GZIP进行简单压缩 10.8.2 用Zip进行多文件保存 10.8.3 Java归档(jar)实用程序 10.9 对象串联 10.9.1 寻找类 10.9.2 序列化的控制 10.9.3 利用“持久性” 10.10 总结 10.11 练习 第11章 运行期类型鉴定 11.1 对RTTI的需要 11.1.1 Class对象 11.1.2 造型前的检查 11.2 RTTI语法 11.3 反射:运行期类信息 11.3.1 一个类方法提取器 11.4 总结 11.5 练习 第12章 传递和返回对象 12.1 传递句柄 12.1.1 别名问题 12.2 制作本地副本 12.2.1 按值传递 12.2.2 克隆对象 12.2.3 使类具有克隆能力 12.2.4 成功的克隆 12.2.5 Object.clone()的效果 12.2.6 克隆合成对象 12.2.7 用Vector进行深层复制 12.2.8 通过序列化进行深层复制 12.2.9 使克隆具有更大的深度 12.2.10 为什么有这个奇怪的设计 12.3 克隆的控制 12.3.1 副本构建器 12.4 只读类 12.4.1 创建只读类 12.4.2 “一成不变”的弊端 12.4.3 不变字串 12.4.4 String和StringBuffer类 12.4.5 字串的特殊性 12.5 总结 12.6 练习 第13章 创建窗口和程序片 13.1 为何要用AWT? 13.2 基本程序片 13.2.1 程序片的测试 13.2.2 一个更图形化的例子 13.2.3 框架方法的演示 13.3 制作按钮 13.4 捕获事件 13.5 文本字段 13.6 文本区域 13.7 标签 13.8 复选框 13.9 单选钮 13.10 下拉列表 13.11 列表框 13.11.1 handleEvent() 13.12 布局的控制 13.12.1 FlowLayout 13.12.2 BorderLayout 13.12.3 GridLayout 13.12.4 CardLayout 13.12.5 GridBagLayout 13.13 action的替用品 13.14 程序片的局限 13.14.1 程序片的优点 13.15 视窗化应用 13.15.1 菜单 13.15.2 对话框 13.16 新型AWT 13.16.1 新的事件模型 13.16.2 事件和接收者类型 13.16.3 用Java 1.1 AWT制作窗口和程序片 13.16.4 再探早期示例 13.16.5 动态绑定事件 13.16.6 将商业逻辑与UI逻辑区分开 13.16.7 推荐编码方法 13.17 Java 1.1 UI API 13.17.1 桌面颜色 13.17.2 打印 13.17.3 剪贴板 13.18 可视编程和Beans 13.18.1 什么是Bean 13.18.2 用Introspector提取BeanInfo 13.18.3 一个更复杂的Bean 13.18.4 Bean的封装 13.18.5 更复杂的Bean支持 13.18.6 Bean更多的知识 13.19 Swing入门 13.19.1 Swing有哪些优点 13.19.2 方便的转换 13.19.3 显示框架 13.19.4 工具提示 13.19.5 边框 13.19.6 按钮 13.19.7 按钮组 13.19.8 图标 13.19.9 菜单 13.19.10 弹出式菜单 13.19.11 列表框和组合框 13.19.12 滑杆和进度指示条 13.19.13 树 13.19.14 表格 13.19.15 卡片式对话框 13.19.16 Swing消息框 13.19.17 Swing更多的知识 13.20 总结 13.21 练习 第14章 多线程 14.1 反应灵敏的用户界面 14.1.1 从线程继承 14.1.2 针对用户界面的多线程 14.1.3 用主类合并线程 14.1.4 制作多个线程 14.1.5 Daemon线程 14.2 共享有限的资源 14.2.1 资源访问的错误方法 14.2.2 Java如何共享资源 14.2.3 回顾Java Beans 14.3 堵塞 14.3.1 为何会堵塞 14.3.2 死锁 14.4 优先级 14.4.1 线程组 14.5 回顾runnable 14.5.1 过多的线程 14.6 总结 14.7 练习 第15章 网络编程 15.1 机器的标识 15.1.1 服务器和客户机 15.1.2 端口:机器内独一无二的场所 15.2 套接字 15.2.1 一个简单的服务器和客户机程序 15.3 服务多个客户 15.4 数据报 15.5 一个Web应用 15.5.1 服务器应用 15.5.2 NameSender程序片 15.5.3 15.5.3 要注意的问题 15.6 Java与CGI的沟通 15.6.1 CGI数据的编码 15.6.2 程序片 15.6.3 用C++写的CGI程序 15.6.4 POST的概念 15.7 用JDBC连接数据库 15.7.1 获得学习示例 15.7.2 查找程序的GUI版本 15.7.3 JDBC API为何如何复杂 15.8 远程方法 15.8.1 远程接口概念 15.8.2 远程接口的实施 15.8.3 创建根与干 15.8.4 使用远程对象 15.8.5 RMI的替选方案 15.9 总结 15.10 练习 第16章 设计范式 16.1 范式的概念 16.1.1 单子 16.1.2 范式分类 16.2 观察器范式 16.3 模拟垃圾回收站 16.4 改进设计 16.4.1 “制作更多的对象” 16.4.2 用于原型创建的一个范式 16.5 抽象的应用 16.6 多重派遣 16.6.1 实现双重派遣 16.7 访问器范式 16.8 RTTI有害吗 16.9 总结 16.10 练习 第17章 项目 17.1 文字处理 17.1.1 提取代码列表 17.1.2 检查大小写样式 17.2 方法查找工具 17.3 复杂性理论 17.4 总结 17.5 练习 附录A 使用非Java代码 A.1 Java固有接口 A.1.1 调用固有方法 A.1.2 访问JNI函数:JNIEnv自变量 A.1.3 传递和使用Java对象 A.1.4 JNI和Java违例 A.1.5 JNI和线程处理 A.1.6 使用现成代码 A.2 微软的解决方案 A.3 J/Direct A.3.1 @dll.import引导命令 A.3.2 com.ms.win32包 A.3.3 汇集 A.3.4 编写回调函数 A.3.5 其他J/Direct特性 A.4 本原接口(RNI) A.4.1 RNI总结 A.5 Java/COM集成 A.5.1 COM基础 A.5.2 MS Java/COM集成 A.5.3 用Java设计COM服务器 A.5.4 用Java设计COM客户 A.5.5 ActiveX/Beans集成 A.5.6 固有方法与程序片的注意事项 A.6 CORBA A.6.1 CORBA基础 A.6.2 一个例子 A.6.3 Java程序片和CORBA A.6.4 比较CORBA与RMI A.7 总结 附录B 对比C++和Java 附录C Java编程规则 附录D 性能 D.1 基本方法 D.2 寻找瓶颈 D.2.1 安插自己的测试代码 D.2.2 JDK性能评测[2] D.2.3 特殊工具 D.2.4 性能评测的技巧 D.3 提速方法 D.3.1 常规手段 D.3.2 依赖语言的方法 D.3.3 特殊情况 D.4 参考资源 D.4.1 性能工具 D.4.2 Web站点 D.4.3 文章 D.4.4 Java专业书籍 D.4.5 一般书籍 附录E 关于垃圾收集的一些话 附录F 推荐读物 英文版主页 | 中文版主页 | 详细目录 | 关于译者

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值