我是Java的新手,我知道包的功能。您可以使用它们将Java应用程序的多个文件一起排序。但是,如果您的应用程序只有一个类,那么将它放在一个包中是否标准?这样做的优点和缺点是什么?
编辑:我将此单个类打包到.jar
文件之后。
答案 0 :(得分:3)
来自oracle documentation,很明显
jar开发的主要动机是Java applets 和他们必需的组件(.class文件,图像和声音)可以 在单个HTTP事务中下载到浏览器,而不是 为每件作品打开一个新的连接。这大大改善了 可以将applet加载到网页上并开始的速度 运行。 JAR格式还支持压缩,这会减少 文件的大小,并进一步改善下载时间。 此外,JAR文件中的各个条目可以进行数字签名 由applet作者验证其来源。
来自Package Documentation of Oracle,
对于小程序和休闲开发,包可以是未命名的 (§7.4.2)或者有一个简单的名称,但是如果要广泛使用代码 应使用合格的选择分配独特的包名 名。这可以防止在其他情况下可能发生的冲突 两个开发组碰巧选择了相同的包名和 这些软件包后来被用在一个程序中。
答案 1 :(得分:2)
这实际上取决于您编译和运行程序的方式,但最终还是您的选择。
让我们看一下构建程序的一些不同方法。
javac
如果您使用javac
编译文件,则包无关紧要。它将生成与文件相同目录的.class
文件。
如果要编译为JAR文件,则.class
文件将位于程序包名称中指定的目录中。虽然这不会影响程序的运行方式。
在这两种情况下,我都说单个文件程序的包标识符是不必要的。但是,有一个例外。
如果你计划在更大的程序中使用该课程,那么添加相关的包名称将是必不可少的。
这是因为它会...
当默认包中的其他类具有相同名称时,防止名称冲突。
帮助人们了解您的课程是否他们想要的课程。
你能想象如果20个不同的开发人员在默认包中创建了一个List
类,并且不知何故他们都进入了一个项目吗?这将是混乱!我如何选择正确的List
?
因此,在编写其他人将在自己的项目中使用的类的情况下,您应该肯定使用包名。
答案 2 :(得分:0)
如果它只有一个类并且没有任何依赖项或资源文件,那么它可能是非生产应用程序。因此,完全取决于您如何启动应用程序。
如果您想分发您的应用 - 使其符合标准,请将其放入jar中,发布到maven ...
答案 3 :(得分:0)
Java类加载器通过连接包和类名来标识您的类。因此,如果不使用包,名称冲突的概率会更高。即使您的应用只包含一个类,您也可以明确地引用其他许多类。
同时考虑到你只能用一个类构建非常简单的应用程序,所以这个条件可能不会永远存在。
除此之外,没有包的类是边框情况,因此您可能会发现许多不能使用它的工具。(我在Eclipse的Web服务构建器工具中遇到此问题)。
简而言之,请使用包裹。它不会给你带来任何麻烦,并且(至少可能)会为你节省很多。