打字猴:1.70045241e+09
1700452410 高热度原则
1700452411
1700452412 一个开源项目的热度越高,更新得就越频繁,使用的人群就越广,Bug的曝光率就越快,修复效率也就越高,这对我们项目的稳定性来说是非常重要的。有很多开源项目可能已经很长时间没有更新了,或者是已经非常成熟了,或者是濒于关闭了,这我们不能要求太高,毕竟开源项目已经共享出了他人的精力和智力,我们在享受他人提供的成果的同时,也应该珍惜他人的劳动,最低的标准是不要诋毁开源项目。
1700452413
1700452414 对于开源工具,我们应该大胆采用,仔细筛选,如果确实所有的开源工具都无法满足我们的需求,那就自己开发一个开源项目,为千千万万的Java人服务,也为Java的生态系统贡献自己的力量。
1700452415
1700452416
1700452417
1700452418
1700452419 编写高质量代码:改善Java程序的151个建议 [:1700438217]
1700452420 编写高质量代码:改善Java程序的151个建议 建议140:推荐使用Guava扩展工具包
1700452421
1700452422 说起Guava(石榴),可能知道它的读者并不多,要是说起Google-collections,相信大部分读者都有所耳闻。2008年Google发布了Google-collections扩展工具包,主要是对JDK的Collection包进行了扩展,2010年Google发布了Guava项目,其中包含了collections、caching、primitives support、concurrency libraries、common annotations、I/O等,这些都是项目编码中的基本工具包,我们大致浏览一下它的主要功能。
1700452423
1700452424 (1)Collections
1700452425
1700452426 com. google.common.collect包中主要包括四部分:不可变集合(Immutable Collections)、多值Map、Table表和集合工具类。
1700452427
1700452428 不可变集合
1700452429
1700452430 不可变集合包括ImmutableList、ImmutableMap、ImmutableSet、ImmutableSortedMap、ImmutableSortedSet等,它比不可修改集合(Unmodifiable Collections)更容易使用,效率更高,而且占用的内存更少。示例代码如下:
1700452431
1700452432 //不可变列表
1700452433
1700452434 ImmutableList<String>list=ImmutableList.of(“A”,“B”,“C”);
1700452435
1700452436 //不可变Map
1700452437
1700452438 ImmutableMap<Integer, String>map=ImmutableMap.of(1,“壹”,2,“贰”,3,“叁”);
1700452439
1700452440 其中的of方法有多个重载,其目的就是为了便于在初始化的时候直接生成一个不可变集合。
1700452441
1700452442 多值Map
1700452443
1700452444 多值Map比较简单,在JDK中,Map中的一个键对应一个值,在put一个键值对时,如果键重复了,则会覆盖原有的值,在大多数情况下这比较符合实际应用,但有的时候确实会存在一个键对应多个值的情况,比如我们的通讯录,一个人可能会对应两个或三个号码,此时使用JDK的Map就有点麻烦了。在这种情况下,使用Guava的Multimap可以很好地解决问题,代码如下:
1700452445
1700452446 //多值Map
1700452447
1700452448 Multimap<String, String>phoneBook=ArrayListMultimap.create();
1700452449
1700452450 phoneBook.put(“张三”,“110”);
1700452451
1700452452 phoneBook.put(“张三”,“119”);
1700452453
1700452454 System.out.println(phoneBook.get(“张三”));
1700452455
1700452456 输出的结果是一个包含两个元素的Collection,这是一种很巧妙的处理方式,可以方便地解决我们开发中的问题。
1700452457
1700452458 Table表
1700452459
[ 上一页 ]  [ :1.70045241e+09 ]  [ 下一页 ]