Java基础-比较运算符Compare Operators
Java基础-比较运算符Compare Operators
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.关系运算符
关系运算符包括:
1>.大于(>)
2>.大于等于(>=)
3>.小于(<)
4>.小于等于(<=)
5>.等于(==)
6>.不等于(!=)
关系运算的结果是一个布尔值。
二.基本数据类型比较
/*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ public class CompareDome{
public static void main(String[] args){
System.out.println( 10 > 5 ); //true
System.out.println( 10 >= 5 ); //true
System.out.println( 10 < 5 ); //false
System.out.println( 10 <= 5 ); //false
System.out.println( 10 == 5 ); //false
System.out.println( 10 != 5 ); //true int a = 10;
int b = 20;
System.out.println( a > b ); //false,变量进行比较是比较两个变量的值。
}
}
三.字符串的比较
/*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ public class CompareDome2{
public static void main(String[] args){
String s1 = "abc";
String s2 = "abc"; //直接赋值字符串字面量
String s3 = "ab" + "c"; //使用加号可以进行字符串的链接
String s4 = new String("abc"); //使用String类的构造方,创建字符串对象 System.out.println(s1);
System.out.println(s2);
System.out.println(s3);
System.out.println(s4); System.out.println(s1 == s2); //true
System.out.println(s1 == s3); //true
System.out.println(s1 == s4); //false
System.out.println(s2 == s3); //true
System.out.println(s3 == s4); //false }
}
你可能会疑问,为什么输出的布尔值一次是:“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()”方法。
/*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/
EMAIL:y1053419035@qq.com
*/ public class CompareDome3{
public static void main(String[] args){
String s1 = "abc";
String s2 = "abc"; //直接赋值字符串字面量
String s3 = "ab" + "c"; //使用加号可以进行字符串的链接
String s4 = new String("abc"); //使用String类的构造方,创建字符串对象 /**
String 是一个类,是一种引用数据类型。
s1,s2,s3,s4中存储的内容是从另外一块存储空间的引用(地址)。使用双等号(==)
进行比较时,是比较的这些变量中的值,即是否都引用了另外一块存储空间引用(地址)
*/ //如果想要比较字符串中的每个字符是否都一样,可以使用“equals()”方法。
System.out.println(s1.equals(s2)); //true
System.out.println(s1.equals(s3)); //true
System.out.println(s1.equals(s4)); //true
System.out.println(s2.equals(s3)); //true
System.out.println(s2.equals(s4)); //true
System.out.println(s3.equals(s4)); //true
}
}
Java基础-比较运算符Compare Operators的更多相关文章
- Java基础-位运算符Bitwise Operators
Java基础-位运算符Bitwise Operators 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.位运算特点 位运算符分为按位与(&),按位或(|),按位异或(^ ...
- Java基础-算术运算符(Arithmetic Operators)
Java基础-算术运算符(Arithmetic Operators) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Java程序通过运算符实现对数据的处理,Java中的运算符包括: ...
- Java基础(运算符)
Java中的运算符: 算术运算符:+ - * / % ++ -- %运算符叫取模:它就是取余的例如:43%7=1 其他的都是和数学里的运算符一样(不过在字符串中如果是两个字符串 ...
- Java基础之 运算符
前言:Java内功心法之运算符,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) 计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,J ...
- java 基础one ---运算符and流程控制
首先java这个了解下java的基础 首先java文件都是以.java结尾的 然后 他所有的内容都是有一个入口的就是放在了public static void main(String [] args ...
- 恶补java基础 位运算符
以前不知道在哪看过别人写博客里的一句话 “越学的深入觉得自己会的东西越少”.最近研究了一下java的基础算法 hash表 被一些位运算符搞的头都大了 决心花一些时间研究一下以前一直觉得没用的东西! ...
- java基础2_运算符,选择语句
算数运算符 + 相加 字符串的连接 正数 - 相减 负数 * 相乘 / 相除 10 / 3 ==> 3 两个操作数中精度最高的是int 结果也是int % ...
- 再回首,Java温故知新(七):Java基础之运算符
常规算数运算符 包括+.-.*./.%分别对应着加.减.乘.除.取余,算数运算符所处理的两个数字必须为同种类型,如果是不同类型且无法进行自动类型转换的话必须进行强制类型转换,不过强制类型转换可能会丢失 ...
- Java基础——Instanceof 运算符
Instanceof 运算符 java 中的instanceof 运算符是用来在运行时指出对象是否为特定类的一个实例 instanceof运算返回值:boolean类型 用法 boolean resu ...
随机推荐
- Flutter - ListView禁止用户上下滑动
ListView禁止用户上下滑动可以使用physics属性 physics: const NeverScrollableScrollPhysics()
- Spring+SpringMVC+MyBatis整合优化篇
优化篇 Spring+SpringMVC+MyBatis+easyUI整合优化篇(一)System.out.print与Log Spring+SpringMVC+MyBatis+easyUI整合优化篇 ...
- ECS centos7 使用外部邮件服务商的465加密端口
ECS centos7 使用外部邮件服务商的465加密端口发送邮件. 1.修改/etc/mail.rc 文件中添加以下的 set smtp="smtps://smtp.163.com:465 ...
- GitHub 新手教程 一,GitHub 注册
1,注册地址: https://github.com/ 2,输入账号.邮箱.密码: 3,选择 Free 免费账号: 4,选择一些基本信息(翻译后中文见下面的图): 翻译如下: 5,打开你注册用的邮箱, ...
- Linux 第六周实验
姬梦馨 原创博客 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.进程控制块PCB——task_st ...
- 第二阶段冲刺——seven
个人任务: 马佳慧:设计界面背景,统一风格. 王金萱:整体运行测试上传到公网上的程序. 季方:修改优化已上传的代码. 司宇航:整体调试程序继续优化. 站立会议: 任务看板和燃尽图:
- 集美大学1414班软件工程个人作业2——个人作业2:APP案例分析
一.作业链接 个人作业2:APP案例分析 二.博文要求 通过分析你选中的产品,结合阅读<构建之法>,写一篇随笔,包含下述三个环节的所有要求. 第一部分 调研, 评测 下载软件并使用起来, ...
- Mac用户抓包软件Charles 4.0 破解 以及 抓取Https链接设置
相信大家曾经都是Window的用户,作为前端哪能没有一款抓包工具,抓包工具可以非常便捷的帮助我们分析接口返回报文数据,快速定位问题. 曾经横扫window用户的Fiddler便是我们的挚爱,然而,作为 ...
- RDM 使用与破解
RDM 的下载地址 https://cdn.devolutions.net/download/Setup.RemoteDesktopManager.13.6.2.0.msi#_ga=2.2471513 ...
- [转帖]Prometheus+Grafana监控Kubernetes
原博客的位置: https://blog.csdn.net/shenhonglei1234/article/details/80503353 感谢原作者 这里记录一下自己试验过程中遇到的问题: . 自 ...