1. 程式人生 > >java驗證課上代碼

java驗證課上代碼

() 實現 類名 時也 args 完全 類成員 賦值 是否

1.
int value=100;
MyClass obj = new MyClass();
這兩種方式定義的變量是不一樣的,第一種賦值方法直接就給了變量值,同時賦予了他空間,第二種方法沒有賦值,只賦予了他空間。
對象變量如果不引用一個真實的對象,則必須聲明為null
對於原始數據類型的變量(比如int),可以直接使用“==”判斷兩變量值是否相等
是相等的。

2.
對象變量也可以使用“==”判斷兩變量值是否相等嗎?
不是的。。

1     public static void main(String[] args) {
2         Integer i1=100;
3         Integer j1=100;
4 System.out.println(i1==j1); 5 Integer i2=129; 6 Integer j2=129; 7 System.out.println(i2==j2); 8 }

技術分享圖片



當“==”施加於原始數據類型變量時,是比較變量所保存的數據是否相等
當“==”施加於引用類型變量時,是比較這兩個變量是否引用同一對象。
引用代表地址,所以“==”實際上相當於比較兩個引用類型變量中保存的對象地址是否相同。
3.
如何比較兩個對象的“內容”是否一樣?
兩個對象的“內容”,其實是指它們在某一時刻的所有字段的值,“內容相等”,其實是就“對應字段值”一致。
在Java中要比對兩個對象的字段值,可以 “重寫(override)”基類的equals()方法
4.
Equals( )方法從哪來?
Object是Java的最頂層基類,其中定義了equals( )方法
5.
請總結一下,這個方法有哪些“與眾不同之處”,你能列出幾條?
該方法稱為類的“構造方法”,有時也習慣稱為“構造函數”
當創建一個對象時,它的構造方法會被自動調用。構造方法與類名相同,沒有返回值。
如果類沒有定義構造函數,Java編譯器在編譯時會自動給它提供一個沒有參數的“默認構造方法”。
如果類提供了一個自定義的構造方法,將導致系統不再提供默認構造方法。
6.
如果一個類中既有初始化塊,又有構造方法,同時還設定了字段的初始值,誰說了算?
1.執行類成員定義時指定的默認值或類的初始化塊,到底執行哪一個要看哪一個“排在前面”。
2.執行類的構造函數。。
類的初始化塊不接收任何的參數,而且只要一創建類的對象,它們就會被執行。因此,適合於封裝那些“對象創建時必須執行的代碼
7.
Integer類的裝箱和拆箱到底是怎樣實現的?

裝箱過程:當需要一種類型的對象時,這種基本數據類型就自動封裝到與它對應的包裝類中。

拆箱過程:當需要一個數值時,被裝箱的對象中的值就會被自動提取出來,沒有必要再去調用intValue()和doubleValue()等方法。


8.
兩對整數明明完全一樣,為何一個輸出true,一個輸出false?

java驗證課上代碼