成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java操作符易混淆點你解決了么?

開發 后端
本篇文章講的是Java操作符里面一些比較容易出錯的地方,希望對大家有所幫助。

今天開始重新溫習Java,翻了翻java編程思想,看到操作符那里有一些考試面試經常遇到的又容易出錯的地方,在這記錄一下。

1. 賦值操作:在對一個對象進行賦值操作時,我們所操作的是對對象的引用。比如使用c=d,將對象d賦給對象c,這時c所指向的正式d之前所指向的內存,這時如果改變c或者d其中任何一個的值,另外一個的值也會變。

下面舉個例子說明:

Java代碼

 

  1. class A{     
  2.     int a;     
  3. }     
  4.     
  5. public class Test{     
  6.     public static void main(String[] args){     
  7.         A c = new A();     
  8.         A d = new A();     
  9.         c.a = 10;     
  10.         d.a = 15;     
  11.     
  12.         c = d;     
  13.         System.out.println("c.a = " + c.a + ", d.a = " + d.a);     
  14.         d.a = 20;     
  15.         System.out.println("c.a = " + c.a + ", d.a = " + d.a);     
  16.     }     
  17. }  

 

輸出結果為:

c.a = 15, d.a = 15

c.a = 20, d.a = 20

可見當d的值改變時,c的值也會跟著改變,這說明這兩個對象指向同一塊兒內存。

2. 方法調用中的別名問題,比如將對象a作為參數傳遞給函數f,并在函數f中對對象a進行修改,那么實際修改的是a對象本身,因為傳遞給f的是a的一個引用,它和a指向的是同一塊內存。

Java代碼

 

  1. class A{     
  2.     int item;     
  3. }     
  4.     
  5. public class Test{     
  6.     public static void main(String[] args){     
  7.         A a = new A();     
  8.         a.item = 10;     
  9.         f(a);     
  10.         System.out.println("a.item = " + a.item);     
  11.     }     
  12.     static void f(A obj){     
  13.         obj.item = 20;     
  14.     }     
  15. }    
復制代碼

 

輸出結果為:

a.item = 20

3. equals 和 ==

==就是用來比較對象的引用,也就是說它只在乎兩個對象是不是指向同一塊內存,如果是的話,就返回true,否則即使兩個對象的值相等,它也返回false

equals()的默認行為也是比較引用,但是它在jdk的許多類中都被覆蓋過了(這些類有java.io.file,java.util.Date,java.lang.string,包裝類(Integer,Double等)),覆蓋后的結果為,只要兩個對象的類型一致、值一致,就返回true,否則返回false。

舉個例子:

Java代碼

 

  1. class A{     
  2.     int item;     
  3. }     
  4.     
  5. public class Test{     
  6.     public static void main(String[] args){     
  7.         A a = new A();     
  8.         a.item = 10;     
  9.         A b = new A();     
  10.         b.item = 10;     
  11.              
  12.         f(a, b);     
  13.     
  14.         a = b;     
  15.         f(a, b);     
  16.     
  17.         String s1 = new String("test");     
  18.         String s2 = new String("test");     
  19.         if(s1 == s2)     
  20.             System.out.println("s1 == s2");     
  21.         else if(s1.equals(s2))     
  22.             System.out.println("s1 equals s2");     
  23.     }     
  24.     
  25.     static void f(A a, A b){     
  26.         if(a == b)     
  27.             System.out.println("a == b");     
  28.         else      
  29.             System.out.println("a != b");     
  30.     
  31.         if(a.equals(b))     
  32.             System.out.println("a equals b");     
  33.         else    
  34.             System.out.println("a is not equals b");     
  35.     }     
  36. }   
復制代碼

 

輸出結果為:

a != b

a is not equals b

a == b

a equals b

s1 equals s2

這充分說明了 == 和 equals都是比較對象的引用的,s1 equals s2說明了在String類里覆蓋了equals方法,只要兩個對象值一樣,就返回true。

【編輯推薦】

  1. Scala講座:函數、操作符及與Java的比較
  2. PHP操作符的種類概覽
  3. 正則表達式操作符參考列表
  4. 標準查詢操作符概述及剖析
  5. Scala的操作符:任何方法都可以是操作符
責任編輯:金賀 來源: JavaEye博客
相關推薦

2021-05-20 10:22:34

操作符可選鏈操作符編程技巧

2021-10-31 18:59:55

Python操作符用法

2010-07-14 14:55:07

Perl操作符

2009-08-19 17:26:28

C# 操作符

2011-04-08 16:26:14

JavaScript

2010-07-19 11:00:24

Perl操作符

2010-07-14 14:30:31

Perl操作符

2009-08-18 17:20:17

C#操作符重載

2009-09-15 17:16:58

LINQ查詢操作符

2012-02-06 09:13:23

LINQ

2009-09-16 09:09:23

Linq Contai

2010-07-14 14:18:51

Perl操作符

2010-08-27 09:06:49

F#

2009-07-21 09:31:00

Scala操作符

2020-07-20 15:15:06

Swift函數代碼

2022-09-07 09:01:14

JS操作符運算符

2010-01-28 11:16:28

C++操作符

2016-12-28 09:54:50

AndroidRxJava操作符

2017-01-03 16:12:13

RxJava操作符Android

2009-07-14 18:34:22

Jython操作符重載
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: av日韩在线播放 | 99pao成人国产永久免费视频 | 一区二区在线 | 精品久久久久久亚洲精品 | 成年人视频免费在线观看 | 视频一区二区在线观看 | 欧美日韩毛片 | h视频在线播放 | 日韩久久中文字幕 | 久久久久一区 | 亚洲综合区 | 亚洲 成人 av | 天堂久 | 国产一区二区影院 | 国产精品久久久久久久久久久久 | 户外露出一区二区三区 | 国产精品99久久久久久大便 | 亚洲一区综合 | 黄色免费网站在线看 | 久久99视频精品 | 97色在线观看免费视频 | 成人免费小视频 | 一级一级一级毛片 | 日本不卡一区二区三区在线观看 | 午夜精品一区二区三区在线视频 | 国产一级在线 | 欧美毛片免费观看 | 久久精品女人天堂av | 午夜精品一区二区三区免费视频 | 免费在线观看一区二区 | 久久成人激情 | 久久久av| av在线免费观看网址 | 欧美精品久久久 | 九九在线 | 一区观看| 盗摄精品av一区二区三区 | 日韩一二三区视频 | 欧美视频偷拍 | 欧美一区二区三区四区在线 | 毛片黄片免费看 |