Java基礎從數組到集合之間關鍵字的區別
1.&& 和 &區別和聯系:
相同點 : 結果是一樣的。
不同點 :如果使用雙&號判斷,如果說條件一為false,不會判斷條件二,但是單&號會繼續判斷。
2.|| 和 |區別和聯系:
相同點 : 結果一樣。
不同點 : 如果使用||號判斷,如果說條件一為true,不會判斷條件二,但是單|號會繼續判斷。
3.==和equals()的區別:
==:比較的是地址(引用數據類型)。
equals:比較的是字符串的值。
4.異常和錯誤的區別:
異常:在Java程序中出現程序不正常的情況。
錯誤:錯誤一般是Java虛擬機或者是硬件導致的問題如果程序出現不正常的情況,信息的結尾是以Error就是錯誤,其他的都是異常。
5.構造函數和一般函數的區別?
結構上:
1.構造函數是沒有返回值,方法名就是類名。
2.構造函數是由jvm來調用的,自己是無法手動調用,只會被調用一次。
作用:
1.初始化的時候給屬性賦值。
2.描述對象的某種行為。
6.equals與equalsIgnoreCase的區別:
equals不忽略大小寫。
equalsIgnoreCase忽略大小寫。
7.StringBuffer和StringBulider的區別:
相同點:
(1).都是字符串緩沖類
(2).兩個雷的方法一樣
不同點:
(1).StringBuffer線程更安全,操作效率低,StringBulider線程不安全,效率高。
(2).StringBuffer是jdk1.0就有的,StringBulider1.5才有。
8.List、Map、Set三個接口,存取元素時,各有什麼特點?
List接口,可以有重復的元素,是個有序集合。
Map接口,雙列集合,存儲數據以鍵和值的方式,鍵不允許重復,值是允許重復的。
Set接口,不可以有重復的元素,是個無序的集合。
9.Vector 和 ArrayList的區別:
相同點: Vector和ArrayList 底層都是通過Objec數組來實現的。
不同點 :
1.ArrayList 是線程不同步,操作效率高。
Vector 線程是同步的,操作效率低。
2.ArrayList 是在jdk1.2出現的,Vector 是在jdk1.0就有了。
10.LinkedList與ArrayList有什麼區別?
LinkedList:添加元素比較快,刪除,查找比較慢,元素在內存中是無序的 。
ArrayList:是存在一個數組(Object[]),添加刪除元素很慢,查找很快,元素在內存中是有序的,默認容量為10,如果默認的不夠就增加為
原來的1.5倍。
11.數組(Array)和列表集合(ArrayList)有什麼區別:
數組:可以包含基本數據類型和對象類型,它的空間是固定,空間不夠時不能再次添加,需要時提前設置調試好空間大小。
ArrayList:只能包含對象類型,它的空間是動態增長的,如果空間不夠的時候,它會創建一個比原來大一倍的新數組。
12.成員變量和局部變量額區別:
定義的位置 :
1.定義在類中,方法外。
2.局部變量是定義在方法中。
作用上:
1.成員變量是用來描述同一類事物(對象)的公共屬性。
2.局部變量就是提供一個變量給方法使用
生命周期 :
1.成員變量隨著對象的創建而創建,隨著對象的消失而消失。
2.局部變量隨著方法調用而創建,出了方法的作用域就消失。
初始值來區分:
1.成員變量,如果你沒有賦值,它是有默認值的。
int 默認是0
float 默認是0.0f
double 默認是 0.0
boolean 默認 false
char 默認 ' '
String (引用類型)null;
2.局部變量:局部變量是沒有初始值的,必須初始化才能使用。