java9-模块化介绍

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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值