国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java中==運算符與equals方法的區別及intern方法詳解

Java中==運算符與equals方法的區別及intern方法詳解

2020-09-16 15:42StellaAh Java教程

這篇文章主要介紹了Java中==運算符與equals方法的區別及intern方法詳解的相關資料,需要的朋友可以參考下

Java中==運算符equals方法的區別及intern方法詳解

1.  ==運算符與equals()方法
2. hashCode()方法的應用
3. intern()方法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
/*
Come from xixifeng.com
Author: 習習風(StellAah)
*/
public class AboutString2 
{
  public static void main(String[]arsgs)
  {
    String myName="xixifeng.com";
    String myName3="xixifeng"
    String myName4=".com";
    String myName5=myName3+myName4;
    String myName6="xixifeng.com";
     
    if(myName==myName5)
    {
       
      System.out.println("myName==myName5");
    }
    else
    {
      System.out.println("myName="+myName);
      System.out.println("myName5="+myName5);
      System.out.println("myName!=myName5");
    }
    //經運行打印出: myName!=myName5
     
    if(myName==myName6)
    {
      System.out.println("myName==myName6");
    }
    else
    {
      System.out.println("myName!=myName6");
    }
    //經運行得出: myName!=myName5,myName==myName6
     
    //myName,myName5(myName5的值是由myName3+myName4得到的),myName6 這三個對象的值是相等的, 為什么 它們之間用==進行運算的結果是 myName!=myName5,myName==myName6呢?
    //原因在于==運算符
    //顯然==參與String運算中不是用來比較值的,而是用來比較對象是否相等的.
    //那么在String運算中,通過什么方法來比較它們的值是否相等呢,java 提供了equals()方法 ,主要用于比較對象的值是否相等
    //示例如下:
    //myName==myName5 是false (不是同一個對象)
    if(myName.equals(myName5))
    {
      System.out.println("myName.equals(myName5) 比較的結果是true !");
    }
    else
    {
      System.out.println("myName.equals(myName5) 比較的結果是false !");
    }
    //經運行輸出:myName.equals(myName5) 比較的結果是true ! 在由于myName與myName5不是同一個對象,充分說明:
    //equals()方法[是用來比較對象的值是否相等]
     
    //再拋出疑問:是不是兩個對象的哈希值相等就說明這兩個對象相等呢?
    //(由上述測試myName==myName5 得出false ①表明myName與myName5不是同一個對象)
    System.out.println(myName.hashCode());
    System.out.println(myName5.hashCode());
    //經測試 ②myName與myName5的哈希值相等
    //由①,② 得出: 兩個對象的hashCode值相等,不能表明其對象也相等.
 
    //拋出疑問: 怎樣使myName與myName5的對象相等呢?
    //引入intern()方法
    myName5=myName5.intern();
    if(myName==myName5)
    {
       
      System.out.println("(myName==myName5) 得true");
    }
    else
    {
      System.out.println("(myName==myName5) 得false");
    }
    //經運行打印出: (myName==myName5) 得true
    //結論: intern()方法能使兩個(對象不相等而值相等的)對象變得相等
    //myName5.intern();的意思,可以解釋為: myName5在內存中查找對象嫁給自己,條件是,該對象要與自己的值相等. 找到了,就指定該對象.
    //myName5找到對象,并認定,就不必再創建對象了,所以說這樣做,可以節約內存資源.
     
    //拋出疑問: 什么樣的對象建議使用intern()呢?
    // myName="xixifeng.com" myName6="xixifeng.com", myName與myName6的對象是相等的,上述已經證實.
    // 所以說,對象在直接賦予同樣的值的時候沒有必要用intern().
    //myName="xixifeng.com" myName5=myName3+myName4,它們的值相等,但是對象不相等,上述已經證實.
    //所以說, 對象在間接賦予(有可能與已有對象)同樣的值的時候,建議用一下intern()方法,從而可公用內存中存在的對象.
     
     
    //==參與int型運算中,也營造類似的比較
    int i=8;
    int j=3;
    int k=5;
    int m=j+k;
    int n=8;
    if(i==m)
    {
      System.out.println("i="+i);
      System.out.println("m="+m);
      System.out.println("i==m");
    }
    else
    {
      System.out.println("i!=m");
    }
     
    if(i==n)
    {
      System.out.println("... ... ... ...");
      System.out.println("i="+i);
      System.out.println("n="+n);
      System.out.println("i==n");
    }
    else
    {
      System.out.println("i!=n");
    }
    //經運行得出i=m(m的值由j+k得到),i=n
    //i,m,n的值都相等 , 由于i==m 得出true i==n得出true 
    //所以可以得出結論: ==參與非對象類型運算時,是用來比較常量的值是否相等   
  }
}

綜上所屬,得出如下結論:

1) ==運算符參與對象類型運算時是用來比較對象是否想得的.
2) ==運算符參與非對象類型運算時是用來比較值是否相等的.
3) equals()方法用于比較兩個對象的值是否相等
4) 兩個對象的hashCode()值相等,并不代表其對象也相等
5) intern()方法能使兩個(對象不相等而值相等的)對象變得相等,從而可以公用內存已有的對象,這樣做可以節約內存資源.
6) 對象在間接賦予(有可能與已有對象)同樣的值的時候,建議用一下intern()方法,從而可公用內存中存在的對象.

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 中文字幕亚洲一区二区三区 | 中文字幕亚洲一区二区va在线 | 久久精品亚洲一区二区 | 亚洲成人在线播放视频 | 精品色 | 久久久精品亚洲 | 天天天干夜夜夜操 | 久久久青草婷婷精品综合日韩 | 免费一级电影 | 久久99精品久久久久久园产越南 | 午夜日韩 | 精品国产精品三级精品av网址 | 午夜视频在线免费观看 | 亚洲日韩成人 | 色欧美片视频在线观看 | 91亚洲国产 | 91看片淫黄大片一级在线观看 | 久久久久久久av | 黄色欧美视频 | 91在线视频在线 | 成人午夜在线 | 中文字幕国产 | 国产免费天天看高清影视在线 | 国产一区二区黑人欧美xxxx | 欧美日韩国产一区二区三区 | 国产中文在线 | 性色浪潮 | 欧美一级免费 | 国产大片在线观看 | 日韩精品日韩激情日韩综合 | 欧洲一级毛片 | 欧美一区二区三区在线播放 | 午夜爱爱毛片xxxx视频免费看 | 一区二区中文 | 懂色av中文字幕一区二区三区 | 欧美成人一区二区三区片免费 | 久久久久久成人 | 国产特级毛片aaaaaaa高清 | 成人午夜视频在线观看 | 一级黄色国产视频 | 国产精品一区二区三区免费 |