领域驱动设计中的限界上下文和Java9的Module关系

领域驱动设计中的限界上下文和Java9的Module关系

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

领域驱动设计(Domain-Driven Design,DDD)是一套帮助我们设计有效的软件体系结构以提供更高业务价值的原则和工具。有界上下文(Bounded Context)是将整个应用程序域划分为多个语义一致的部分,从而将体系结构从一个大泥球中解救出来的核心和基本模式之一。 同时,利用java9模块系统,我们可以创建强封装的模块。 在本文中,我们将创建一个简单的存储应用程序,并了解如何利用Ja

Windows10设置Java环境变量步骤

Windows10设置Java环境变量步骤

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

为什么我需要设置JAVA_HOME? 许多基于Java的程序,如Tomcat,需要将Java_HOME设置为环境变量才能正常工作。请注意,JAVA_HOME应该指向JDK目录,而不是JRE目录。设置环境变量的目的是让程序知道可以在哪个目录中找到像javac这样的可执行文件。 打开高级系统设置 在Windows 10中,按Windows键+Pause暂停键,将打开系统设置窗口。转到“更改设置”并选择

Java中的native关键字讲解

Java中的native关键字讲解

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

native关键字充当JAVA语言与除JAVA之外的其他语言编写的代码块或库之间的链接,这可能取决于您操作的机器。如果将native关键字应用于一个方法,那么这意味着该方法将通过JNI(JAVA native interface)使用其他语言(如C或C++)编写的本机代码来实现。 Java中Native关键字的语法 本机代码的语法与普通函数定义相同,在函数开头添加了“native”关键字。 例如:

Java中的range函数简介

Java中的range函数简介

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

在Java中,Range方法在IntStream和LongStream类中都可用。在IntStream类中,它有助于返回函数参数范围内IntStream的顺序值。在该方法中,startInclusive(inclusive)和endExclusive(exclusive)是与增量步长一起使用的两个参数,如前所述,将包括起始值,并排除结束值。在LongStream的情况下,唯一的区别是添加了Long

JVM学习笔记之client server端区别

JVM学习笔记之client server端区别

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

今天继续远程办公,好想出去打篮球,但是怂,外面场地也不开放,只能窝在家憋大招。 互联网公司流行敏捷开发,快速迭代,所以憋出的大招不一定适用(扯远了)。 言归正传这次和大家分享一些虚拟机方面的知识,主要是关于jvm的client和server端区别,支持的工作模式有哪几种以及他们之间的关系。 java -version 命令大家都用过,大部分就是看下jdk版本或检查下环境变量的设置,但最后一行的信息

Java反射API教程及示例

Java反射API教程及示例

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

Java中的反射是什么? Java反射是在运行时分析和修改类的所有功能的过程。Java中的反射API用于在运行时操作类及其成员,包括字段、方法、构造函数等。 私有成员和方法的反射也是Java类的一个优点。 这个java.lang.reflect包提供了许多类来实现反射java.方法的java.lang.Class类用于收集特定类的完整元数据。 java.lang.reflect包中的类 下面是中各

如何正确设置jdk环境变量JAVA_HOME?

如何正确设置jdk环境变量JAVA_HOME?

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

在演示如何在所有操作系统上设置JAVA_HOME之前,让我们先解释一下什么是环境变量?JAVA_HOME环境变量的用途是什么? 作为先决条件,您需要在您的计算机上安装JDK或JRE。有关详细信息,请参阅如何安装JDK一文 您可能知道,几乎所有的java代码都有一个变量来存储一个值,这个值在程序中被多次使用。环境变量类似于final变量(在java中),但它是针对您的环境的。因此,JAVA_HOME

Java并行流parallelStream的处理速度竟然stream慢!

Java并行流parallelStream的处理速度竟然stream慢!

Java系列 3年前 (2021-05-14) 浏览: 2514 评论: 0

奇怪的是,为什么使用“parallelStream()”的代码有时比使用“stream()”的代码慢。 实际上,使用parallelStream()有几个问题。 最重要的是,parallelStream()总是需要执行比按顺序执行更多的实际工作[即stream()]。 在多个线程之间分割工作并合并或组合结果会带来很大的开销。像将短字符串转换为小写字符串这样的用例非常小,与并行拆分开销相比,它们可以

Java Streams:流创建及示例

Java Streams:流创建及示例

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

Streams允许我们以声明的方式对数据集合进行计算。在一种声明式编程方式中,您不指定如何做,而是指定要做什么。您可以创建流管道来执行计算。流管道包括: 消息来源 零个或多个中间操作 终端操作 Java streams流是懒惰的。因此,仅当终端操作启动时才执行中间操作。 Java streams pipeline 流管道 让我们考虑一个从图书目录中查找所有java图书作者的例子。使用streams

Java别名是如何工作的

Java别名是如何工作的

Java系列 2年前 (2022-03-04) 浏览: 297 评论: 0

在Java中,当引用(不止一个)链接到同一个对象时,使用Alias(别名)。别名的问题是,当用户写入特定对象时,其他几个引用的所有者不希望该对象发生更改。在这里,包含别名的代码可能会很快变得有点混乱,而且调试起来也非常繁琐。总的来说,别名是一个应该避免或谨慎使用的过程。让我们看看Java Alias是如何工作的。 alias在Java中是如何工作的? 如前所述,当多个引用链接到同一对象时,会使用别

