首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JVM中的“`boolean`”类型的目的是什么?

JVM中的“`boolean`”类型的目的是什么?
EN

Stack Overflow用户
提问于 2015-12-29 11:28:11
回答 1查看 2K关注 0票数 7

作为JVMS8

尽管Java虚拟机定义了布尔类型,但它只提供了非常有限的支持。没有专门用于布尔值操作的Java虚拟机指令。相反,编译对布尔值进行操作的Java编程语言中的表达式,以使用Java虚拟机int数据类型的值。

事实上,这两种方法:

代码语言:javascript
运行
复制
boolean expr1(boolean a, boolean b) {
    return a || b;
}

int expr2(int a, int b) {
    return ((a != 0) || (b != 0)) ? 1 : 0;
}

将产生相同的字节码(方法签名除外)

代码语言:javascript
运行
复制
  boolean expr1(boolean, boolean);
    Signature: (ZZ)Z
    Code:
       0: iload_1       
       1: ifne          8
       4: iload_2       
       5: ifeq          12
       8: iconst_1      
       9: goto          13
      12: iconst_0      
      13: ireturn       

  int expr2(int, int);
    Signature: (II)I
    Code:
       0: iload_1       
       1: ifne          8
       4: iload_2       
       5: ifeq          12
       8: iconst_1      
       9: goto          13
      12: iconst_0      
      13: ireturn       

所以,我不明白为什么JVM需要boolean类型?只是为了方法签名的运行时检查?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-29 11:55:31

最低限度,它是需要维修方法超载。假设我们在同一个类中有两个方法

boolean a(boolean x) {...}

boolean a(int x) {...}

它们可以有不同的内部逻辑,因此在字节码中,它们应该通过签名来区分。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34510037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档