java编程思想随书笔记

关于string,stringBuffer的区别是老生常谈了,下文将讲述在for循环中的内存和性能问题

/**
		 * 1000000条,for循环中stringBuffer.append(j).的时间为150级别,str+=的级别时间超级长,1000条的时间为560
		 * 1000000条,for循环中频繁声明一个变量 str= 的使用时间为170级别,使用stringBuffer的时间为差点以为死循环了
		 * 
		 */
		long startDate = System.currentTimeMillis();
		StringBuffer stringBuffer = new StringBuffer();
		String str = "";
		for (int j = 0; j < 1000000; j++) {
			//str += j;
			//stringBuffer.append(j).append("哈哈哈");
			
			StringBuffer stringBuffer2 = new StringBuffer(j);
			String str2 = j+"";
		}
		System.out.println(System.currentTimeMillis()-startDate);

* 测试String声明使用不改变 StringBuffer声明使用不改变,无论多少次for循坏,因为指向的都是同一个地址引用,时间级别为 3 6

* String声明使用改变 StringBuffer声明使用改变1000000条的时间级别为 200和差点以为死循环 

* StringBuffer.append追加 +=追加性能发现时间依次为150级别 和差点以为死循环


综上所述,for循环里面需要声明变量不改变的随便哪一种性能无影响

声明变量改变的使用string

外部声明变量,for中追加的使用stringbuffer


猜你喜欢

转载自blog.csdn.net/zhangxiaomin1992/article/details/79037508