Java常用包
Ydoing
这个作者很懒,什么都没留下…
展开
-
guava学习笔记-集合
静态工厂方法创建集合 public void testCreateCollection(){ List<String> stringList = Lists.newArrayList(); Map<String, Integer> map = Maps.newHashMap(); Set<String> stringSet = Sets.newH原创 2016-03-02 20:24:15 · 1839 阅读 · 0 评论 -
FastJSON自定义序列化-修改属性值
简介SerializeFilter是通过编程扩展的方式定制序列化。fastjson支持6种SerializeFilter,用于不同场景的定制序列化。PropertyPreFilter 根据PropertyName判断是否序列化 PropertyFilter 根据PropertyName和PropertyValue来判断是否序列化 NameFilter 修改Key,如果需要修改Key,proces原创 2016-02-24 18:52:33 · 17599 阅读 · 0 评论 -
guava学习笔记-基本工具
使用Optional类避免nullnull代表不确定性,有可能这个对象不存在(大多数情况);有可能是成功或失败;有可能是对象存在但对象为空(在集合中的情况)。任何不确定性因素都可能会给程序埋下隐患。Optional类强迫你思考null的真正含义,去除null的含糊,让程序更优雅的处理null的情况。可以避免抛出空指针异常。使用Optional除了赋予null语义,增加了可读性,最大的优点在于它是一种原创 2016-02-29 20:18:55 · 627 阅读 · 0 评论 -
guava学习笔记-本地缓存工具
本地缓存工具我们经常使用ConcurrentHashMap缓存数据,如果数据key存在则直接返回,否则计算后保存再返回。guava提供了功能更强大的缓存工具。使用时不用自己put,get的时候会自动缓存起来,前提是你必须实现一个load数据的方法。用CacheLoader构建: @Test public void testCacheWithLoader() throws Executi原创 2016-03-29 10:04:45 · 1179 阅读 · 0 评论 -
FastJSON处理Map的问题
如果要把 Map>进行json后放入到数据库中是很方便的,唯一要注意的是枚举类型会EnumType会进行toString操作存放,比如{"MEMBER_CARD":[{"cardEntityId":"99180079","cardId":"186e245aca0e49fda00a36de7fee9fe1","code":"0000003366","id":"33ef1554cce743f0b6原创 2016-05-18 17:34:58 · 1416 阅读 · 0 评论 -
Guava中并发ListenableFuture使用
最近在项目中要优化接口,发现guava并发编程中的ListenableFuture比较适合,所以就用上了。感觉还不错,分享一下。使用场景是这样的,客户端需要上传数据到服务端,涉及到几个表的插入。之前都是一个一个表插入的,性能不是很好的。现在改为并发插入,代码如下:private ListeningExecutorService executorService = MoreExecutors.list原创 2016-05-19 14:28:10 · 6202 阅读 · 2 评论 -
Redis统计某个时间段订单数量(用Guava缓存辅助解决)
简介公司有这么个需求,需用统计店铺某个时间段(按自然天计算,不超过24小时)类的订单数量。因为这些统计数据不用持久化,考虑到性能问题,准备用Redis做统计。 - 设计思路:用Reids的一个有序集合实现。店铺Id作为有序集合key,订单ID作为有序集合member,插入到Redis时间戳作为有序集合的score。增加的时候用zadd(cacheKey, System.currentTimeMil原创 2016-08-31 15:07:19 · 7778 阅读 · 2 评论