使用线程池的Java 8并行流用法

使用线程池的Java 8并行流用法

Java系列 3年前 (2021-06-29) 浏览: 454 评论: 0

执行并行流时,它在公共ForkJoinPool(ForkJoinPool.commonPool())中运行,由所有其他并行流共享。 有时我们希望在一个单独的专用线程池上并行执行代码,该线程池由特定数量的线程构成。例如,当使用myCollection.parallelStream()时,它并没有为我们提供方便的方法。 我编写了一个小的实用工具(ThreadExecutor类),可以用于此目的。 在下

如何在Java中实现LRU缓存

如何在Java中实现LRU缓存

Java系列 3年前 (2021-10-15) 浏览: 399 评论: 0

LRU缓存 最近使用最少(LRU)缓存是一种缓存逐出算法,它按使用顺序组织元素。顾名思义,在LRU中,最长时间未使用的元素将从缓存中逐出。 例如,如果我们有一个容量为三项的缓存: 最初,缓存是空的,我们将元素8放在缓存中。元素9和6像以前一样被缓存。但现在,缓存容量已满,要放入下一个元素,我们必须逐出缓存中最近使用最少的元素。 在我们用Java实现LRU缓存之前,最好先了解一下缓存的一些方面: 所

Java线程优先级

Java线程优先级

Java系列 2年前 (2022-05-07) 浏览: 309 评论: 0

线程被称为“最小的处理单元”,是一个轻量级的子进程,分配了一些需要执行的工作。线程共享分配给它们的相同内存插槽,并且彼此独立,因此促进了多任务处理。但是,当多个线程在共享内存插槽上运行时,必然会发生资源竞争。为了避免这种竞争,从而实现高吞吐量,引入了线程优先级的概念。当多个任务在同一个系统上运行时,它具有重要意义。“线程调度器根据优先级分配执行线程”。 JVM(JAVA虚拟机)默认或由程序员明确地

AREX Agent 技术实现细节分享

AREX Agent 技术实现细节分享

Java系列 9个月前 (08-07) 浏览: 201 评论: 0

原文地址:https://mp.weixin.qq.com/s/ObonOKMFftDCnFMs28ao7A 背景 在携程内部,随着公司业务规模和复杂度不断提高,研发测试团队面临着各种效能困境,尤其是在需要构造大量测试数据、写场景验证、发布频繁的场景下,业务的质量保障更是是重中之重。 为了满足公司持续交付的需求、并有效保障质量,我们基于流量录制回放的概念,在合法合规以及安全的前提下,开发了一款“用

Java递归算法讲解一

Java递归算法讲解一

Java系列 4年前 (2020-10-11) 浏览: 766 评论: 0

