打字猴:1.700475324e+09
1700475324 System.out.println(“执行时间:”+(tailTime-currentTime)+“ms”);
1700475325
1700475326 }
1700475327
1700475328 }
1700475329
1700475330 运行结果如下所示:
1700475331
1700475332 执行时间:78 ms
1700475333
1700475334 看到没?一半的效率,这还是非常简单的享元对象,看看我们重写的equals方法和hashCode方法,这段代码是必须实现的,如果比较复杂,这个时间差异会更大。
1700475335
1700475336 各位,想想看,使用自己编写的类作为外部状态,必须覆写equals方法和hashCode方法,而且执行效率还比较低,这种吃力不讨好的事情最好别做,外部状态最好以Java的基本类型作为标志,如String、int等,可以大幅地提升效率。
1700475337
1700475338
1700475339
1700475340
1700475341 设计模式之禅 [:1700454057]
1700475342 设计模式之禅 28.5 最佳实践
1700475343
1700475344 Flyweight是拳击比赛中的特用名词,意思是“特轻量级”,指的是51公斤级比赛,用到设计模式中是指我们的类要轻量级,粒度要小,这才是它要表达的意思。粒度小了,带来的问题就是对象太多,那就用共享技术来解决。
1700475345
1700475346 享元模式在Java API中也是随处可见,如这样的程序就是一个很好的例子,如代码清单28-17所示。
1700475347
1700475348 代码清单28-17  API中的享元模式
1700475349
1700475350 public class Test{
1700475351
1700475352 public static void main(String[]args){
1700475353
1700475354 String str1=“和谐”;
1700475355
1700475356 String str2=“社会”;
1700475357
1700475358 String str3=“和谐社会”;
1700475359
1700475360 String str4;
1700475361
1700475362 str4=str1+str2;
1700475363
1700475364 System.out.println(str3==str4);
1700475365
1700475366 str4=(str1+str2).intern();
1700475367
1700475368 System.out.println(str3==str4);
1700475369
1700475370 }
1700475371
1700475372 }
1700475373
[ 上一页 ]  [ :1.700475324e+09 ]  [ 下一页 ]