JSR 94 Rule Engine
引言 许多业务应用程序必须应对市场经济的动态变化。例如,用于保险和银行业的应用程序必须能够适应在设计过程中没有人能够预测或计划的不可避免的市场...
引言 许多业务应用程序必须应对市场经济的动态变化。例如,用于保险和银行业的应用程序必须能够适应在设计过程中没有人能够预测或计划的不可避免的市场...
Java Instrumentation API,提供允许 Java 编程语言代理人(Agent)Instrument 在 JVM 上运行的程序的服务。 Agent:代理,以下文章中的所述代理都是指 Java...
从 1.4 版本开始,Java 提供了另一套 I/O 系统,称为 NIO(New Input/Output 的缩写)。NIO 支持面向缓冲区的、基于通道的 I/O 操作。随着 JDK7 的发布,Java 对 NIO 系统进行了极...
1. 引言 Java 的核心优势之一是借助 JVM 内置的垃圾收集器(或简称 GC)的自动内存管理。GC 隐式地负责分配和释放内存,因此能够处理大多数内存泄漏问题。 尽...
流的创建 空流 如果创建空流,则应使用 Stream.empty() 方法。 通常情况下创建空流的目的是避免返回 null: public Stream<String> streamOf(List<String> list) { return list == null || list.isEmpty() ? Stream.empty() : list.stream(); } 从数组或集合创建流 我们...
案例分析 我们经常遇到涉及很多条件的业务逻辑,每个都需要不同的处理。我们以 Calculator 类为例。我们将有一个方法,它接受两个数字和一个运算符作为输入,并根据操作返回结果: ...
在学习 Java8 时发现一些写法真的很优秀,用了就有种回不去的感觉,很好的处理了 Java 代码上的烂味道。 匿名内部类 在任何使用内部类的地方都使用 lamdba表达式 进行重构,比如: list.sort(new Comparator<String>() { public int compare (String o1, String o2) { return o1.length() - o2.length(); } }); 可以更简洁的写成: list.sort((o1,o2) -> o1.length() - o2.length()); ...
Java 8 提供了一个新的 API(称为”流“,Stream),它支持大数据的并行操作,其思路和在数据库查询语言中的思路相似 – 用更高级的方式表达想要的东西,而由”实现“(在这里是 Streams 库)来选择最佳低级执行机制。这样就可以避免用 synchronized 来编写代码,这一行代码不仅容器出错,而且在多核 CPU 上执行所需的成本比想象要高1。 思想 是函数式编程(functional programming)的一种 Java 实现 强调将计算过程分解成可复用的函数,主要使用 map 方法和 reduce 方法组合而成的 MapReduce 算法,最好的实现 Apache Hadoop ...
什么是缓存 术语缓存在计算机中无处不在。在应用程序设计的上下文中,它经常被用来描述应用程序开发人员利用单独的内存或低延迟的数据结构。缓存,用于...
什么是代理 代理是一种设计模式。当我们想要添加或修改现有类的某些功能时,我们创建并使用代理对象。通常,代理对象具有与原始代理对象相同的方法,并...