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的更多相关文章

  1. Java基础-位运算符Bitwise Operators

    Java基础-位运算符Bitwise Operators 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.位运算特点 位运算符分为按位与(&),按位或(|),按位异或(^ ...

  2. Java基础-算术运算符(Arithmetic Operators)

    Java基础-算术运算符(Arithmetic Operators) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Java程序通过运算符实现对数据的处理,Java中的运算符包括: ...

  3. Java基础(运算符)

    Java中的运算符: 算术运算符:+  -  *  /   %    ++     -- %运算符叫取模:它就是取余的例如:43%7=1 其他的都是和数学里的运算符一样(不过在字符串中如果是两个字符串 ...

  4. Java基础之 运算符

    前言:Java内功心法之运算符,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) 计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,J ...

  5. java 基础one ---运算符and流程控制

    首先java这个了解下java的基础 首先java文件都是以.java结尾的  然后 他所有的内容都是有一个入口的就是放在了public static void main(String [] args ...

  6. 恶补java基础 位运算符

    以前不知道在哪看过别人写博客里的一句话  “越学的深入觉得自己会的东西越少”.最近研究了一下java的基础算法  hash表 被一些位运算符搞的头都大了 决心花一些时间研究一下以前一直觉得没用的东西! ...

  7. java基础2_运算符,选择语句

    算数运算符  +    相加  字符串的连接  正数 -    相减  负数 *    相乘 /    相除    10 / 3 ==> 3  两个操作数中精度最高的是int 结果也是int % ...

  8. 再回首,Java温故知新(七):Java基础之运算符

    常规算数运算符 包括+.-.*./.%分别对应着加.减.乘.除.取余,算数运算符所处理的两个数字必须为同种类型,如果是不同类型且无法进行自动类型转换的话必须进行强制类型转换,不过强制类型转换可能会丢失 ...

  9. Java基础——Instanceof 运算符

    Instanceof 运算符 java 中的instanceof 运算符是用来在运行时指出对象是否为特定类的一个实例 instanceof运算返回值:boolean类型 用法 boolean resu ...

随机推荐

  1. Ansible入门笔记(1)之工作架构和使用原理

    目录 Ansible入门笔记(1) 1.Ansible特性 2.ansible架构解析 3.ansible主要组成部分 1)命令执行来源: 2)利用ansible实现管理的方式 3)Ansile-pl ...

  2. Elasticsearch date 类型详解

    引言 一直对 elasticsearch 中的 date 类型认识比较模糊,而且在使用中又比较常见,这次决定多花些时间,彻底弄懂它,希望能对用到的同学提供帮助. 注意:本文测试使用是 elastics ...

  3. Page结构

    SQL Server存储数据的基本单元是Page,每一个Page的大小是8KB,数据文件是由Page构成的.在同一个数据库上,每一个Page都有一个唯一的资源标识,标识符由三部分组成:db_id,fi ...

  4. MQ见解

    MQ 消息队列是系统级.模块级的通信.RPC是对象级.函数级通信. 1) 什么是推模式,什么是拉模式 2) 有没有消息丢失情况,如何防止 3) MQ用来解决什么问题 4) 你们用的什么MQ,为什么要用 ...

  5. 《杜增强讲Unity之Tanks坦克大战》11-游戏流程控制

    11 游戏流程控制 使用协程来控制游戏流程 11.1 添加MessageText 首先添加一个Text来显示文字   image 设置GameMgr   image 11.2 游戏整体流程 下面Gam ...

  6. 173. Insertion Sort List【LintCode by java】

    Description Sort a linked list using insertion sort. Example Given 1->3->2->0->null, ret ...

  7. Unity3D与C#网站收藏

    siki学院(目前学习ing) http://www.sikiedu.com/ 雨松MOMO研究院 http://www.xuanyusong.com/ 知乎:Unity 开发教程相关回答(初步了解下 ...

  8. c# 简易绘制C语言头文件包含关系图 v2.0

    老规矩,先上图 节点样式说明: 1.粉色圆角,说明该节点下有循环引用 2.黄色菱形,说明该节点代表的文件在项目目录下未找到. 3.红色圆角,说明循环引用(从开始到最终,这种感情没变过,没有谁..... ...

  9. PAT-1001 采花生

    题目描述 鲁宾逊先生有一只宠物猴,名叫多多.这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!——熊字”. 鲁宾逊先生和多多都很开心,因为花生正是他 ...

  10. Book Review 《构建之法》-2

    -敏捷流程包括了几大原则:Backlog.burn-down.Sprint.Scrum. 敏捷开发注重个人之间的交流,提倡尽早的交付有价值的软件满足顾客的需求, 在开发过程中不断与客户进行交互,变化. ...