当前位置: 首页 > 面试题库 >

Java中方法的最大大小?

顾喜
2023-03-14
问题内容

我知道Java中一个方法的最大大小为64k。如果超过该限制,我们将收到一个编译器警告,例如“代码太大而无法编译”。所以我们可以称这为Java的缺点吗?

我们可以增加这个大小限制,还是真的有可能增加?

关于此方法大小还有其他想法吗?


问题答案:

以我的经验,64KB的限制只是生成代码的问题。尤其是 初始化大型数组时(通过代码完成)

在结构良好的代码中,每种方法的长度都是可管理的,并且比此限制小得多。可以从非Java文件(如文本文件或二进制文件)中读取要加载到数组中的大量数据。

编辑:

JIT不会编译大于8 K的方法是毫无价值的。这意味着代码运行速度较慢并且会影响GC时间(因为使用未编译的esp方法搜索线程的调用堆栈效率较低大的)

如果可能,您希望将方法限制为8 K,而不是64K。



 类似资料:
  • 问题内容: 我知道Java的方法不能大于64 KB。该限制导致我们从JavaCC语法生成的代码出现问题。我们在使用Java 6时遇到了问题,并且能够通过更改语法来解决此问题。是否已针对Java 7更改了限制,或者已针对Java 8计划了限制? 为了清楚起见。我不需要一个大于64 KB的方法。但是我写了一个可以编译成很大方法的语法。 问题答案: 根据JVMS7: end_pc是排他性的事实是Java

  • 我有下面的代码,其中计算最小和最大订单项目从列表并按预期工作。我想知道是否可以进一步重构/改进,使其更优化和高性能地处理数千或订单列表。 我故意不做 Collections.min(itemFrequencyMap.values()) 和 因为它需要对所有值进行两次迭代,然后再次循环遍历 以查找值和的条目。

  • 问题内容: 我想限制a的最大大小,以对正在实现的各种哈希算法进行度量。我在的一个重载构造函数中查看了loadfactor 。 我尝试在构造函数中将loadFactor设置为0.0f(这意味着我不希望HashMap的大小从EVER增大),但将此无效: 还有另一种方法来限制它的大小,使其永远不会增长吗? 问题答案: 有时越简单越好。

  • 本文向大家介绍三种Java求最大值的方法,包括了三种Java求最大值的方法的使用技巧和注意事项,需要的朋友参考一下 普通方法: 三元运算符: 注解:三元运算符的语法是 条件 ? 结果1 : 结果2;优点代码简洁,缺点可读性差 例子:int a,b,c; a=2;b=3; c=a>b?100:200; 语意:如果a>b,c=100;a<b,c=200 一般函数/方法: 注解:方法三需要用到面向对象的

  • 问题内容: Java中的方法可以拥有的最大参数数量是什么?为什么? 我在64位Windows系统上使用Java 1.8。 关于StackOverflow的所有答案都表明,技术限制为255个参数,但未指定原因。 确切地说,静态方法为255,非静态方法为254(在这种情况下为第255)。 我认为这可以用某种规范来描述,并且只允许静态定义最大数量的参数。 但这仅对 所有4字节类型有效。我使用参数进行了一

  • Java中的一个方法可以拥有的最大参数数是多少?为什么? 我正在64位Windows系统上使用Java1.8。 准确地说,255用于静态,254用于非静态(在本例中将是第255个)方法。 我认为这可以在某种规范中描述,并且只需要静态定义允许的最大参数数。 但这只对和所有4字节类型有效。我用参数做了一些测试,在那种情况下我只能声明127个参数。 限制与方法的堆栈大小有关系吗? 注意:我真的不打算在任