java基礎知識

1.引用是什麼?
在java實現某個功能的時候,會將類實例化成對象,然後jvm再對實例化後的對象進行操作。
實例化後的對象可以賦值,也可以引用。賦值時,java會開闢一個新的地址用於存放變量,而引用則不開闢地址。
String a = “a”;
String b = “a”;
將String類實例化成對象a與b,並賦值
String c = new String(“a”);
將c指向new出來的String型對象”a”
System.out.println(a==b);
System.out.println(a==c);
由於a與b都爲對象賦值,打印出來的結果應該是true
而c是引用對象“a”,所以打印出來的結果應該是false

對象:一個類的具體實例化;
引用:對象的別名,使用該別名可以存放該對象,編譯器不會爲引用分配空間,新對象與源對象共用一個存儲地址空間;引用的生命週期是它所引用的對象的生命週期,函數裏返回一個局部對象的引用是很危險的
給你推薦一種最簡單的理解方式:引用就好比是給商品貼的標籤,你通過標籤可以拿到這個商品…….我開始就是這麼理解的,後來用多了就意會啦…..

2.==與equal()
==用於比較兩個變量的內容是否相同,則是個操作符
例如
string a=new string (“a”);
string b=new string (“a”);
a這個變量的內容,也就是這個A對象的地址,而不是a。
一般情況下,==比較對象,一般是引用的地址是否相同,而基礎數據類型則是比較本身的數值如a=1,b=1,則a==b返回true.

equal()是object類的一個方法
equal()用於比較兩個對象的值是否相同,a.equal(b)則返回true.
不過這個情況是在有重寫equal方法
例如自定義的類或者使用的string類型,string類型會自動重寫了equal方法,只要字符串相同,這a.equal(b)就返回true。
如果使用的類沒有自己覆蓋方法,則equal()與==相同,都是比較的變量的內容,因爲內部就是用的==
public boolean equals(Object o) {
return (this == o);
}

3.面向對象的特徵
抽象:抽象是將一類對象的共同特徵總結出來構造類的過程,包括數據抽象和行爲抽象兩方面。抽象只關注對象有哪些屬性和行爲,並不關注這些行爲的細節是什麼。
封裝:通常認爲封裝是把數據和操作數據的方法綁定起來,對數據的訪問只能通過已定義的接口。
繼承:

發佈了12 篇原創文章 · 獲贊 23 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章