当前位置: 首页 > news >正文

Java基础-比较运算符Compare Operators

              Java基础-比较运算符Compare Operators

                                作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

一.关系运算符

  关系运算符包括:

    1>.大于(>)

    2>.大于等于(>=)

    3>.小于(<)

    4>.小于等于(<=)

    5>.等于(==)

    6>.不等于(!=)

  关系运算的结果是一个布尔值。

 

二.基本数据类型比较

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 public class CompareDome{
 8     public static void main(String[] args){
 9         System.out.println( 10 > 5 );        //true
10         System.out.println( 10 >= 5 );        //true
11         System.out.println( 10 < 5 );        //false
12         System.out.println( 10 <= 5 );        //false
13         System.out.println( 10 == 5 );        //false
14         System.out.println( 10 != 5 );        //true
15         
16         int a = 10;
17         int b = 20;
18         System.out.println( a > b );        //false,变量进行比较是比较两个变量的值。
19     }
20 }

 

三.字符串的比较

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 public class CompareDome2{
 8     public static void main(String[] args){
 9         String s1 = "abc";
10         String s2 = "abc";                    //直接赋值字符串字面量
11         String s3 = "ab" + "c";                //使用加号可以进行字符串的链接
12         String s4 = new String("abc");        //使用String类的构造方,创建字符串对象
13         
14         System.out.println(s1);
15         System.out.println(s2);
16         System.out.println(s3);
17         System.out.println(s4);
18         
19         System.out.println(s1 == s2);        //true
20         System.out.println(s1 == s3);        //true
21         System.out.println(s1 == s4);        //false
22         System.out.println(s2 == s3);        //true
23         System.out.println(s3 == s4);        //false
24         
25     }
26 }

   你可能会疑问,为什么输出的布尔值一次是:“true,true,false,true,false”,其实很简单,我们需要了解一下“堆区,栈去和方法区”。

  1>.Java把内存分为栈区,堆区,方法区三块;

  2>.s1,s2,s3,s4这四个是main方法中定义的局部变量,这四个变量在栈区中分配存储空间;

  3>.“abc”是使用双引号引起来的字符串字面量,字符串字面量存储在方法区中的常量区里。系统会先在常量区查找这个字符串是否存在,如果不存在就把“abc”字符串存储在常量区,然后把在常量区中的存储地址赋(内存地址)值给变量s1;如果常量区中有这个字符串,就直接把这个字符串的存储地址(内存地址)赋值给变量s2;

  4>.“ab”+“c”是两个字符串常量进行连接病生成一个新的字符串常量“abc”,现在常量区中已经存在“abc”字符串了,就直接把“abc”的存储地址(内存地址)赋值给变量s3;

  5>.s4这个字符串是通过new运算符创建的,new运算符会在堆中单独分配一块存储空间(内存地址),并将这个存储空间的内存地址赋值给变量s4,而分配的这个内存地址中存储的vlaue就是常量区中的“abc”。我们可以通过下图帮助我们理解: 

  如果想要比较字符串中的每个字符是否都一样,可以使用“equals()”方法。

 1 /*
 2 @author :yinzhengjie
 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
 4 EMAIL:y1053419035@qq.com
 5 */
 6 
 7 public class CompareDome3{
 8     public static void main(String[] args){
 9         String s1 = "abc";
10         String s2 = "abc";                    //直接赋值字符串字面量
11         String s3 = "ab" + "c";                //使用加号可以进行字符串的链接
12         String s4 = new String("abc");        //使用String类的构造方,创建字符串对象
13         
14         /**
15             String 是一个类,是一种引用数据类型。
16             s1,s2,s3,s4中存储的内容是从另外一块存储空间的引用(地址)。使用双等号(==)
17         进行比较时,是比较的这些变量中的值,即是否都引用了另外一块存储空间引用(地址)
18         */
19         
20         //如果想要比较字符串中的每个字符是否都一样,可以使用“equals()”方法。
21         System.out.println(s1.equals(s2));        //true
22         System.out.println(s1.equals(s3));        //true
23         System.out.println(s1.equals(s4));        //true
24         System.out.println(s2.equals(s3));        //true
25         System.out.println(s2.equals(s4));        //true
26         System.out.println(s3.equals(s4));        //true
27     }
28 }

 

转载于:https://www.cnblogs.com/yinzhengjie/p/8681000.html

相关文章:

  • LDAP DIT设计参考
  • 爬取校园新闻首页的新闻
  • 学习索引结构的一些案例——Jeff Dean在SystemML会议上发布的论文
  • node爬虫-使用puppeteer
  • 使用linux下的crontab定时任务跑定时脚本
  • mycat的wrapper.log日志中发现主从切换报错
  • react组件的生命周期
  • oracle中两个时间类型的数据相减默认得到的是天数。
  • 阿里云禁止25端口,使用465端口发送运维邮件
  • CentOS下设置Tomcat开机自动启动操作步骤
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • 柔弱的APP如何自我保护,浅谈APP防御手段,使用360加固助手加固/签名/多渠道打包/应用市场发布...
  • vue-学习系列之vue双向绑定原理
  • 答 ACM 调查问卷,限时领取阿里云代金券
  • phpmyadmin配置
  • 分享的文章《人生如棋》
  • 【node学习】协程
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • CentOS 7 防火墙操作
  • Effective Java 笔记(一)
  • hadoop集群管理系统搭建规划说明
  • Magento 1.x 中文订单打印乱码
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • Python3爬取英雄联盟英雄皮肤大图
  • 阿里云前端周刊 - 第 26 期
  • 翻译--Thinking in React
  • 猴子数据域名防封接口降低小说被封的风险
  • 技术:超级实用的电脑小技巧
  • 数组的操作
  • 微服务入门【系列视频课程】
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • ​香农与信息论三大定律
  • #if #elif #endif
  • (1)(1.13) SiK无线电高级配置(五)
  • (C语言)二分查找 超详细
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (附源码)ssm码农论坛 毕业设计 231126
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .NET4.0并行计算技术基础(1)
  • @angular/cli项目构建--Dynamic.Form
  • @media screen 针对不同移动设备
  • @property @synthesize @dynamic 及相关属性作用探究
  • @Valid和@NotNull字段校验使用
  • [2015][note]基于薄向列液晶层的可调谐THz fishnet超材料快速开关——
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——
  • [codeforces]Recover the String
  • [CTO札记]盛大文学公司名称对联
  • [C语言][C++][时间复杂度详解分析]二分查找——杨氏矩阵查找数字详解!!!
  • [Design Pattern] 工厂方法模式
  • [Dxperience.8.*]报表预览控件PrintControl设置
  • [iHooya]2023年1月30日作业解析