11 2017 档案
iterate使用了parallel() 反而消耗了更多的时间
摘要:直接上代码: 结果: 使用了parallel() 反而消耗了更多的时间 原因:  iterate生成的是装箱的对象,必须拆箱成数字才能求和; 我们很难把iterate分成多个独立块来并行执行。 可以利用的解决方法: 留意装箱。自动装箱和拆箱操作会大大降低性能。Java 8中有原始类型流(Int 阅读全文
posted @ 2017-11-28 20:51 一个帅哥9527 阅读(303) 评论(0) 推荐(0)
Stream 分支/合并 框架的实际例子
摘要:请注意在实际应用时,使用多个ForkJoinPool是没有什么意义的。正是出于这个原因,一般来说把它实例化一次,然后把实例保存在静态字段中,使之成为单例,这样就可以在软件中任何部分方便地重用了。这里创建时用了其默认的无参数构造函数,这意味着想让线程池使用JVM能够使用的所有处理器。更确切地说,该构造 阅读全文
posted @ 2017-11-28 20:47 一个帅哥9527 阅读(620) 评论(0) 推荐(0)
区分Collection、Collector和collect Collectors类的静态工厂方法
摘要:工厂方法 返回类型 用 于toList List<T> 把流中所有项目收集到一个List使用示例:List<Dish> dishes = menuStream.collect(toList());toSet Set<T> 把流中所有项目收集到一个Set,删除重复项使用示例:Set<Dish> dis 阅读全文
posted @ 2017-11-28 17:33 一个帅哥9527 阅读(2581) 评论(0) 推荐(0)
Optional<T> 避免和null检查相关的bug
摘要:Optional<T>类(java.util.Optional)是一个容器类,代表一个值存在或不存在。在上面的代码中,findAny可能什么元素都没找到。Java 8的库设计人员引入了Optional<T>,这样就不用返回众所周知容易出问题的null了。我们在这里不会详细讨论Optional,因为第 阅读全文
posted @ 2017-11-27 17:35 一个帅哥9527 阅读(157) 评论(0) 推荐(0)
筛选、切片、匹配、查找、匹配、归约
摘要:筛选: numbers.stream().filter(i -> i % 2 == 0).distinct().forEach(System.out::println); 延伸:可以去掉distinct(),改用toSet()可以去掉distinct(),改用toSet() transactions 阅读全文
posted @ 2017-11-27 17:02 一个帅哥9527 阅读(192) 评论(0) 推荐(0)
java8 流 中的常用函数式接口
摘要:函数式接口 函数描述符 原始类型特化Predicate<T> T->boolean IntPredicate,LongPredicate, DoublePredicateConsumer<T> T->void IntConsumer,LongConsumer, DoubleConsumerFunct 阅读全文
posted @ 2017-11-27 14:07 一个帅哥9527 阅读(677) 评论(0) 推荐(0)
action 和 controller 单例与多例问题
摘要:什么是单例、多例: 所谓单例就是所有的请求都用一个对象来处理,比如我们常用的service和dao层的对象通常都是单例的,而多例则指每个请求用一个新的对象来处理,比如action; 为什么用单例、多例: 之所以用单例,是因为没必要每个请求都新建一个对象,这样子既浪费CPU又浪费内存; 之所以用多例, 阅读全文
posted @ 2017-11-27 11:37 一个帅哥9527 阅读(1101) 评论(0) 推荐(0)
Collections.sort Comparator.comparing 冒泡排序 效率对比
摘要:public static void main(String[] args) { Long t = System.currentTimeMillis(); Random random = new Random(); List list = new ArrayList(); for (int j = 0; j a1.getWeight()-a2.getWeight... 阅读全文
posted @ 2017-11-22 14:48 一个帅哥9527 阅读(7015) 评论(0) 推荐(0)
java8 流
摘要:实现:赛选苹果 基类 方法类: 知识点: 如上图,接口类,可以写default 开头的方法,此方法可以直接写实现,而且,子类不用集成此方法 阅读全文
posted @ 2017-11-15 18:13 一个帅哥9527 阅读(162) 评论(0) 推荐(0)
将逗号分割的列,变成多列
摘要:SELECT substring_index(substring_index(t.delid,',', b.help_topic_id + 1), ',', -1) FROM (SELECT su.* FROM sys_user su ) t join mysql.help_topic b ON b 阅读全文
posted @ 2017-11-04 16:03 一个帅哥9527 阅读(365) 评论(0) 推荐(0)
适配器模式 VS 装饰模式 VS 代理模式 一个狼外婆的故事串联起来
摘要:适配器模式(连接):允许因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。 装饰器模式(增强):原有的不能满足现有的需求,对原有的进行增强。 代理模式(限制):同一个类而去调用另一个类的方法,不对这个方法进行直接操作。 这里,我们用一个狼外婆的故事:一只狼假装 阅读全文
posted @ 2017-11-02 20:36 一个帅哥9527 阅读(196) 评论(0) 推荐(0)