如何实现一个WeakSet或WeakList?

如何实现一个WeakSet或WeakList?

Java系列 1年前 (2022-12-19) 浏览: 301 评论: 0

大家都知道Java里有WeakHashMap这样的数据结构,一个弱引用的Map,在内存不足GC时Entry会被回收掉,可以避免内存泄露的风险,虽然Java原生的Collections中并没有提供WeakSet或WeakList这样的数据结构,但自己实现也不难,其中最简单的方式是使用Collections.newSetFromMap转换一下: Set<Object> weakHashSe

Java递归方法Recursive详解

Java递归方法Recursive详解

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

我们探索一个方法可以做的最神奇的事情之一:调用自身来解决同一问题的较小版本。调用自身的方法称为递归方法。 递归Void方法 考虑以下示例: public static void countdown(int n) { if (n == 0) { System.out.println("Blastoff!"); } else { System.out.println(n); countdown(n -

Java反射并没有想象的慢

Java反射并没有想象的慢

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

当阅读Java反射时,很难知道反射有多慢。也许我们大多数人都见过将反射与直接方法分派、lambdas等进行比较的基准测试,而反射通常损失惨重。然而,前几天,我遇到了这样一种情况:反思的表现远远超过了其他选择。 在过去的几个月里,我把大部分空闲时间都花在了游戏开发的脚本语言/解释器上。语言是动态类型化的,并编译成自定义字节码格式,由Java编写的解释器运行。解释器的最初设计使用了一个“catch a

如何正确调整Java10应用的容器大小

如何正确调整Java10应用的容器大小

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

在AWS亚马逊云上,我们运行并将容器化应用程序部署到PaaS管道中。基于Java或JVM的工作负载是部署到Pipeline的重要工作负载之一,因此正确处理它们对我们和用户都非常重要。 对于我们来说,在spotguides中正确地调整容器的大小是很重要的,这样可以避免资源利用不足,并提供应用程序顺利运行所必需的资源。应避免利用不足,因为它会对成本产生负面影响。没有人愿意为CPU闲置的时间或从未使用过

Java函数式接口编程

Java函数式接口编程

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

只有一个抽象方法的接口称为函数接口。您可以使用Java提供的预定义函数接口,也可以创建自己的函数接口并使用它。您可以在这里检查预定义的函数接口:预定义的函数接口它们都只有一个抽象方法。这就是原因,它们也被称为单抽象方法接口(SAM接口)。 要在Java中使用lambda表达式,您需要创建自己的函数式接口或使用Java提供的预定义函数接口。创建自己的函数接口时,请使用@FunctionalInter

Java开发中需要避免的7个错误

Java开发中需要避免的7个错误

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

随着时间的推移,Java已经成为软件开发中流行的编程语言。虽然java比C++或C++更受欢迎,但这种编程语言仍然存在问题。下面是开发人员可能犯的七个Java开发错误,以及如何避免这些错误。 忘记在代码中加“Break” Paper fellows and Australian help的技术作家奥斯汀·莫登(Austin Molden)说:“忘记‘break中断’部分可能会对编码有害。”,因为忘

Java正则表达式API系列三

Java正则表达式API系列三

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

Boundary Matchers Java regex API还支持边界匹配。如果我们关心在输入文本中匹配的确切位置,那么这就是我们要寻找的。在前面的示例中,我们关心的只是是否找到匹配项。 为了仅在文本开头所需的正则表达式为true时匹配,我们使用插入符号^。 此测试将失败,因为可以在开头找到文本dog: @Test public void givenText_whenMatchesAtBegi

Java9 Variable Handles-变量句柄简介

Java9 Variable Handles-变量句柄简介

Java系列 6个月前 (11-13) 浏览: 101 评论: 0

Java 9为开发人员带来了许多新的有用功能。 其中之一是java.lang.invoke.VarHandle API—表示变量句柄—我们将在本文中对此进行探讨 什么是变量句柄? 通常,变量句柄只是对变量的类型化引用。变量可以是类的数组元素、实例或静态字段。 VarHandle类在特定条件下提供对变量的写和读访问。 VarHandles是不可变的,并且没有可见的状态。更重要的是,它们不能被细分。

Java递归函数recursive算法讲解系列四

Java递归函数recursive算法讲解系列四

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

用递归反转序列 让我们考虑一个数组的n个元素的倒序问题,以便第一个元素成为最后一个元素,第二个元素成为倒数第二个元素,依此类推。我们可以使用线性递归来解决这个问题,通过观察序列的反转可以通过交换第一个和最后一个元素,然后递归地反转剩余的元素来实现。我们在代码中给出了该算法的一个实现,使用的约定是,我们第一次将此算法称为reverseArray(data,0,n−1)。 /∗∗ Reverses t

找不到或无法加载主类?

找不到或无法加载主类?

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

有时,当我们运行Java程序时,我们可能会看到“找不到或无法加载主类”。原因很容易猜测:JVM找不到主类并给出了这个错误。但是为什么不能呢? 在本文中,我们将讨论找不到主类的可能原因。另外,我们将看看如何修复它们。 示例程序 我们将从HelloWorld程序开始: public class HelloWorld { public static void main(String[] args) {

登录

忘记密码 ?

切换登录

注册