【困惑】为什么java可以比较两个数的大小?

琴仙咩豆丁 2019-02-21 04:20:23
比如我们写一个代码如下:
boolean boo = 1 < 2;


我们都知道boo对象是false;但是它为什么是false呢?请问你有考虑过吗?

我联想到现实生活中是因为有一本叫做数学书的东西,说1<2,那么难道在java中也存在一本这样的"数学书"吗?
...全文
1469 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39936465 2019-03-01
  • 打赏
  • 举报
回复
引用 24 楼 maradona1984 的回复:
你应该预料到你问的问题的答案,这个就好比问人为什么会思考一样,大脑是怎么运行的之类的问题,你用大脑思考大脑是如何运行的问题,这个从逻辑上就是比较蛋疼,自己解释自己


这和自己解释自己还是有区别的,楼主问的是计算机硬件知识,编程属于软件知识。只能说楼主在软件论坛的问硬件问题,有点张冠李戴。

看看计算机原理就行了,基本原理不复杂,就是通过基本逻辑电路,与非门电路来达成加减法运算的,乘法和除法可以看成加减法的延伸。
stacksoverflow 2019-02-28
  • 打赏
  • 举报
回复
可以把1 < 2看作一次函数调用,函数名是<,返回类型是boolean,参数是两个整型,即 boolean < (int a, int b) 调用的时候就是 < (1, 2) 类似的函数还有>,+,-等,函数的实现是有虚拟机底层实现,你不用操心, 也就是虚拟机默认支持了一些数学操作,但不是所有的数学操作。
maradona1984 2019-02-28
  • 打赏
  • 举报
回复
引用 8 楼 琴仙咩豆丁 的回复:
引用 7 楼 liuxun963852 的回复:
最底层都是逻辑运算,这些二进制每一位数字都对应一个三极管的当前状态,0001的话就有四个三极管,三个低电位,一个高电位。不管两个数字的比较,还是复杂的逻辑,最后都是要靠逻辑电路实现的。上学的时候,数电这门课有讲的。java比较都是先要转换成汇编语言,汇编语言都是直接烤到cpu内部直接存储下来。最后由汇编语言转换成怎么去给哪个三极管通电。算这个的哪些三极管就是cpu里面的逻辑单元
好多专业名词啊,没听懂,哎,感觉越刨坑越深


你应该预料到你问的问题的答案,这个就好比问人为什么会思考一样,大脑是怎么运行的之类的问题,你用大脑思考大脑是如何运行的问题,这个从逻辑上就是比较蛋疼,自己解释自己
maradona1984 2019-02-28
  • 打赏
  • 举报
回复
引用 15 楼 娘胎单身 的回复:
如果只是了解一下,没他们说的那么难?建议看一下微软一本科普书 书名是code

这本书在我这吃灰很多年
Pluto-Whong 2019-02-28
  • 打赏
  • 举报
回复


去吧,会给你介绍的明明白白
哈希塞特 2019-02-27
  • 打赏
  • 举报
回复
这个可以上升到哲学问题了
qq_39936465 2019-02-26
  • 打赏
  • 举报
回复
先把2个数转化为2进制,然后相减得到的值在于0或一下,当结果不为0时表示大于。这是以前基础电路通过与或非门实现的,计算机硬件的基础知识。
Lzs1998 2019-02-24
  • 打赏
  • 举报
回复
这个是计算机规定好的
  • 打赏
  • 举报
回复
我也纠结过,只能感叹电脑神奇啊
慕竹清风 2019-02-24
  • 打赏
  • 举报
回复
应该是通过数字逻辑运算单元吧
weixin_40823947 2019-02-24
  • 打赏
  • 举报
回复
可以理解为硬件电路实现的吧
娘胎单身 2019-02-24
  • 打赏
  • 举报
回复
如果只是了解一下,没他们说的那么难?建议看一下微软一本科普书 书名是code
猫君之上 2019-02-24
  • 打赏
  • 举报
回复
早期计算机存储数据是纸带存储,穿孔表示1,闭孔表示0,依次排列组成二进制数,比较的话,属于计算机运算器处理的,真则返回1,假则返回0
威威貓 2019-02-23
  • 打赏
  • 举报
回复
其实你也可以理解为“数学书”,准确来说是计算机的一种规定。计算机底层知识太多了,像数电,模电等你只需了解即可,你若真要探究为什么的话,你需要具备这些与计算机底层原理相关的专业知识。
fei得更高 2019-02-23
  • 打赏
  • 举报
回复
计算机知道吗?我想它是不知道的,它只是按规矩显示(输出)
真相重于对错 2019-02-23
  • 打赏
  • 举报
回复
如果只是了解一下,没他们说的那么难?建议看一下微软一本科普书 书名是code
☄Veni 2019-02-23
  • 打赏
  • 举报
回复
Do it as the rules do.
liuxun963852 2019-02-22
  • 打赏
  • 举报
回复
你可以理解成cpu就是一堆小灯泡,有一个小程序管理这些小灯泡,它会用灯泡的亮灭来做运算,但是灯泡很多,一般人不太会直接操作这个程序,java就在这个小程序上面又封装了一层,比较接近自然语言了,大家就比较容易学,java把你写的代码转换成管理cpu的小程序能理解的话,又说了一遍
琴仙咩豆丁 2019-02-22
  • 打赏
  • 举报
回复
引用 7 楼 liuxun963852 的回复:
最底层都是逻辑运算,这些二进制每一位数字都对应一个三极管的当前状态,0001的话就有四个三极管,三个低电位,一个高电位。不管两个数字的比较,还是复杂的逻辑,最后都是要靠逻辑电路实现的。上学的时候,数电这门课有讲的。java比较都是先要转换成汇编语言,汇编语言都是直接烤到cpu内部直接存储下来。最后由汇编语言转换成怎么去给哪个三极管通电。算这个的哪些三极管就是cpu里面的逻辑单元
好多专业名词啊,没听懂,哎,感觉越刨坑越深
liuxun963852 2019-02-22
  • 打赏
  • 举报
回复
最底层都是逻辑运算,这些二进制每一位数字都对应一个三极管的当前状态,0001的话就有四个三极管,三个低电位,一个高电位。不管两个数字的比较,还是复杂的逻辑,最后都是要靠逻辑电路实现的。上学的时候,数电这门课有讲的。java比较都是先要转换成汇编语言,汇编语言都是直接烤到cpu内部直接存储下来。最后由汇编语言转换成怎么去给哪个三极管通电。算这个的哪些三极管就是cpu里面的逻辑单元
加载更多回复(6)

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