搜索

首页  >  问答  >  正文

Java 中 boolean 出现 等于1是什么鬼?

  1. 今天无意间查看BigDecimal类,debug的时候发现方法中定义了一个boolean类型的变量的值居然是1,在Java中boolean不应该不是true就是false吗?否则编译都是错的啊。

  2. 代码如下:

  3. 求知道答案的同学讲解一波,实在是迷糊了。

PHP中文网PHP中文网2770 天前1068

全部回复(5)我来回复

  • 黄舟

    黄舟2017-04-18 10:29:40

    len <= MAX_COMPACT_DIGIST 这不就是个boolean值吗,可能debug表述的缘故吧,

    回复
    0
  • PHPz

    PHPz2017-04-18 10:29:40

    java里的boolean编译后就是用int存的,可能你用的debugger显示了实际值吧

    回复
    0
  • 大家讲道理

    大家讲道理2017-04-18 10:29:40

    boolean isCompact =(len <= MAX_COMPACT_DIGIST);

    这段代码,首先会执行后面 len <= MAX_COMPACT_DIGIST 这个就是bool类型的
    所以这里赋值是没有错的。
    其次计算机不认识true和false的,这个概念是人为加上的。如果你学过C的话应该知道非0极为真,一般情况下认为1是真,0是假,其实2,3,4。。。也是真。
    所以在调试过程如果出现bool类型打印出来数字不要惊慌

    回复
    0
  • 怪我咯

    怪我咯2017-04-18 10:29:40

    1、很好奇你用了什么鬼IDE,IntelliJ IDEA?

    2、不想出现什么鬼,还是先从正统强大的Eclipse用起吧!你看,这不显示挺正常的嘛

    回复
    0
  • 阿神

    阿神2017-04-18 10:29:40

    参考mysql tinyint?

    回复
    0
  • 取消回复