• 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 }
  • 相关阅读:
    jsp Servlet 3.0文件上传
    Android 模拟多线程下载
    Android之Handler用法总结
    Android 手机模拟器安卓软件
    Json笔记
    java.lang.ClassNotFoundException: com.google.gson.Gson”
    关于MD5加密
    Android 抽屉布局
    Android ListView 适配器
    如何在安裝SELinux的环境执行Quartus II
  • 原文地址:https://www.cnblogs.com/yinzhengjie/p/8681000.html
Copyright © 2020-2023  润新知