当前位置: 首页 > news >正文

jdk9模块化

JDK 9是Java开发语言的一个重大版本。其中最令人兴奋的新特性之一是模块化系统。模块化系统提出了一种新的代码组织方式,它可以帮助开发人员更好地组织和管理代码,从而使Java应用程序更加可维护、可扩展和安全。

Java 9的模块化系统基于模块概念,即Java开发人员现在可以将他们的代码组织成一个个小的、相互依赖的模块。每个模块都有明确的接口和实现,因此即使在代码的修改和维护时,也可以避免出现问题。

在Java 9之前,开发人员必须手动设置类路径并确保类库和依赖项正确加载。JDK 9模块化系统可以为每个模块分别定义类路径和依赖项,从而使每个模块更加清晰和独立。

JDK 9模块化系统为Java应用程序提供了三个主要方面的好处:

  1. 更安全

模块化系统能够更好地隔离代码,并且在运行时可以更有效地限制代码的访问。这就意味着,Java应用程序将更加安全,因为恶意的代码将不再有机会修改或执行其他代码。

  1. 更可维护

模块化系统可以帮助Java开发人员更好地组织和管理他们的代码。模块可以清晰地定义它们需要的依赖项,以及它们自身的接口和实现。这使得代码更加清晰、易于维护,并且更容易进行重构和扩展。

  1. 更少的冲突和更快的启动时间

在传统的Java应用程序中,类库和依赖项必须手动设置,并在启动时加载。这可能导致启动时间过长,并且可能会导致不必要的冲突。模块化系统解决了这个问题,因为每个模块的依赖项都是明确的,因此运行时加载和启动时间将更快,并且不会发生冲突。

总的来说,JDK 9模块化系统是一个伟大的改进。它可以帮助Java开发人员更好地组织和管理他们的代码,并提高应用程序的安全性、可维护性和性能。如果你是一个Java开发人员,你应该更新到JDK 9,并开始使用模块化系统来组织你的代码。

这里先解释一下,你的项目倘若没有module-info.java这个文件,那么一切都按照原先的形势执行,这里先解释一些专有名称requires代表模块依赖关系,指定当前模块依赖的其他模块,exports代表模块导出,指定当前模块向其他模块暴露的包。就是一个jar包里面暴露的包是需要生产者所思考的,而消费者只需要添加requires   但是:本模块里面的,也就是同一个包(旨在module-info.java所在的目录及其子目录)里面的是不需要加requires的

例子:就比如,我上一次的例子

HttpClientExample.java
package com.example.jdk11;

import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class HttpClientExample {
    public static void main(String[] args) {
        CloseableHttpClient httpClient = HttpClients.createDefault();
        HttpGet httpGet = new HttpGet("http://www.baidu.com");
        try (CloseableHttpResponse response = httpClient.execute(httpGet)) {
            BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
            String line;
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

倘若module-info.java文件

module java8Over {
    requires org.apache.httpcomponents.httpclient;
    requires org.apache.httpcomponents.httpcore;
    requires org.apache.commons.codec;
    requires java.net.http;
    //exports com.example.jdk9.mokuai;

}

倘若这里面,没有这些requires,则会报错,说找不到

相关文章:

  • 深度学习学习笔记-模型的修改和CRUD
  • Spring IOC之@ComponentScan
  • LAXCUS分布式操作系统是怎么实现的?
  • 【广州华锐互动】利用AR进行野外地质调查学习,培养学生实践能力
  • 【算法教程】排列与组合的实现
  • 华为OD 绘图机器(100分)【java】A卷+B卷
  • 项目经理之识别项目干系人
  • 百分点科技受邀参加“一带一路”国际合作高峰论坛
  • Android 特权应用 privapp-permissions 权限解读
  • 华为数通方向HCIP-DataCom H12-831题库(多选题:1-20)
  • Ansible 的脚本 --- playbook 剧本
  • SSD算法学习(单步多框目标检测)
  • 美格智能出席无锡智能网联汽车生态大会,共话数字座舱新势力
  • 【数据结构】模拟实现无头单向非循环链表
  • JOSEF约瑟 JHOK-ZBM1;JHOK-ZBL1多档切换式漏电(剩余)继电器 面板导轨安装
  • Flink之常用处理函数
  • 使用cxf将wsdl文件转换成java文件 webservice
  • 中文编程开发语言工具开发的实际软件案例:称重管理系统软件
  • 2023年最新版CorelDraw(cdr)软件下载安装教程
  • 【广州华锐互动】VR营销心理学情景模拟培训系统介绍
  • 长三角铁路今日预计发送旅客420万人次,有望创单日客发量新高
  • 解放日报:浦东夯实“热带雨林”式科创生态
  • 五大光伏龙头一季度亏损超80亿元,行业冬天难言结束
  • 美航母撞船后又遇战机坠海,专家:长时间作战部署疲于奔命是主因
  • 奈雪的茶叫停“能喝奶茶就不要喝水”宣传,当地市监称不要误导消费者
  • “五一”假期倒计时,节前错峰出游机票降价四成