关于 java9 模块化的意义
好像最大的意义就是减小打包体积 ?多点体积也就多占点磁盘空间吧?这个真的有很大意义吗,我是新人,说错话求不喷 ----------------------- 以下是精选回复-----------------------
答:嵌入式这类资源有限的场景可以方便裁剪一个精简的 JDK
模块级的作用域,只有 export 的 package 才能被其他模块使用,这个是一直依赖缺少的
反射的限制,只有 open 的才能被反射调用。
可以以模块为单位做 AOT 编译
传递的依赖可以不导出,比如 B 依赖于 A,C 依赖于 B,可以让 C 看不到 A。
等等
当然现在总体上来说对开发者带来的麻烦比好处大,至少目前为止
答:“模块化的 JVM,使之可以在内存有限的设备上运行。”
这句话,我也一知半解,安卓上好像用不到。莫非用在小型设备。
答:我玩了一段时间的 java9 经常踩莫名其妙的坑,多了那个 module-info.java 要管理,如果好处只是省点磁盘空间那我还是选择屏蔽掉这个特性,能避免很多坑
答:java9 把 rt.jar 和 tools.jar 拆分之后,包依赖的确清晰了一点,不用跑个 Hello world 就要引入几百 M 的东西。
这点对嵌入式设备来说会有用,但是对平常的 se,ee,感觉并没啥卵用。
然后 module-based 的依赖结构可能是以后的趋势,python,nodejs 都这么玩。在此之前 java 的方案是 OSGI,
但是 OSGI 不是 oracle 自己的规范,要搞模块化的话,肯定得自己掌握话语权。
java9 包括 java10 感觉也只是一个过渡而已,还是得看后续官方动作。
答:1. 减少打包体积
2. 改变应用发布方式
3. 使 jdk 自身(或者说大型项目)代码更易维护
4. 避免开发者错误使用内部( com.sun.*) API
5. 一定程度上避免 classpath 冲突(因为 a.b/a.b.c 和 x.y/a.b.c 不冲突)
0条评论