![](https://img-blog.csdnimg.cn/cd759a1853d24cb497b4b8177edc4c8d.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java8实战
文章平均质量分 96
java8实践小结
shark-chili
这个作者很懒,什么都没留下…
展开
-
为什么使用Java8中的并行流运算耗时变长了?
近期对迭代的功能进行压测检查,发现某些使用并发技术的线程任务耗时非常漫长,结合监控排查定位到的并行流使用上的不恰当,遂以此文分享一下笔者发现的问题。这里笔者先简单介绍一下当前功能的使用背景,当前功能是一些大数据量的计算密集型任务定时执行,在常规优化效率有限的情况下,考虑到复用性,笔者通过。去提升线程数并不会带来提升,所以在笔者结合业务场景通过压测计算出每个定时任务的耗时,大约是5分钟,所以笔者通过调整定时任务的执行间隔由原来的。创建定量的线程,后续的我们的并行流运算的执行都会提交到该线程池中。原创 2024-06-11 09:00:24 · 869 阅读 · 0 评论 -
lambda表达式实践
函数式编程思想面向对象的思想: 做一件事情,找一个能解决这个事情的对象,调用对象的方法,完成事情.函数式编程思想: 只要能获取到结果,谁去做的,怎么做的都不重要,重视的是结果,不重视过程lambda标准格式(参数类型 参数名称) -> { 代码语句 }lambda的省略格式在Lambda标准格式的基础上,使用省略写法的规则为:小括号内参数的类型可以省略;如果小括号内有且仅有一个参,则小括号可以省略;如果大括号内有且仅有一个语句,则无论是否有返回值,都可以省略大括号、retu原创 2020-10-15 20:33:26 · 257 阅读 · 0 评论 -
基于lambda简化设计模式
虽说使用设计模式可以让复杂的业务代码变得清晰且易于维护,但是某些情况下,开发可能会遇到我为了简单的业务逻辑去适配设计模式的情况,本文笔者就以四种常见的设计模式为例,演示如何基于lambda来简化设计模式的实现。原创 2023-12-10 12:50:00 · 2310 阅读 · 1 评论 -
Java8并行流——Spliterator
很显然上文的代码是很传统的处理逻辑,我们希望能够做的更好,因为Java8为我们提供的函数式编程,所以我们需要写一个自定义收集器去优化这段代码。我们希望有能够实现这样一个操作,通过将上文的字符串转为一个Character的流,然后通过一个自己编写的流收集器实现流数据的统计,因为是累加,所以我们使用流操作函数如下关于流收集器的原理,可以参考笔者之前写的这篇文章java8流实战-用流收集数据实践简记。原创 2022-03-24 09:34:24 · 2992 阅读 · 1 评论 -
java8——并行流的分支合并框架
为了介绍并行流的分支合并框架,我们不妨用一个例子来展开。这个需求也非常简单,要求给你一个long类型的数组nums,最终给用户nums的总和。原创 2022-03-25 01:58:05 · 723 阅读 · 1 评论 -
java8并行流简介
我们都知道并行流的操作都是基于多线程的,有了多线程自然就会出现互斥和同步问题,所以一旦你使用并行流操作同一个数据时,很可能会造成数据错误的问题。原创 2022-03-25 01:58:27 · 900 阅读 · 1 评论 -
java8流实战-用流收集数据实践简记
用过流编程的小伙伴大概都会写过这样的代码可以看出流让某些规约操作变得很简单,只需我们整理好自己所需要的数据的流,就像上文一样,我们希望创建一个用户名字的列表,我们只需要通过map映射出所有用户名的流,然后使用终端操作即collect方法完成流的最终结果生成即可。本文就是介绍collect中可以传的参数,流收集器,通过各种各样的流收集器,你就可以完成你所需要的数据的收集。原创 2022-03-25 01:58:35 · 743 阅读 · 1 评论 -
java8实战——自定义流的构建
我们都知道java8的流操作带来许多便捷,但是某些情况下,某些类型变量无法直接生成流,但我们又希望能够拥有流的便捷操作解决问题,这又该怎么办呢?所以我们就用这篇博客来记录一下这个问题的解决方案。原创 2022-03-25 01:58:55 · 1153 阅读 · 1 评论 -
来聊聊java8的数值流
java8为我提供的简单快捷的数值流计算API,本文就基于几个常见的场景介绍一下数值流API的使用。原创 2023-12-10 12:37:55 · 812 阅读 · 1 评论 -
Java8流式编程详解
java8提供的流式编程使得我们对于集合的处理不再是临时集合加上各种还能for循环,取而代之的是更加简洁高效的流水线操作,所以笔者就以这篇文章总结一下流式编程中常见的操作。原创 2023-12-10 12:37:20 · 1635 阅读 · 1 评论 -
行为参数化改善既有多变的代码——函数式接口以及lambda表达式的结合
文章目录前言需求描述苹果类既有代码的实现需求变更实现思路代码示例测试以及输出代码需求再变更实现思路代码示例测试代码最终需求实现思路通过将行为参数化实现需求基于jdk8之前的代码实现jdk8的代码实现版本代码示例进一步改造,方法通用化源码地址参考文献前言现代敏捷开发,需求总是不断的变更,如果不能较好的封装变化,后期的代码维护会变得愈发困难。需求描述我们现在手头一堆苹果,我们希望从中挑出绿色的苹果给客户。苹果类如下所示,用于描述的苹果类既有颜色又有重量。public static class Ap原创 2022-03-25 01:59:13 · 589 阅读 · 0 评论 -
聊聊java8的方法引用结合lambda最佳实践
纵然lambda表达式使得变得更加的简洁且优雅,但在某些情况下,某些表达式给人感觉还是有些过度复杂了我们不妨简单事情复杂化,给定一个苹果类,这个苹果有重量有颜色描述,需要我们编写一个方法getWeight,希望得到的苹果重量是实际重量。苹果类的代码如下}}}}}'}';}}我们都说代码和数学息息相关,其实java8也提供很多函数式接口可以运用于数学公式上。原创 2022-03-27 23:56:55 · 349 阅读 · 2 评论