Java基礎-比較運算符Compare Operators

              Java基礎-比較運算符Compare Operatorsspa

                                做者:尹正傑code

版權聲明:原創做品,謝絕轉載!不然將追究法律責任。對象

 

 

一.關係運算符blog

  關係運算符包括:內存

    1>.大於(>)字符串

    2>.大於等於(>=)io

    3>.小於(<)class

    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 }
相關文章
相關標籤/搜索