深入理解RPC(一)

1. 从多态说起 面向对象有三大特征:继承、封装、多态,我们先来说说多态。 多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,……

阅读全文

Maven打包构建完全指南二(打包构建)

打包构建 开发阶段我们一般都是在IDE里面直接运行Java代码,在项目发布部署时如何导出jar包或war包呢? 非Maven项目 以Eclipse为例,右击项目名,选择Export选择JAR file、Runnable JAR file或WAR file即可 Maven项目 Maven的打包策略有很多……

阅读全文

Maven打包构建完全指南一(依赖管理)

前言 Apache Maven是一个软件项目管理和构建工具。基于项目对象模型(POM)的概念,Maven可以从一个核心配置文件管理项目的构建,报告和文档。 虽然近年来Gradle作为后起之秀借着Android的东风大肆扩张,Maven作为主流构建工具的地位还是不可动摇的。我们可以看到很多明星项目……

阅读全文

对Spring IOC的理解

1. IOC是什么 Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。 用图例说明一下,传统程序设计如图1-1,都是主动去创建相关对象然后再组合起来:……

阅读全文

通配符与正则表达式

概述 正则表达式和通配符是两个极易混淆的概念,通常所说的通配符 ( wildcard ) 是指 Bash 操作接口的一个功能,而正则表示法则是一种字符串处理的表示方式。 通配符 从 Spring 路径匹配规则说起 作为一只 Java 程序猿,Spring 是必修课,想必多数人对 Spring 的路径匹配并不陌生,来看一段 SpringMVC 拦截器的配置。 1 2 3 4 5 <!-- 对静态资源……

阅读全文

Java8 的时间 API

概述 Java8 一个新增的重要特性就是引入了新的时间和日期 API,它们被包含在java.time 包中。借助新的时间和日期 API 可以以更简洁的方法处理时间和日期。 在Java8 之前,所有关于时间和日期的API都存在各种使用方面的缺陷,主要有: Java 的java.util.Date和java.util.C……

阅读全文

Java8 的 Stream API

为什么需要 Stream Stream 作为 Java8 的一大亮点,它与java.io包里的InputStream和OutputStream是完全不同的概念。Java8 中的Stream是对集合对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作,或者大批量数据操作。Stream API 借助于同样新出现的 Lambda 表……

阅读全文

Java8 的函数式编程

什么是函数式编程 简单说,「函数式编程」是一种「编程范式」,也就是如何编写程序的方法论。 它属于「结构化编程」结构化编程的一种,主要思想是把运算过程尽量写成一系列嵌套的函数调用。举例来说,现在有这样一个数学表达式: (1 + 2) * 3 - 4 传统的过程式编程,可能这样写: var a = 1 + 2; var b = a * 3; var……

阅读全文

Java8 接口中的 default 方法

为什么要有默认方法 在 Java8 之前,接口与其实现类之间的耦合度太高了,当需要为一个接口添加方法时,所有的实现类都必须随之修改。默认方法解决了这个问题,它可以为接口添加新的方法,而不会破坏已有的接口的实现。这在 lambda 表达式作为 Java8 语言的重要特性而出现之际,为升级旧接口且保持向后兼容提供了途径。 1……

阅读全文

REST API 指南

什么是 REST ? REST架构风格描述了六个约束。应用于体系结构的这些约束最初由Roy Fielding在他的博士论文中提出(参见https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm),并定义了RES……

阅读全文