|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
处理文本值是程序员的日常工作,通常用标准的Java String类来完成与文本有关的需求。它对于很多小任务确实很适用,但是假如处理的是大型任务,它会大量消耗系统资源。由于这个原因,JDK引入了StringBuffer类以提供一条处理字符串的有效路径。让我们来看看怎样用这个类来提升性能。 为什么不用标准的String? Java String对象是常量字符串。一旦被初始化和付值,它的值和所分配的内存就被固定了。假如硬要改变它的值,将会产生一个包含新值的新String对象。这就是String对象会消耗掉很多资源的原因。下面的代码创建了一个String对象并使用串联(+)符号来为它添加更多字符: String sample1=new String(“Builder.com”); sample1+=”is”; sample1+=”the place”; sample1+=”to be.”; 系统最终会创建四个String对象来完成上面的替换。其中第一个的文本是Builder.com。然后每次添加文本时都会创建一个新的对象。 这种方式的问题在于为了这么一个简朴的过程而消耗了太多的资源。在这个例子中其影响也许很小(指给出了很少的代码),但是在一个拥有多得多操作的大型应用程序中这样做就会使性能下降。StringBuffer类所要解决的正是这个问题。 用StringBuffer处理字符串 StringBuffer类被设计用与创建和操作动态字符串信息。为该对象分配的内存会自动扩展以容纳新增的文本。有三种方式来创建一个新的StringBuffer对象:使用初始化字符串、设定大小以及使用默认构造函数: StringBuffer sb=new StringBuffer(); StringBuffer sb=new StringBuffer(30); StringBuffer sb=new StringBuffer(“Builder.com”); 第一行创建了不包含任何文本的对象,默认的容量是16个字符。类的第二个实例也不包含文本,容量是30个字符,最后一行创建了一个拥有初始化值的对象。StringBuffer类位于java.lang基础包中,因此要使用它的话不需要特别的引入语句。 一旦创建了StringBuffer类的对象,就可以使用StringBuffer类的大量方式和属性。最显著的方式是append,它将文本添加到当前StringBuffer对象内容的结尾。下面的代码示例了append方式的语法: StringBuffer sb=new StringBuffer(); sb.append(“B”); sb.append(“u”); sb.append(“i”); sb.append(“l”); sb.append(“d”); sb.append(“e”); sb.append(“r”); sb.append(“.com”); System.out.println(sb.toString()); 这些代码创建了Builder.com字符串并将它送往标准输出,但是只创建了一个对象。假如使用String对象就需要八个以上的对象。注重代码利用了StringBuffer类的toString方式。这个方式将其内容转变成一个可以被用于输出的字符串对象。它答应操作对应的文本用于输出或数据存储。 append方式有十种重载形式,答应将各种类型的数据添加到对象的末尾。StringBuffer类还提供了处理对象内部数据的方式。 返回类别: 教程 上一教程: Java入门及faq__1(5) 下一教程: Java网络编程的学习笔记(二) 您可以阅读与"StringBuffer帮你减轻Java的负担"相关的教程: · Java程序的性能优化StringBuffer与Vector · jsp或者说JAVA倒底有多快?这里有一个计时类,可以帮你的忙。同时支持JAVA和JSP。内有例子。 · 用javap 反汇编帮你理解java特性 · 诊断 Java 代码:设计轻松的代码维护 · java 学习笔记 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |