char与String的区别,char与String的性能比较

char string 区别

package test; public class charOrString { public static void main(String[] args) { char a = 55; System.out.println(a += 10); String b = "55" ; System.out.println(b+=10); int c = 55 ; System.out.println(c += 10 ); } }

 结果是

A
5510
65

性能比较

package com.bovy.test.perform; /** *//** * 测试向StringBuilder中插入字符和字符串的性能区别。 这个性能区别主要是字符串需要创建类造成的。 * 在设置StringBuilder的容量足够大的情况下,性能有所改善。注意,这个容量只有在第一次容量不足的时候才调整。 * * @author limingjun * */ public class PerformTest ...{ /** *//** * @param args */ public static void main(String[] args) ...{ PerformTest performTest = new PerformTest(); performTest.testStringBuilder(); performTest.testStringBuilder(10240); performTest.testStringBuffer(); performTest.testStringBuffer(10240); } /** *//** * 在不设置容量的情况下。消耗的时间: 2828 比 5761,基本类型还是快。 */ public void testStringBuffer() ...{ StringBuffer hql = new StringBuffer(); /** *//** * 在设置StringBuilder的容量足够大的情况下,性能有所改善。注意,这个容量只有在第一次容量不足的时候才调整。 * StringBuilder hql = new StringBuilder(10240); * */ long begin = System.currentTimeMillis(); for (int i = 0; i < 10000; i++) ...{ hql.setLength(0); for (int j = 0; j < 10000; j++) ...{ hql.append(' '); } } // 这个容量只有在第一次容量不足的时候才调整。 hql = new StringBuffer(); System.out.println(System.currentTimeMillis() - begin); begin = System.currentTimeMillis(); for (int i = 0; i < 10000; i++) ...{ hql.setLength(0); for (int j = 0; j < 10000; j++) ...{ hql.append(" "); } } System.out.println(System.currentTimeMillis() - begin); } /** *//** * 在设置StringBuilder的容量足够大的情况下,性能有所改善。注意,这个容量只有在第一次容量不足的时候才调整。 消耗的时间: 1670 比 * 4409,基本类型还是快。 * * @param capacity */ public void testStringBuffer(int capacity) ...{ StringBuffer hql = new StringBuffer(capacity); long begin = System.currentTimeMillis(); for (int i = 0; i < 10000; i++) ...{ hql.setLength(0); for (int j = 0; j < 10000; j++) ...{ hql.append(' '); } } // 这个容量只有在第一次容量不足的时候才调整。 hql = new StringBuffer(capacity); System.out.println(System.currentTimeMillis() - begin); begin = System.currentTimeMillis(); for (int i = 0; i < 10000; i++) ...{ hql.setLength(0); for (int j = 0; j < 10000; j++) ...{ hql.append(" "); } } System.out.println(System.currentTimeMillis() - begin); } /** *//** * 在不设置容量的情况下。消耗的时间: 1578 比 4559,基本类型还是快。 */ public void testStringBuilder() ...{ StringBuilder hql = new StringBuilder(); /** *//** * 在设置StringBuilder的容量足够大的情况下,性能有所改善。注意,这个容量只有在第一次容量不足的时候才调整。 * StringBuilder hql = new StringBuilder(10240); * */ long begin = System.currentTimeMillis(); for (int i = 0; i < 10000; i++) ...{ hql.setLength(0); for (int j = 0; j < 10000; j++) ...{ hql.append(' '); } } // 这个容量只有在第一次容量不足的时候才调整。 hql = new StringBuilder(); System.out.println(System.currentTimeMillis() - begin); begin = System.currentTimeMillis(); for (int i = 0; i < 10000; i++) ...{ hql.setLength(0); for (int j = 0; j < 10000; j++) ...{ hql.append(" "); } } System.out.println(System.currentTimeMillis() - begin); } /** *//** * 在设置StringBuilder的容量足够大的情况下,性能有所改善。注意,这个容量只有在第一次容量不足的时候才调整。 消耗的时间: 1670 比 * 4409,基本类型还是快。 * * @param capacity */ public void testStringBuilder(int capacity) ...{ StringBuilder hql = new StringBuilder(capacity); long begin = System.currentTimeMillis(); for (int i = 0; i < 10000; i++) ...{ hql.setLength(0); for (int j = 0; j < 10000; j++) ...{ hql.append(' '); } } // 这个容量只有在第一次容量不足的时候才调整。 hql = new StringBuilder(capacity); System.out.println(System.currentTimeMillis() - begin); begin = System.currentTimeMillis(); for (int i = 0; i < 10000; i++) ...{ hql.setLength(0); for (int j = 0; j < 10000; j++) ...{ hql.append(" "); } } System.out.println(System.currentTimeMillis() - begin); } }

原文http://heisetoufa.javaeye.com/blog/227680

转载于:https://www.cnblogs.com/wfx/archive/2010/06/05/1931940.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值