比如我们写一个代码如下:
boolean boo = 1 < 2;我们都知道boo对象是false;但是它为什么是false呢?请问你有考虑过吗?我联想到现实生活中是因为有一本叫做数学书的东西,说1<2,那么难道在java中也存在一本这样的"数学书"吗?

解决方案 »

  1.   

    不知道你想问什么?你是想问计算机怎么知道1<2吗?
    那就看你要按照什么样的规则来实现编译生成什么样的指令了
    正常情况下,1和2都是int,比较内存二进制代码就可以了,计算机只有0和1世界
    比如,1的二进制是0001,2的二进制是0010(举例用低字节部分),高位相同继续比较地位,高位不同高位为1的大,为0的小
      

  2.   

    哦,那假如你说的是真的,1的二进制是0001,2的二进制是0010,并且java中1和2比较也是比较二进制代码,那么这些二进制代码是在什么地方保存着的呢?
      

  3.   

    这个应该是CPU指令集里规定好的,跟Java没有关系。
      

  4.   

    最底层都是逻辑运算,这些二进制每一位数字都对应一个三极管的当前状态,0001的话就有四个三极管,三个低电位,一个高电位。不管两个数字的比较,还是复杂的逻辑,最后都是要靠逻辑电路实现的。上学的时候,数电这门课有讲的。java比较都是先要转换成汇编语言,汇编语言都是直接烤到cpu内部直接存储下来。最后由汇编语言转换成怎么去给哪个三极管通电。算这个的哪些三极管就是cpu里面的逻辑单元
      

  5.   

    你可以理解成cpu就是一堆小灯泡,有一个小程序管理这些小灯泡,它会用灯泡的亮灭来做运算,但是灯泡很多,一般人不太会直接操作这个程序,java就在这个小程序上面又封装了一层,比较接近自然语言了,大家就比较容易学,java把你写的代码转换成管理cpu的小程序能理解的话,又说了一遍
      

  6.   

    Do it as the rules do.
      

  7.   

    如果只是了解一下,没他们说的那么难?建议看一下微软一本科普书 书名是code
      

  8.   

    如果只是了解一下,没他们说的那么难?建议看一下微软一本科普书 书名是code
      

  9.   

    可以把1 < 2看作一次函数调用,函数名是<,返回类型是boolean,参数是两个整型,即
    boolean < (int a, int b)
    调用的时候就是 < (1, 2)
    类似的函数还有>,+,-等,函数的实现是有虚拟机底层实现,你不用操心,
    也就是虚拟机默认支持了一些数学操作,但不是所有的数学操作。