问题描述
- java性能问题
-
public class Guava implements Runnable {
public static void main(String []a){
new Thread(new Guava()).start();
}
@Override
public void run() {
long end;
long start;
int temp=0;
while(true){start=System.currentTimeMillis(); for(int i=0;i<1000000000;i++){ int b=0; temp=++b; } end=System.currentTimeMillis(); System.out.println("1:"+(end-start)); System.out.println("b="+temp); //--------------------------------------- start=System.currentTimeMillis(); int c=0; for(int j=0;j<1000000000;j++){ c=0; temp=++c; } end=System.currentTimeMillis(); System.out.println("2:"+(end-start)); System.out.println("c="+temp); //--------------------------------------- try { new Thread().sleep(3000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("---------------------------------------");} } } ![图片说明](http://img.ask.csdn.net/upload/201603/24/1458785966_300029.png) 为什么 case1 比较快
解决方案
用内存空间换取时间。
解决方案二:
1.尽量在合适的场合使用单例
使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面:
·?控制资源的使用,通过线程同步来控制资源的并发访问;
·?控制实例的产生,以达到节约资源的目的;
·?控制数据共享,在不建立直接关联的条件下,让多个不相关的进程或线程之间实现通信。
2.尽量避免随意使用静态变量
要知道,当某个......
答案就在这里:Java中“性能”问题
时间: 2024-11-04 08:37:11