1 關於Boolean(2023年05月30日)

2022-09-12 10:12:16 字數 2335 閱讀 4878

背景:剛在看effective j**a,看到一段關於boolean提供乙個返回例項的靜態方法的例子,便去看了下boolean的原始碼,發現有些內容是之前沒注意到的,於是便有了下面這些。

1、boolean類將基本型別boolean的值包裝在乙個物件中,乙個boolean物件之包含乙個型別為boolean的字段,摘自原始碼:

/*** the value of the boolean.

** @serial

*/private final boolean value;

boolean還提供了多個方法用於對boolean型別的基本操作,因為boolean是乙個基本型別,沒辦法進行一些基本的操作。

2、構造方法摘要

boolean(boolean value)

分配乙個表示value引數的boolean物件。

boolean(string s)

如果 string 引數不為null且在忽略大小寫時等於"true",則分配乙個表示true值的boolean物件。

需要注意的是:boolean提供乙個以string型別為引數的構造器

boolean flag1 = new boolean("true");

system.out.println(flag1); //輸出true

boolean flag2 = new boolean("abc");

system.out.println(flag2); //輸出false

3、boolean的構造方法、parseboolean(string name)、valueof(string s)、getboolean(string name)這四個方法內部都是呼叫的同乙個方法toboolean(),以下是摘自原始碼:

public boolean(string s)

public static boolean parseboolean(string s)

public static boolean valueof(string s)

public static boolean getboolean(string name) catch (illegalargumentexception e) catch (nullpointerexception e)

return result;

}private static boolean toboolean(string name)

所以以上4個方法傳入的字串只有在為"true"的時候才會返回true,其他情況一律返回false。

4、關於boolean比較符equals和==

其實還是和其他的物件一樣,equals比較的是值,==比較的是物件在記憶體中的首位址

boolean flag1 = new boolean("true");

boolean flag2 = new boolean("true");

system.out.println(flag1.equals(flag2)); //輸出true

system.out.println(flag1==flag2); //輸出false

5、關於boolean的compareto(boolean b )和compare(boolean x,boolean y)方法

以下摘自原始碼:

public int compareto(boolean b)

public static int compare(boolean x, boolean y)

兩者的區別在於compareto是非靜態方法,供例項變數使用,用於呼叫物件與引數物件的比較

compare是靜態方法,供boolean類使用,用於兩個boolean值的比較

比較的共同點就是:比較物件表示的boolean值相同,則返回0,如果此物件表示 true,引數表示 false,則返回乙個正值;如果此物件表示 false,引數表示 true,則返回乙個負值

boolean flag1 = new boolean("true");

boolean flag2 = new boolean("true");

system.out.println(flag1.compareto(flag2)); //輸出0

system.out.println(boolean.compare(true, false)); //輸出1

system.out.println(boolean.compare(false, true)); //輸出-1

寫於2023年1月1日

2014年是結束學生生涯,步入職場的一年。讓我自己都感到意外的,我的第一次跳槽居然也發生在這一年。生活本不是隨波逐流,不論別人看來,我不放棄對自己命運的主動權,我為自己不足道的奮鬥所換得的有限自由與任 到驕傲。2014經歷不少,但遠遠不夠。可以確信無疑的一點是,過去的我浪費了太多的時間,即便忙碌,也...

閒談 2023年1月6日

2015年1月6日 22 41 13 畢竟雜談。要不然做個系列吧。哈哈。就叫畢竟雜談。總歸是用了3個小時把心理學的書掃了一遍。去年寒假 大概就是現在這個時候 借了心理學專業的乙個朋友的 基礎心理學 的書。本來以為還能看看。後來看了大概半周,書看了三分一。基本都是在介紹什麼神經衝動啊,激素分泌啊一類對...

藍橋杯 2023年12月31日 關於

問題描述 fibonacci數列的遞推公式為 fn fn 1 fn 2,其中f1 f2 1。當n比較大時,fn也非常大,現在我們想知道,fn除以10007的餘數是多少。輸入格式 輸入包含乙個整數n。輸出格式 輸出一行,包含乙個整數,表示fn除以10007的餘數。說明 在本題中,答案是要求fn除以10...