背景:剛在看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...