从另一个函数调用一个函数的想法立即暗示了函数调用自身的可能性。Java中的函数调用机制支持这种可能性,即递归。 下面这个视频通过代码讲述了递归的基本原理: 递归算法示例 递归的“Hello,World”是阶乘函数,它是由等式为正整数n定义的 public class Factorial { // return n! // precondition: n >= 0 and n <= 20

Java9 Modules

Java9 Modules

Java系列 3年前 (2021-01-26) 浏览: 1294 评论: 0

Java9模块是Java结构中最大的变化之一。这篇文章将对“Java9模块系统”做一个简要的介绍。 介绍 甲骨文公司将Java9的发布时间从2017年3月推迟到2017年9月。 正如我们所知,Java8带来了三大新特性(再加上一些增强和新特性)。 Lambda表达式 Stream API 日期API 同样,Java9也带来了三大特性(再加上一些增强和新特性): Java模块系统(Jigsaw项目)

Java8中的Lambda表达式

Java8中的Lambda表达式

Java系列 3年前 (2021-03-10) 浏览: 428 评论: 0

Lambda表达式基本上表示函数式接口的实例(具有单个抽象方法的接口称为函数接口)。一个例子是(java.lang.Runnable). lambda表达式实现唯一的抽象函数 关于函数式接口参考这篇文章:Java8中的函数式接口 lambda表达式是在java8中添加的,并提供以下功能。 允许将功能视为方法参数,或将代码视为数据。 可以不属于任何类而创建的函数。 lambda表达式可以像传递对象一

Java lambda表达式用法介绍

Java lambda表达式用法介绍

Java系列 3年前 (2021-08-26) 浏览: 329 评论: 0

在本文中,我们将通过示例了解Java lambda表达式以及lambda表达式在函数接口、通用函数接口和流API中的使用。 lambda表达式是在Java8中首次引入的。它的主要目标是提高语言的表达能力。 但是,在进入lambdas之前,我们首先需要了解功能接口。 什么是Functional Interface? 如果Java接口包含一个且仅包含一个抽象方法,则称为函数接口。只有一种方法指定了接口

日志框架Log4j与Logback的区别

日志框架Log4j与Logback的区别

Java系列 2年前 (2021-12-16) 浏览: 2608 评论: 0

Log4j与Logback之间的差异 Log4j被定义为基于java的应用程序,带有日志功能,它是用于将消息记录到不同输出的java框架,有助于定位问题。Logback被定义为log4j的继承者,log4j也是用于在任何基于java的应用程序中记录消息的java框架。一般来说,log4j和logback是java的日志框架,用于在运行时修改配置,也可以在不同的目的地进行输出。log4j有不同的版本

Spring框架:为什么我现在更喜欢简单的解决方案?

Spring框架:为什么我现在更喜欢简单的解决方案?

Java系列 2年前 (2022-06-15) 浏览: 369 评论: 0

曾几何时,Spring框架提供了比J2EE更轻量级和更灵活的解决方案。即使在2013年左右,我也很高兴详细了解当时的新款Spring 4。如今,7年后,当我看到春天的时候,我感到一阵恐慌。注释和@ComponentScan已经用更好的东西取代了XML,这需要一个可视化工具来理解您的系统。Spring变成了一头不断生长(和变化)的水螅。我接手并试图理解他人编写的Spring应用程序,这让我很痛苦。最

Windows环境下如何进行线程dump分析

Windows环境下如何进行线程dump分析

Java系列 4年前 (2020-02-16) 浏览: 1306 评论: 0

现在大部分公司都有自己完整的一套监控系统,比如美团的CAT,我们公司的监控系统也是基于CAT做的二次开发。一般测试环境或生产环境有问题可以直接使用这些系统查看线程和内存运行情况,分析排查问题。 但对于我们开发人员来说还是有必要了解最原始的排查流程,也就是不借助这些系统,使用最基本的命令解决,毕竟了解了这些底层实现对自身发展也是有帮助的。 网上搜下这样的文章其实很多,比如排查cpu过高,死锁问题的文

Java反射的用途系列一

Java反射的用途系列一

Java系列 4年前 (2020-10-23) 浏览: 298 评论: 0

Java反射提供了检查和修改应用程序运行时行为的能力。Java中的反射是核心Java的前沿课题之一。使用java反射,我们可以在运行时检查类、接口、枚举,获得它们的结构、方法和字段信息,即使类在编译时是不可访问的。我们还可以使用反射来实例化一个对象,调用它的方法,更改字段值。 Java中的反射 Java中的反射是一个非常强大的概念,它在普通编程中用处不大,但它是大多数Java、J2EE框架的主干。

如何在windows10上设置jdk环境变量?

如何在windows10上设置jdk环境变量?

Java系列 3年前 (2021-02-08) 浏览: 238 评论: 0

本文向你展示如何在Windows10上设置JAVA_HOME系统变量。 需要的工具: Windows10 JDK 1.8版 高级系统设置 在搜索框(Windows开始按钮旁边)中键入高级系统设置,单击查看高级系统设置。 环境变量 选择Advance选项卡,单击Environment Variables   添加JAVA_HOME 在系统变量中,单击新建。。。按钮添加一个新的JAVA_HO

什么是GraalVM?

什么是GraalVM?

Java系列 3年前 (2021-04-24) 浏览: 9315 评论: 0

GraalVM是开发人员编写和执行Java代码的工具。具体来说,GraalVM是由Oracle创建的Java虚拟机(JVM)和Java开发工具包(JDK)。它是一个高性能的运行时,可以提高应用程序的性能和效率。 GraalVM的目标包括:编写一个更快、更易于维护的编译器,提高在JVM上运行的语言的性能,减少应用程序启动时间,将多语言支持集成到Java生态系统中,以及为此提供一组编程工具。 Graa

新版JDK中的垃圾收集器:Shenandoah、ZGC和改进的G1

新版JDK中的垃圾收集器:Shenandoah、ZGC和改进的G1

Java系列 3年前 (2021-09-27) 浏览: 1750 评论: 0

ZGC、Shenandoah和G1中的改进使开发人员比以往任何时候都更接近无暂停时间。 在过去的六个月中,一些最令人兴奋的发展是JDK垃圾收集器(GC)的不断发展,首先,我们将介绍Shenandoah,它是一种低延迟GC,主要与应用程序同时运行;我们还将介绍作为jdk12部分的ZGC(java11在引入并发GC时的低延迟)的最新改进;我们将详细解释Java9 Start作为G1默认GC的两个改进。

Java演示CPU级的缓存效果

Java演示CPU级的缓存效果

Java系列 2年前 (2022-02-09) 浏览: 333 评论: 0

Joshua Bloch 在推特上发了一个链接(http://igoro.com/archive/gallery-of-processor-cache-effects/),使用高级编程语言(如C#)演示了CPU缓存的效果。强烈推荐! 那我们能否在Java中演示同样的效果呢?乍一看,这种可能性对我们不利:Java不是编译成本机代码,而是编译成中间字节码,而中间字节码可能会编译成本机代码,也可能不会编

Java Valhalla Project

Java Valhalla Project

Java系列 2年前 (2022-08-17) 浏览: 689 评论: 0

在本文中,我们将介绍Valhalla项目——它的历史原因、当前的开发状态,以及它发布后为日常Java开发人员带来了什么。 Valhalla项目的动机和原因 Oracle的Java语言架构师Brian Goetz在一次演讲中说,Valhalla项目的主要动机之一是希望使Java语言和运行时适应现代硬件。当Java语言诞生时(大约25年前撰写本文时),获取内存和算术运算的成本大致相同。 如今,这种情况

Java8的元空间到底是什么?

Java8的元空间到底是什么?

Java系列 4年前 (2020-09-30) 浏览: 827 评论: 0

Java8中关于Java7的一个重大变化是用元空间替换永久代。 我们将通过提醒一些关于永久代的信息来开始本文。主要,我们将列出它的缺点,以便更好地理解Java8中用元空间替换它的原因。第二部分将描述更多的新空间在内存中。最后一部分将介绍分析元空间中发生的事情的不同方法。 永久代Permgen缺陷 永久代是一个包含JVM所需数据的池,例如类或方法。当JVM想要创建给定类的新实例时,此数据很有用。通常

反射API:Java的黑科技

反射API:Java的黑科技

Java系列 4年前 (2020-11-03) 浏览: 565 评论: 0

在本文中,我将向您介绍一种Java程序员只在看似不可能的情况下使用的能力。Java的黑暗面是反射API 在Java中,反射是使用java reflection api实现的。 什么是Java反射? 互联网上有一个简短、准确和流行的定义。反射(从拉丁语reflexio晚期到turn-back)是一种在程序运行时探索有关它的数据的机制。反射允许您探索有关字段、方法和类构造函数的信息。 反射允许您处理编

NoClassDefFoundError和ClassNotFoundException的区别

NoClassDefFoundError和ClassNotFoundException的区别

Java系列 3年前 (2021-02-18) 浏览: 973 评论: 0

在本文中,我们将了解NoClassDefFoundError和ClassNotFoundException之间的区别。这是增加java异常知识的问题之一。 我们将研究NoClassDefFoundError和ClassNotFoundException的区别、相似性和示例。 NoClassDefFoundError和ClassNotFoundException之间的差异 Error与Excepti

登录

忘记密码 ?

切换登录

注册