当前位置: 首页 > 知识库问答 >
问题:

Java包名长度有限制吗?

巴照
2023-03-14

Java包名称的名称长度有限制吗?

就像包裹com.abc.xxx.xxxx.xxxx

共有2个答案

查淮晨
2023-03-14

根据Java语言规范(3.8):

"标识符是Java字母和Java数字的无限长序列,其中第一个必须是Java字母。"

然而,正如@Holger所指出的,JVM规范对可以在类文件常量池中表示的字符串值设置了2^16-1的上限。(参见JVM规范4.4.7)

包名是完全限定类名的一部分,后者表示为类文件常量池条目。因此,实际的上限是完全限定类名的长度,而不仅仅是包名。

假设,如果有人要创建一个不使用标准类文件格式的Java实现,那么还有另一个限制。。。Java字符串的长度,为2^31-1个字符。(请注意,字符串的最大长度在JLS中没有指定。这是Java类库和javadocs指定的。)

然而,现实情况是,这些实施限制如此之大,不应引起实际关切。

鞠侯林
2023-03-14

在类文件中,有一个实际限制,即完整的限定类名存储为(修改的)UFT-8序列,该序列的最大长度为65535字节,因为该长度存储为无符号短序列。

存储泛型类的签名可能需要更短的包名。如果您尝试多次创建一个将类型作为参数的方法,它将受到更大的限制,因为签名将在单个序列中包含每个参数的限定类型名和返回类型,但它仍然被限制为总共65535个UTF-8字节。

 类似资料:
  • 问题内容: 这个问题出现在Spring类中,该类具有相当长的类名称。类名长度的语言是否有限制? 问题答案: 在Java语言规范指出标识符的长度不受限制。 但是实际上,文件系统将限制生成的文件名的长度。

  • 问题内容: 以下问题仅适用于bash和linux: 文件的绝对路径名中的字符数是否有限制? 仅文件名(无扩展名)的字符数有限制吗? 如果是这样,这些限制是什么?如果它们是系统特定的,我该如何访问它们? 问题答案: 这在很大程度上取决于文件系统。对于ext FS(当前在Linux上最常用): 文件名最大长度:255个字节 最大路径长度:无 FS不能识别该扩展名,它包含255个字节,包括扩展名(您可以

  • 问题内容: 我正在尝试使用XML PATH连接查询中某些字符串数据的结果 请参阅下面的查询,发生的情况是XML串联列语句被截断了,似乎最大长度有限制,我该如何克服。 问题答案: 假设您在SSMS中看到了截断,请在SSMS的选项中更改最大字符设置: 工具>选项>查询结果> SQL Server>结果到文本>每列中显示的最大字符数 工具>选项>查询结果> SQL Server>网格结果>检索到的最大字

  • 问题内容: 我正在寻找一种方法来限制php中的字符串,并在字符串过长时在末尾添加…。 问题答案: 您可以使用类似于以下内容的东西:

  • 问题内容: 我需要比较两个byte []数组的元素,但只能比较固定长度。对于整个数组,我使用。当然,我可以复制子范围(),但我不想这样做。我也肯定应该有标准的方法来执行此操作,而无需执行新的实用程序方法。 我正式需要的是这样的: 有什么众所周知的东西吗?我看不到广泛使用的方法。 关于防止错误答案的要求:-数组等于长度限制。-我有手动执行功能,但我想将其替换为标准功能。-我不要任何副本。 先感谢您。

  • 问题内容: 有没有办法限制边框的长度。我有一个具有底部边框的,但是我想在的左侧添加一个边框,该边框仅向上延伸一半。 有没有办法在页面上不添加额外元素的方法? 问题答案: 希望这可以帮助: