Learning Path
浏览 Java 相关教程与章节。
主流编程语言、数据结构、设计模式、正则与基础算法。
教程
548
Java 9 改进 Javadoc Java 9 新特性 javadoc 工具可以生成 Java 文档, Java 9 的 javadoc 的输出现在符合兼容 HTML5 标准。 Java 9 之前的旧版本文档 考虑以下文件代码 C:/JAVA/Tester.java: 实例 [mycode3 type='java']/** * @author MahKumar * @version 0...
Java 9 钻石操作符(Diamond Operator) Java 9 新特性 钻石操作符是在 java 7 中引入的,可以让代码更易读,但它不能用于匿名的内部类。 在 java 9 中, 它可以与匿名的内部类一起使用,从而提高代码的可读性。 考虑以下 Java 9 之前的代码: 实例 [mycode3 type='java'] public class Tester { public st..
Java 9 模块系统 Java 9 新特性 Java 9 最大的变化之一是引入了模块系统(Jigsaw 项目)。 模块就是代码和数据的封装体。模块的代码被组织成多个包,每个包中包含Java类和接口;模块的数据则包括资源文件和其他静态信息。 Java 9 模块的重要特征是在其工件(artifact)的根目录中包含了一个描述模块的 module-info.class 文 件。 工件的格式可以是传统的 JAR 文件或是 Java 9 ..
Java 9 多版本兼容 jar 包 Java 9 新特性 多版本兼容 JAR 功能能让你创建仅在特定版本的 Java 环境中运行库程序时选择使用的 class 版本。 通过 --release 参数指定编译版本。 具体的变化就是 META-INF 目录下 MANIFEST.MF 文件新增了一个属性: Multi-Release: true 然后 META-INF 目录下还新增了一个 versions 目录,如果是要支持 ja..
Java 9 多分辨率图像 API Java 9 新特性 Java 9 定义多分辨率图像 API,开发者可以很容易的操作和展示不同分辨率的图像了。 以下是多分辨率图像的主要操作方法: Image getResolutionVariant(double destImageWidth, double destImageHeight) − 获取特定分辨率的图像变体-表示一张已知分辨率单位为DPI的特定尺寸大小的逻辑图像,并且这张图..
Java 9 新特性 Java 9 发布于 2017 年 9 月 22 日,带来了很多新特性,其中最主要的变化是已经实现的模块化系统。接下来我们会详细介绍 Java 9 的新特性。 Java 9 新特性 模块系统:模块是一个包的容器,Java 9 最大的变化之一是引入了模块系统(Jigsaw 项目)。 REPL (JShell):交互式编程环境。 HTTP 2 客户端:HTTP/2标准是HTTP协议的最新版本,新的 HTTPC..
Java 9 改进的 Optional 类 Java 9 新特性 Optional 类在 Java 8 中引入,Optional 类的引入很好的解决空指针异常。在 Java 9 中, 添加了三个方法来改进它的功能: stream() ifPresentOrElse() or() stream() 方法 语法 public Stream stream() stream 方法的作用就是将 Optional 转为一个 Strea..
Java 9 私有接口方法 Java 9 新特性 在 Java 8之前,接口可以有常量变量和抽象方法。 我们不能在接口中提供方法实现。如果我们要提供抽象方法和非抽象方法(方法与实现)的组合,那么我们就得使用抽象类。 实例 [mycode3 type='java'] public class Tester { public static void main(String []args) { ..
Java 9 改进的进程 API Java 9 新特性 在 Java 9 之前,Process API 仍然缺乏对使用本地进程的基本支持,例如获取进程的 PID 和所有者,进程的开始时间,进程使用了多少 CPU 时间,多少本地进程正在运行等。 Java 9 向 Process API 添加了一个名为 ProcessHandle 的接口来增强 java.lang.Process 类。 ProcessHandle 接口的实例标识一..
Java 9 REPL (JShell) Java 9 新特性 REPL(Read Eval Print Loop)意为交互式的编程环境。 JShell 是 Java 9 新增的一个交互式的编程环境工具。它允许你无需使用类或者方法包装来执行 Java 语句。它与 Python 的解释器类似,可以直接 输入表达式并查看其执行结果。 执行 JSHELL $ jshell | Welcome to JShell -- Version..
Java 9 改进的 Stream API Java 9 新特性 Java 9 改进的 Stream API 添加了一些便利的方法,使流处理更容易,并使用收集器编写复杂的查询。 Java 9 为 Stream 新增了几个方法:dropWhile、takeWhile、ofNullable,为 iterate 方法新增了一个重载方法。 takeWhile 方法 语法 default Stream takeWhile(Predic..
Java try-with-resources 语句 :root { --bg: #0f1117; --surface: #181c27; --surface2: #1e2433; --border: #2a3044; --accent: #4f9eff; --accent2: #7ee8a2; --accent3: #ffb347; --accent4: #ff6b6b;..
Java 实例 - 输出数组元素 Java 实例 以下实例演示了如何通过重载 MainClass 类的 printArray 方法输出不同类型(整型, 双精度及字符型)的数组: MainClass.java 文件 [mycode3 type='java'] public class MainClass { public static void printArray(Integer[] inputA..
Java 实例 - break 关键字用法 Java 实例 Java break 语句可以直接强行退出当前的循环,忽略循环体中任何其他语句和循环条件测试。 以下实例使用了 break 关键字来跳出当前循环: Main.java 文件 [mycode3 type='java'] public class Main { public static void main(String[] args)..
Java 实例 - continue 关键字用法 Java 实例 Java continue 语句语句用来结束当前循环,并进入下一次循环,即仅仅这一次循环结束了,不是所有循环结束了,后边的循环依旧进行。 以下实例使用了 continue 关键字来跳过当前循环并开始下一次循环: Main.java 文件 [mycode3 type='java'] public class Main { publi..
Java 实例 - enum 和 switch 语句使用 Java 实例 Java 创建枚举类型要使用 enum 关键字,隐含了所创建的类型都是 java.lang.Enum 类的子类 对enum进行遍历和switch的操作示例代码: Main.java 文件 [mycode3 type='java'] enum Car { lamborghini,tata,audi,fiat,honda }..
Java 实例 - Enum(枚举)构造函数及方法的使用 Java 实例 以下实例演示了Enum(枚举)构造函数及方法的使用: Main.java 文件 [mycode3 type='java'] enum Car { lamborghini(900),tata(2),audi(50),fiat(15),honda(12); private int price; Car(int p) { ..
Java 实例 - 阶乘 Java 实例 一个正整数的阶乘(英语:factorial)是所有小于及等于该数的正整数的积,并且有0的阶乘为1。自然数n的阶乘写作n!。 亦即n!=1×2×3×...×n。阶乘亦可以递归方式定义:0!=1,n!=(n-1)!×n。 以下实例演示了 Java 阶乘代码的实现: MainClass.java 文件 [mycode3 type='java'] publ..
Java 实例 - 斐波那契数列 Java 实例 斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368…… 特别指出:第0项是0,第1项是第一个1。 这个数列从第三项开始,每一项都等于前两项之和。 以下实例演示了 Java 斐波那契数列..
Java 实例 - for 和 foreach循环使用 Java 实例 for 语句比较简单,用于循环数据。 for循环执行的次数是在执行前就确定的。语法格式如下: for(初始化; 布尔表达式; 更新) { //代码语句 } foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。 foreach 语法格式如下: for(元素类型t 元素变量x : 遍历对象o..
Java 实例 - instanceof 关键字用法 Java 实例 instanceof 是 Java 的一个二元操作符,类似于 ==,>,< 等操作符。 instanceof 是 Java 的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。 以下实例创建了 displayObjectClass() 方法来演示 Java instanceof 关键字用法: Ma..
Java 实例 - 标签(Label) Java 实例 Java 中,标签(Label)是一种用于标识代码块的标识符,通常与循环语句(如for、while、do-while)和分支语句(如if-else、switch)一起使用。 标签的语法形式为在代码块之前加上标识符并以冒号结尾,例如: labelName: 跳出标签所标识的代码块,可以使用 break 或 continue 语句加上标签的方式。 以下实例演示了如何使用标..
Java 实例 - 方法重载 Java 实例 先来看下方法重载(Overloading)的定义:如果有两个方法的方法名相同,但参数不一致,哪么可以说一个方法是另一个方法的重载。 具体说明如下: 方法名相同 方法的参数类型,参数个不一样 方法的返回类型可以不相同 方法的修饰符可以不相同 main 方法也可以被重载 以下实例演示了如何重载 MyClass 类的 info 方法: MainClass.java 文件 [m..
Java 实例 - 方法覆盖 Java 实例 前面章节中我们已经学习了 Java 方法的重载,本文我们来看下 Java 方法覆盖的实现。 方法重载与方法覆盖区别如下: 方法重载(Overloading):如果有两个方法的方法名相同,但参数不一致,哪么可以说一个方法是另一个方法的重载。 方法覆盖(Overriding):如果在子类中定义一个方法,其名称、返回类型及参数签名正好与父类中某个方法的名称、返回类型及参数签名相匹配,那么..