java9-模块化介绍

青旅半醒 2022-04-22 09:08 340阅读 0赞

java9的模块化类似于nodejs,如果大家学过,可能更好理解模块化的概念。Oracle为什么要给java加入模块化,主要有以下几个问题:

  • 整个jre环境太大了,运行一个hello world也需要整个几百兆的jre环境
  • public是对任何东西都开放的,也可以访问内部的api,并且可以通过反射获取任何信息
  • 可以细粒度的控制依赖关系,比jar更好的依赖管理

jdk的目录也变了,现在是这样的
jdk目录

模块可以理解为是代码和数据的封装体,有一个配置的文件module-info.java,在里面声明需要引入哪些模块,此模块需要对外提供什么。我们看一下java.compiler的module-info
java.compiler module
exports就是把自己这个模块的下面的类给公开,其他引入这个模块的在module中用requires 就能引入,然后就可以用这个包下的类了。如果某个包没有被exports,就算是通过反射,也获取不到里面的类,public的可访问性收到了模块的限制。

实时内容请关注微信公众号,公众号与博客同时更新:程序员星星
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,340人围观)

还没有评论,来说两句吧...

相关阅读

    相关 java9模块

    到现在了,都快java17了,可是对于java9的module对于正式生产的使用文章少之又少,由于可以分模块打包,在加上graalvm的native image,对于云原生发布

    相关 java9模块编程示例

        这里是把在慕课网上看到的《Java9之模块系统》课程代码学习了一遍,加深了一些对模块化的理解,但是还是不太懂如今这种模块化思想,其实在java里面有了maven管理依赖

    相关 java9-模块介绍

    java9的模块化类似于nodejs,如果大家学过,可能更好理解模块化的概念。Oracle为什么要给java加入模块化,主要有以下几个问题: 整个jre环境太大了,运行