首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏程序人生 阅读快乐

    Java 8实战

    本书全面介绍了Java 8 这个里程碑版本的新特性,包括Lambdas、流和函数式编程。有了函数式的编程特性,可以让代码更简洁,同时也能自动化地利用多核硬件。 全书分四个部分:基础知识、函数式数据处理、高效Java 8 编程和超越Java 8,清晰明了地向读者展现了一幅Java 与时俱进的现代化画卷。

    59210发布于 2018-10-10
  • 来自专栏小工匠聊架构

    Java 8 - Stream实战

    ---- Pre Java 8 - Stream流骚操作解读 Java 8 - Stream流骚操作解读2_归约操作 都学了这俩,是不是该出来练一练了? ? ---- (8) 找到交易额最小的交易 Optional<Integer> minValue = transactions.stream().map(Transaction::getValue transactions.stream() .min(comparing(Transaction::getValue)); ---- 附 Trader & Transaction package com.artisan.java8 String toString(){ return "Trader:"+this.name + " in " + this.city; } } package com.artisan.java8

    40210发布于 2021-08-17
  • 来自专栏小工匠聊架构

    Java 8 - Optional实战

    ---- Pre Java 8 - Optional全解相信你已经了解,有效地使用 Optional 类意味着你需要对如何处理存在缺失值进行全面的反思。 这种反思不仅仅限于你曾经写过的代码,更重要的可能是,你如何与原生Java API实现共存共赢。 为了保持后向兼容性,我们很难对老的Java API进行改动,让它们也使用Optional ,但这并不表示我们什么也做不了。 ---- 异常与 Optional 的对比 由于某种原因,函数无法返回某个值,这时除了返回 null ,Java API比较常见的替代做法是抛出一个异常。 我们无法修改最初的Java方法,但是这无碍我们进行需要的改进,你可以实现一个工具方法,将这部分逻辑?装于其中,最终返回一个我们希望的Optional 对象。

    53820发布于 2021-08-17
  • 来自专栏沉默王二

    Java 8 Optional 最佳指南

    想学习,永远都不晚,尤其是针对 Java 8 里面的好东西,Optional 就是其中之一,该类提供了一种用于表示可选值而非空引用的类级别解决方案。 终于,Java 8 看不下去了,就引入了 Optional,以便我们编写的代码不再那么刻薄呆板。 ? 01、没有 Optional 会有什么问题 我们来模拟一个实际的应用场景。 8 引入的语法,方法名后面是没有 () 的,表明该方法并不一定会被调用。 8 新增的一个函数式接口),也就是说可以将一个 Lambda 表达式传递给该方法作为条件,如果表达式的结果为 false,则返回一个 EMPTY 的 Optional 对象,否则返回过滤后的 Optional 好了,我亲爱的读者朋友,以上就是本文的全部内容了——可以说是史上最佳 Optional 指南了,能看到这里的都是最优秀的程序员,二哥必须要伸出大拇指为你点个赞。

    83110发布于 2020-03-11
  • 来自专栏阿杜的世界

    Java 8实战》阅读笔记(1)

    以下为第一章《为什么你应该关注Java 8》的阅读笔记 1.1 为啥Java语言在演进 使用Java 8 可以写出更加简洁的代码; 多核CPU的普及,需要Java 8更好得支持并行编程;为了说明上述两点 编程语言的生态系统以及气候的改变 本书总结出推动Java 8支持并行编程和书写更简洁的代码的三大概念:Stream处理、行为参数化、并行特性以及不共享可变数据。 Java 8的函数式编程,要求开发者编写没有副作用(即无状态)的函数。 只有开发者都用,这些新特性才会有意义,因此尽可能得使用Java 8的新特性也是保护你作为Java开发者的工作。 8引入了匿名函数——Lambda表达式;不过,如果匿名函数的函数体超过了一定行数(感觉影响代码的可读性的话),就需要重新定义一个函数并使用方法引用传入; 1.4 Stream API Java8出现之前 ---- 本章作为全书的第一章,重点介绍了Java作为一门语言长盛不衰的时代、技术背景和内在的原因(Java自身一直在进化,跟上甚至引领技术的变革);本章也简单介绍了Java 8 中比较重要的知识点,例如

    61440发布于 2018-08-06
  • 来自专栏Lvshen的技术小屋

    Java8实战》学习笔记

    最近抽空看了《Java8实战这本书》,收获很多,这本书着重介绍了Java8的两个新特性:Lambda表达式和stream()的使用,简化了我们的开发。下面是我在读这本书所做的笔记,也是我的一些收获。 第一段代码 对苹果按重量排序 //Java8之前 Collections.sort(inventory, new Comparator<Apple>() { public int compare(Apple s.isEmpty()); Java8中forEach方法的使用 假如有一个list集合,循环获取里面的值,Java8之前是这样做的。 java8的打印方式如下。 参考 《Java8实战 》作者: 厄马(Raoul-Gabriel Urma) / 弗斯科(Mario Fusco) / 米克罗夫特(Alan Mycroft)

    69120编辑于 2022-05-05
  • 来自专栏公众号:懒时小窝

    JAVA8实战 - 日期API

    JAVA8实战 - 日期API 前言 这一节我们来讲讲JAVA8的日期类,源代码的作者其实就是Joda-Time,所以可以看到很多代码的API和Joda类比较像。 日期类一直是一个比较难用的东西,但是JAVA8给日期类提供了一套新的API让日期类更加好用。 本文代码较多,建议亲自运行代码理解。 JDK8日期类关于时区的强相关类(注意是JDK8才出现的类,不要误认为是对之前类的兼容),在之前的单元测试其实已经用到了相关时区的方法,在JDK8中使用了 ZoneId这个类来表示,但是我们有时候不知道怎么获取地区 (ZoneId.of("Japan"))); 实战 - 封装日期工具类 当然更加建议读者自己多动手实验,最好的办法就是多给几个需求给自己,强制自己用JDK8的方法去实现,你会发现你掌握这些API会特别快 not be parsed, unparsed text found at index 10 参考资料 ❝侠说java8-LocalDateTime ❞

    1.9K30发布于 2021-08-16
  • 来自专栏用户4352451的专栏

    Java8实战--引入流

    流是Java API的新成员,它允许你以声明性方式处理数据集合(通过查询语句来表达,而不 是临时编写一个实现)。就现在来说,你可以把它们看成遍历数据集的高级迭代器。

    54810发布于 2020-08-26
  • 来自专栏Java工程师成长之路

    java8 parallel并行处理实战

    java8刚好提供了这样的功能,对集合数据的并发执行parallel,所以有了以下测试 为加快统计速度尝试 原代码用时 2018-10-15 15:03:22.863 |-INFO [SimpleAsyncTaskExecutor java8 代码用时 2018-10-15 14:54:17.487 |-INFO [SimpleAsyncTaskExecutor-1] com.beikbank.settlement.api.jobs.TaskJob //io数据库操作 } 使用java8 流并行代码 allUserList.stream().parallel().forEach(allUser -> { String userIdkey = //io数据库操作 }); 总结 数据统计存在数据库操作的,使用java8的parallel可以加快统计速度,从上面图片的对比可以看出,使用parallel后jdbc连接会存在多个并行执行,执行效率和机器配置内存等相关

    83830发布于 2019-09-10
  • 来自专栏微信公号【Java技术江湖】

    Java基础20:Java8新特性终极指南

    毫无疑问,Java 8发行版是自Java 5(发行于2004,已经过了相当一段时间了)以来最具革命性的版本。 /a724888 这是一个Java8新增特性的总结图。 Java 8用默认方法与静态方法这两个新概念来扩展接口的声明。 在Java 8以前,一般的解决方式用foreach循环,但是在Java 8里面我们可以使用stream:一串支持连续、并行聚集操作的元素。 毫无疑问,现在是时候让你的代码与Java 8兼容,并且在Java 8足够安全稳定的时候迁移到Java 8

    79200发布于 2019-04-07
  • 来自专栏我要变牛

    Java杂谈之Java8重构指南

    本文简单介绍使用java8特性是如何另辟蹊径解决设计模式原来试图解决的问题的。 1、策略模式 策略模式代表了解决一类算法的通用解决方案,可以在运行时选择使用哪种方案。 方式 使用java8后可以看出ValidationStrategy是一个函数接口了而且它还与Predicate具有同样的函数描述。 2、2 JAVA8方式 使用Lambda表达式同样也可以解决这些问题(创建算法框架,让具体的实现插入某些部分)。想要插入的不同算法组件可以通过Lambda表达式或者方法引用的方式实现。 3、2 JAVA8方式 Observer接口的所有实现类都提供了一个方法:notify。新闻到达时,它们都只是对同一段代码封装执行。Lambda表达式的设计初衷就是要消除这样的僵化代码。 方式 java8后可以像引用方法一样引用构造函数。

    62520发布于 2021-05-28
  • 来自专栏公众号:懒时小窝

    JAVA8实战 - Optional工具类

    JAVA8实战 - Optional工具类 前言 没错,这又是一个新的专栏,JAVA8可以说是JAVA划时代的一个版本,几乎是让JAVA焕发了第三春(第二春在JDK5),当然里面的新特性也是十分重要的 ,虽然Java现在都已经到了10几的版本,但是国内多数使用的版本还是JAVA8,所以这个系列将会围绕Java8的新特性和相关工具做一些总结。 / 看了这么多案例,可以发现日常生活中规避空指针是一件非常烦的事情,特别是存在多层嵌套的对象,基本会出现多层的If/else判断,这样会造成代码复杂度增加并且让代码变得十分臃肿,接下来我们就来看下JAVA8 简单介绍 Java8之后新增的一个工具类,在包java.util.Optional<T>,他的作用类似于一个包装器,负责把我们需要操作的对象包装到一个黑盒中,我们可以通过黑盒安全的操作对象的内容。 后面主要提到的是一些Java9的操作,由于本文只涉及Java8的版本,所以更高版本的内容可以从《Effective Java》这本书里面看到。

    2.2K10发布于 2021-08-16
  • 来自专栏微信公众号【Java技术江湖】

    Java基本功】Java 8 新特性终极指南

    毫无疑问,Java 8发行版是自Java 5(发行于2004,已经过了相当一段时间了)以来最具革命性的版本。 这是一个Java8新增特性的总结图。 Java 8用默认方法与静态方法这两个新概念来扩展接口的声明。 在Java 8以前,一般的解决方式用foreach循环,但是在Java 8里面我们可以使用stream:一串支持连续、并行聚集操作的元素。 毫无疑问,现在是时候让你的代码与Java 8兼容,并且在Java 8足够安全稳定的时候迁移到Java 8

    92620发布于 2019-09-25
  • 来自专栏ceshiren0001

    Playwright元素定位全面解析:8种策略实战指南

    今天,我将分享Playwright中8种核心元素定位策略,这些经验都是从真实项目中总结出来的实战技巧。1. 最直接的方式:通过文本定位当元素有清晰的文本内容时,通过文本定位是最直观的方式。 更精确的文本匹配await page.click('text="登录"'); // 完全匹配// 文本包含特定内容await page.click('text/=忘记密码/'); // 使用正则表达式实战技巧 page.getByRole('heading', { name: '欢迎回来' })).toBeVisible();await page.getByTitle('用户头像').click(); // 通过title属性8. /button[1]');实战策略选择指南经过多个项目的实践,我总结出以下选择优先级:第一优先级:data-testid - 最稳定,需要团队协作第二优先级:Role定位 - 语义化,可访问性好第三优先级 希望这份指南能帮助你在Playwright的世界里游刃有余!

    48710编辑于 2025-12-15
  • 来自专栏码农小胖哥的码农生涯

    Java入门必看的Java 8 Stream API 使用指南

    1.概述 Java 8 引入的一个重要的特性无疑是 Stream API。 上面摘自java 8 Collection<E> 说明只要是Collection<E>的实现都可以创建流。 ? 2.6 基本类型流 Java 8提供了从三种基本类型创建流的可能性:int,long和double。 从Java 8开始,Random类为生成基本类型流提供了广泛的方法。例如,以下代码创建一个DoubleStream,它有三个随机double元素: ? 一定要谨记 Java 8 中同一个Stream 在终端操作后是不能重用的。正确的做法是这样的: ? 4. 流的中间操作 中间操作就是对数据源中的数据的计算操作。

    94930发布于 2019-12-05
  • 来自专栏猫头虎博客专区

    Java8Java17 升级指南(Bug大全)

    Java8Java17 升级指南(Bug大全) Java 8 是旧时代的 Java 6,还不快升级 。 最近在做 Java8Java17 的迁移工作,前期做了一些准备,过程中的一些信息记录如下(持续更新。。。) 我们接触最多的是 gc 的日志,在 java8 中,我们配置 gc 日志的参数是 -Xloggc:/tmp/gc.log。 all level:info output:stdout decorators: uptime, level, tags GC 参数迁移 可以看到 GC 相关的参数都已经收拢到 Xlog 下,以前的很多 Java8 refine] GC(1) Updated Refinement Zones: green: 25, yellow: 75, red: 125 复制代码 看一下这部分的源码的变迁,就可以知道确实是如此了,在 Java8

    60610编辑于 2024-04-08
  • 来自专栏小工匠聊架构

    Java 8 - 06 Lambda 和方法引用实战

    8的API已经为你提供了一个 List 可用的 sort 方法, 这个是最难的部分,好在不用我们自己写了哈哈哈 ? 这就是在Java中传递策略的方式:它们必须包裹在一个对象里。我们说 sort 的行为被参数化了:传递给它的排序策略不同,其行为也会不同. 可能写出了如下代码 List<Enginner> enginnerList = Arrays.asList(new Enginner("Java", 18), new Enginner("GO", 20 8引入了Lambda表达式,它提供了一种轻量级语法来实现相同的目标:传递代码 。 这比Java 8之前的代码好在哪儿呢? 短小精悍 言简意赅 ,并且代码读起来和问题描述差不多:对enginnerList按照Job进行排序

    46830发布于 2021-08-17
  • 来自专栏小工匠聊架构

    Java 8 - 收集器Collectors_实战

    文章目录 Code Code public class CollectorsAction { public static List<Dish> menu = Arrays.asList(

    53120发布于 2021-08-17
  • 来自专栏全栈程序员必看

    Java 8 – 收集器Collectors_实战

    版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    30310编辑于 2022-11-15
  • Java 多线程与并发编程实战指南

    Java 自 1.0 起便内建了强大的线程支持,并在后续版本中不断增强并发能力:从基本的 Thread、synchronized,到 java.util.concurrent 包,再到 JDK 21 引入的虚拟线程 本篇文章将通过图文结合与代码演示,从入门到高阶,系统梳理 Java 多线程与并发编程的核心知识。二、Java 多线程基础2.1 什么是线程线程是操作系统能够调度的最小执行单元。 ;}); 优势: 轻量、无需繁杂线程池 自动调度 更适合高并发网络应用 图示:平台线程 vs 虚拟线程mathematica复制编辑平台线程:1 OS 线程 ↔ 1 Java 线程虚拟线程:N Java 线程 ↔ M OS 线程(通过调度器映射)十、实战项目案例:并发爬图工具(不涉及爬虫逻辑)需求: 读取 URL 列表 多线程下载图片 控制最大并发为 10 个线程 java复制编辑ExecutorService 本文从基础到进阶,涵盖了: 多线程创建与控制 同步机制与线程安全 并发工具类 线程池实战与虚拟线程 性能调优与常见问题 通过示例与图示辅助讲解,相信你对 Java 并发编程有了清晰的认识。

    48410编辑于 2025-06-06
领券