Java开发笔记(十三)利用关系运算符比较大小
前面在《Java开发笔记(九)赋值运算符及其演化》中提到,Java编程中的等号“=”表示赋值操作,并非数学上的等式涵义。Java通过等式符号“==”表示左右两边相等,对应数学的等号“=”;通过不等符号“!=”表示左右两边不等,对应数学的不等号“≠”。
可是一个等式真的就一定成立吗?譬如半斤八两这个成语,用Java等式改写的话变为“半斤==八两”。话说当年秦始皇统一中国,不但推行“书同文、车同轨”,而且也制定了重量单位的换算标准,当时规定十六两为一斤,从此沿用了两千多年。直到公元1959年,为了与国际接轨,中国发布了《关于统一计量制度的命令》,正式将称重计量定做十两为一斤。那么在1959年之前,“半斤==八两”这个等式是成立的;而在1959年之后,“半斤==八两”不成立。
为了区分某个式子成立和不成立的情况,Java把“==”看作是一种特殊的运算符号。凡是运算符都会得到运算结果,等式符号“==”也不例外,它的运算结果为布尔类型,值为true时表示这个等式成立,值为false时表示这个等式不成立。不等符号“!=”的运算结果与之类似,结果为true时表示不等式成立,为false时表示不等式不成立。下面是等式符号“==”和不等符号“!=”的运算代码例子,可以体会一下七上八下的返回结果:
int seven = 7;
int eight = 8;
// 数学的等号“=”对应Java的“==”符号
boolean equal = seven==eight; // 结果为真表示等式成立,为假表示等式不成立
System.out.println("equal="+equal);
// 数学的不等号“≠”对应Java的“!=”符号
boolean not_equal = seven!=eight; // 结果为真表示不等式成立,为假表示不等式不成立
System.out.println("not_equal="+not_equal);
除了等号和不等号,数学上还有其它比较数字大小的符号,包括大于号“>”、小于号“<”、大等号“≥”、小等号“≤”等等,Java也提供了对应的判断符号。如运算符“>”表示大于,运算符“<”表示小于,运算符“>=”表示大等于,运算符“<=”表示小等于。这些大小判断符号同样拥有布尔类型的运算结果,因此通过甄别结果值为true还是false,即可判定大小比较的式子是否成立。下面是如何使用大于小于符号的演示代码:
// 数学的大于号“>”对应Java的“>”符号
boolean greater = seven>eight;
System.out.println("greater="+greater);
// 数学的小于号“<”对应Java的“<”符号
boolean less = seven<eight;
System.out.println("less="+less);
// 数学的大等号“≥”对应Java的“>=”符号
boolean greater_and_equal = seven>=eight;
System.out.println("greater_and_equal="+greater_and_equal);
// 数学的小等号“≤”对应Java的“<=”符号
boolean less_and_equal = seven<=eight;
System.out.println("less_and_equal="+less_and_equal);
以上判断相等关系的两种运算符,加上判断大小关系的四种运算符,一共六种统称为“关系运算符”。
Java开发笔记(十三)利用关系运算符比较大小的更多相关文章
- Java开发笔记(序)章节目录
现将本博客的Java学习文章整理成以下笔记目录,方便查阅. 第一章 初识JavaJava开发笔记(一)第一个Java程序Java开发笔记(二)Java工程的帝国区划Java开发笔记(三)Java帝国的 ...
- Java开发笔记(八十三)利用注解技术检查空指针
注解属于比较高级的Java开发技术,前面介绍的内置注解专用于编译器检查代码,另外一些注解则由各大框架定义与调用,像Web开发常见的Spring框架.Mybatis框架,Android开发常见的Butt ...
- Java开发笔记(三十七)利用正则串分割字符串
前面介绍了处理字符串的常用方法,还有一种分割字符串的场景也很常见,也就是按照某个规则将字符串切割为若干子串.分割规则通常是指定某个分隔符,根据字符串内部的分隔符将字符串进行分割,例如逗号.空格等等都可 ...
- Java开发笔记(三十八)利用正则表达式校验字符串
前面多次提到了正则串.正则表达式,那么正则表达式究竟是符合什么定义的字符串呢?正则表达式是编程语言处理字符串格式的一种逻辑式子,它利用若干保留字符定义了形形色色的匹配规则,从而通过一个式子来覆盖满足了 ...
- Java开发笔记(二十三)数组工具Arrays
数组作为一种组合形式的数据类型,必然要求提供一些处理数组的简便办法,包括数组比较.数组复制.数组排序等等.为此Java专门设计了Arrays工具,该工具包含了几个常用方法,方便程序员对数组进行加工操作 ...
- Java开发笔记(四十三)更好用的本地日期时间
话说Java一连设计了两套时间工具,分别是日期类型Date,以及日历类型Calendar,按理说用在编码开发中绰绰有余了.然而随着Java的日益广泛使用,人们还是发现了它们的种种弊端.且不说先天不良的 ...
- Java开发笔记(五十三)关键字final的用法
前面介绍了多态的相关用法,可以看到一个子类从父类继承之后,便能假借父类的名义到处晃悠.这种机制在正常情况之下没啥问题,但有时为了预防意外发生,往往只接受当事人来处理,不希望它的儿子乃至孙子来瞎掺和.可 ...
- Java开发笔记(五十六)利用枚举类型实现高级常量
前面介绍了联合利用final和static可实现常量的定义,该方式用于简单的常量倒还凑合,要是用于复杂的.安全性高的常量,那就力不从心了.例如以下几种情况,final结合static的方式便缺乏应对之 ...
- Java开发笔记(六十三)双冒号标记的方法引用
前面介绍了如何自己定义函数式接口,本文接续函数式接口的实现原理,阐述它在数组处理中的实际应用.数组工具Arrays提供了sort方法用于数组元素排序,可是并未提供更丰富的数组加工操作,比如从某个字符串 ...
随机推荐
- js杨辉三角控制台输出
function Yang(line){ var arr=new Array() ;i<=line;i++){ ]==undefined){arr[i-]=[];} ){arr[]=[i]}){ ...
- 原生js实现删除class和添加class
内容来自百度搜索 //判断样式是否存在 function hasClass(ele, cls) { return ele.className.match(new RegExp("(\ ...
- QEMU KVM Libvirt手册(7): 硬件虚拟化
在openstack中,如果我们启动一个虚拟机,我们会看到非常复杂的参数 qemu-system-x86_64 -enable-kvm -name instance-00000024 -S -mach ...
- Raft协议实战之Redis Sentinel的选举Leader源码解析
这可能是我看过的写的最详细的关于redis 选举的文章了, 原文链接 Raft协议是用来解决分布式系统一致性问题的协议,在很长一段时间,Paxos被认为是解决分布式系统一致性的代名词.但是Paxos难 ...
- 如何在微信小程序定义全局变量、全局函数、如何实现 函数复用 模块化开发等问题详解
1.如何定义全局数据 在app.js的App({})中定义的数据或函数都是全局的,在页面中可以通过var app = getApp(); app.function/key的方式调用,不过我们没有必要 ...
- MapReduce计算模型的优化
MapReduce 计算模型的优化涉及了方方面面的内容,但是主要集中在两个方面:一是计算性能方面的优化:二是I/O操作方面的优化.这其中,又包含六个方面的内容. 1.任务调度 任务调度是Hadoop中 ...
- numpy.random 常用函数详解之排列乱序篇(Permutations)
1.numpy.random.shuffle(x) 参数:填入数组或列表. 返回值:无. 函数功能描述:对填入的数组或列表进行乱序处理,shape保持不变. 2.numpy.random.permut ...
- linux入门--类UNIX系统详解
有人说,这个世界上只有两种操作系统: UNIX 和类 UNIX 操作系统: 其它操作系统. 类 UNIX 系统(英文 Unix-like)既包括各种传统的 UNIX 系统,比如 FreeBSD.Ope ...
- ubuntu中环境变量的几个问题思考
问题一:export PATH=$PATH:/usr/local和export PATH=/usr/local:$PATH这两个的区别是什么?可以随便用吗? 这两个都是要把该目录加到环境变量中,一般的 ...
- Flume篇---Flume安装配置与相关使用
一.前述 Copy过来一段介绍Apache Flume 是一个从可以收集例如日志,事件等数据资源,并将这些数量庞大的数据从各项数据资源中集中起来存储的工具/服务,或者数集中机制.flume具有高可用, ...