首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

java 9:关于资源和模块的混乱规则

Java 9引入了模块系统,这是一个重要的变化,旨在提高Java应用程序的可维护性和安全性。在Java 9中,资源和模块的规则发生了一些混乱。

资源是指应用程序中的文件,例如配置文件、图像、音频文件等。模块是指将相关类和资源组织在一起的单元。

在Java 9之前,资源的访问是基于类路径的,即通过类路径中的目录和JAR文件来查找资源。但是,在Java 9中,模块系统引入了一种新的方式来管理和访问资源,即模块路径。

模块路径是一组模块的集合,它们按照依赖关系进行排序。模块路径中的每个模块都可以包含自己的资源。这意味着在Java 9中,资源的访问不再仅限于类路径,而是可以通过模块路径来查找。

然而,由于Java 9中资源和模块的规则变得更加复杂,可能会导致一些混乱。以下是一些可能导致混乱的规则:

  1. 模块路径和类路径的混合使用:在Java 9中,可以同时使用模块路径和类路径。这可能导致资源的查找顺序变得复杂,因为它们可以从不同的路径中加载。
  2. 模块之间的资源访问:在Java 9中,模块之间可以通过导出和开放指令来共享资源。这可能导致资源的可见性问题,因为某些资源可能只能在特定的模块中访问。
  3. 模块的版本冲突:在Java 9中,模块可以指定其所依赖的其他模块的版本。如果存在多个模块依赖于不同版本的同一个模块,可能会导致资源的版本冲突。

为了避免资源和模块的混乱,开发人员应该遵循以下几点:

  1. 熟悉模块系统:了解Java 9中模块系统的工作原理和规则,包括模块路径和类路径的区别,模块之间的依赖关系,以及资源的访问规则。
  2. 明确资源的位置:将资源放置在适当的模块中,并确保其他模块可以访问到这些资源。可以使用模块路径中的模块来组织和管理资源。
  3. 避免版本冲突:在定义模块的依赖关系时,确保所依赖的模块的版本是一致的,以避免资源的版本冲突。
  4. 使用合适的工具和框架:使用适当的工具和框架来简化模块系统的使用,例如Apache Maven或Gradle等构建工具,以及Spring Framework等开发框架。

腾讯云提供了一系列与Java开发和云计算相关的产品,例如云服务器、云数据库、云存储等。这些产品可以帮助开发人员在云环境中轻松部署和管理Java应用程序。您可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多关于这些产品的信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 代码整洁之道【笔记】

    一、整洁代码 A.混乱的代价 1.有些团队在项目初期进展迅速,但有那么一两年的时间却慢去蜗行。对代码的每次修改都影响到其他两三处代码 2.花时间保持代码整洁不但有关效率,还有关生存 3.程序员遵从不了解混乱风险经理的意愿,也是不专业的做法 4.Bjarne Stroustrup,C++发明者:我喜欢优雅和高效的代码。代码逻辑应该直接了当,叫缺陷难以隐藏;尽量减少依赖关系,使之便于维护;依据某种分层战略完善错误处理代码;性能调至最优,省得引诱别人做没规矩的优化,搞出一堆混乱来。整洁的代码只做好一件事。 5.Grady Booch,《面向分析与设计》:整洁的代码简单直接。整洁的代码如同优美的散文。整洁的代码从不隐藏设计者的意图,充满了干净利落的抽象和直接了当的控制语句。 6.Dave Thomas,OTI公司创始人:整洁的代码应可由作者之外的开发者阅读和增补。它应有单元测试和验收测试。它使用有意义的命名。它只提供一种而非多种做一件事的途径。它只有尽量少的依赖关系,而且要明确地定义和提供清晰、尽量少的API。代码应通过其字面表达含义,因为不同的语言导致并非所有必须信息均可通过代码自身清晰表达。 7.Michael Feathers,《修改代码的艺术》:我可以列出我留意到的整洁代码的所有特点,但其中有一条是根本性的。整洁的代码总是看起来像是某位特别在意它的人写的。几乎没有改进的余地。代码作者什么都想到了,如果你企图改进它,总会回到原点,赞叹某人留给你的代码——全心投入的某人留下的代码。 8.Ron Jeffries,《极限编程实施》:简单代码,依其重要顺序:能通过所有测试;没有重复代码;体现系统中的全部设计理念;包括尽量少的实体,比如类、方法、函数等 9.Ward Cunningham,Wiki发明者:如果每个例程都让你感到深合已意,那就是整洁代码。如果代码让编程语言看起来像是专为解决那个问题而存在,就可以称之为漂亮的代码。 B.思想流派 1.读与写花费时间的比例起过10:1 C.童子军军规 1.“让营地比你来时更干净” 2.如果每次签入时,代码都比签出时干净,那么代码就不会腐坏 二、有意义的命名 A.名副其实 1.变量、函数或类的名称应该已经答复了所有的大问题,如果名称需要注释来补充,那就不算名副其实 2.代码的模糊度:即上下文在代码中未被明确体现的程度 B.避免误导 1.程序员必须避免留下掩藏代码本意的错误线索。应当避免使用与本意相悖的词 2.以同样的方式拼写出同样的概念才是信息,拼写前后不一致就是误导 3.要注意使用小写字母i和大写字母O作为变量名,看起来像“壹”和“零” C.做有意义的区分 1.同一作用范围内两样不同的东西不能重名,如果名称必须相异,那其意思也应该不同才对 2.废话是另一种没意义的区分。假设你有一个Product类,如果还有一个ProductInfo或ProductData类,那它们的名称虽然不同,意思却无区别 3.只要体现出有意义的区分,使用a和the这样的前缀就没错 4.废话都是冗余。Variable一词记录不应当出现在变量名中,Table一词永远不应当出现在表名中 D.使用读得出来的名称 E.使用可搜索的名称 1.单字母名称和数字常量有个问题,就是很难在一大篇文字中找出来 F.避免使用编码 1.把类型或作用域编进名称里面,徒然增加了解码的负担 2.也不必用m_前缀来标明成员变量,应当把类和函数做得足够小,消除对成员前缀的需要 3.不加修饰的接口,不要用前导字母I G.避免思维映射 1.不应当让读者在脑中把你的名称翻译为他们熟知的名称,单字母变量名就是个问题 2.专业程序员了解,明确是王道 H.类名 1.类名和对象名应该是名词或名词短语,类名不应当是动词 I.方法名 1.方法名应该是动词或动词短语。属性访问器、修改器和断言应该根据其值命名,并依Javabean标准加上get、set和is前缀 2.可以考虑将相应构造器设置为private,强制使用这种命名手段 J.别扮可爱 1.言到意到,意到言到 K.别用双关语 1.避免将同一单词用于不同目的 2.应尽力写出易于理解的代码,把代码写得让别人能一目尽览而不必殚精竭虑地研究 L.使用解决方案领域名称 1.尽管用那些计算机科学术语、算法名、模式名、数学术语 M.使用源自所涉问题领域的名称 1.如果不能用程序员熟悉的术语来给手头的工作命名,就采用从所涉问题领域而来的名称 2.优秀的程序员和设计师,其工作之一就是分离解决方案领域和问题领域的概念 N.添加有意义的语境 1.你需要用有良好命名的类、函数或名称空间来放置名称,给读者提供语境 2.如果没这么做,给名称添加前缀就是最后一招了 O.不要添加没用的语境 1.只要短名称足够清楚,就要比长名称好 P.最后的话 1.取好名字最难的地方在于需要良好的描述技巧和共有文化背景 三、函

    03
    领券