很久以前,我认为在Java中,将您拥有的域用于包命名是很愚蠢和尴尬的。
您在项目中使用哪个命名包?
一旦您了解了公约存在的原因,它就至少不会感到愚蠢或尴尬。
该方案有两个重要作用:
您所有的代码都包含在其他程序包不会与之冲突的程序包中。您拥有您的域名,因此是孤立的。如果我们没有这个约定,那么许多公司将有一个“实用程序”包,其中包含诸如“ StringUtil”,“ MessageUtil”等类。如果您尝试使用任何其他人的代码,这些包将很快冲突。
它的“反向”性质使类目录的布局在顶层非常狭窄。如果展开广口瓶,则会看到“ com”,“ org”,“ net”等目录,然后在每个组织/公司名称下。
我们通常不扩展jar,但是在早期的Java开发中,这很重要,因为人们对applet使用了扩展的dir结构。
但是,这很好,因为源代码目录结构具有非常“自上而下”的感觉。您从最普通的(com,org,net
…)到较不普通的(公司名称)再到更具体的(项目/产品/库名称)。
问题内容: 为什么我们使用诸如com.something之类的反向域名。或org.something。Java包的结构?我了解这带来了某种独特性,但是为什么我们需要这种独特性? 问题答案: 全局唯一的软件包名称避免了来自不同来源的库之间的命名冲突。使用域名注册表而不是创建新的全局名称中央数据库。从JLS: 建议的生成唯一程序包名称的约定只是在现有的,众所周知的唯一名称注册表之上搭载程序包命名约定的
问题内容: 我是一名.Net开发人员,开始为Android开发Java,并想知道考虑诸如.Net程序集之类的Java软件包是否正确。 问题答案: 没有。 最好的比较是与Java ARchive(Jar)文件。Java使用包来控制名称空间,并且与C#的名称空间非常相似。 这是我比较环境的方式
问题内容: 是否有类似于Java的OllyDbg / SoftICE的实用程序?即执行类(从jar /具有类路径),并且没有源代码,显示了中间代码的反汇编,能够逐步执行/遍历/搜索引用/在内存中编辑特定的中间代码/将编辑应用于文件。 。 如果不是,甚至有可能编写类似这样的内容(假设我们愿意在调试期间没有热点的情况下生存)? 编辑:我不是在谈论JAD或JD或Cavaj。这些是很好的反编译器,但是由于
问题内容: Java中有关线程命名的最佳实践是什么?是否有任何遵循的命名约定? 问题答案: 我会说一般的最佳实践是“选择好名字”,这适用于变量,方法,计算机,甚至可能是孩子(请问我的儿子Gerund Extravagaza Smith)。 因此,是的,如果可能的话,为线程选择有意义的名称。 假设我们要求文件或计算机的命名约定。您希望有一个普遍适用的答案吗?我认为您需要生成自己的约定,该约定对您创建
互联网上的大多数网站都说: “使用命令编译文件。然后使用命令运行它” 但是今天我试着运行一个没有javac的java程序,得到了一个奇怪的结果。 下面是名为的文件的内容: 然后我跑: 这给了我这个错误: 但是,当我在没有命令的情况下运行它时,它执行时没有任何错误。 命令是否也编译程序?如果是,为什么我们需要命令? 我的java版本是:
问题内容: java中的try … catch … finally块共有3种排列。 试着抓 尝试…抓住…最后 尝试…最后 一旦执行了finally块,控制权将移至finally块之后的下一行。如果我删除了finally块并将其所有语句移到try … catch块之后的行,那么与将它们放入finally块中的效果相同吗? 问题答案: 我认为willcode最接近在这里表达关键点,也许每个人都知道,但