標籤:out string span stat ted strong 試題 操作 並且
重要一點:
(& ,|) ==>二進位布林運算子,(&&,||)==>條件布林運算子
二進位布林運算子,兩邊都會執行,不管左邊是否為真或假==>對於運算子兩邊的運算元不管真假與否,都會先計算出來結果後再進行布爾邏輯運算
但是條件布林運算子不同,更先進,如果&&左邊為假,那麼右邊不執行;||左邊為真,右邊也不執行;
具體細節:
JAVA裡的布林運算子可以分為【二進位布林運算子】和【條件布林運算子】。
1.二進位布林運算子
二進位布林運算子:與(&),或(|),異或(^),當其運算元是布爾值時,它們就是邏輯運算子,注意:對於運算子兩邊的運算元不管真假與否,都會先計算出來結果後再進行布爾邏輯運算;當其運算元是整數時,它們就是位元運算符。
2.條件布林運算子
條件布林運算子:條件與(&&),條件或(||),條件非(!)運算子,只能對布爾值進行計算,並且從左至右,如果有一個運算元為真,就不再計算它右邊的運算元,直接得出計算結果。
看個例子:
public class test4 {private static int j=0;private static boolean methodB(int k){j+=k;return true;}public static void methodA(int i){boolean b;b=i<10|methodB(4);b=i<10||methodB(8);} public static void main(String[] args) {// TODO Auto-generated method stub methodA(0); System.out.println(j); } }
結果是:
4
因為位元運算符| ,兩邊都要執行,||運算子 因為左邊為真,只執行左邊了;
位元運算符主要針對二進位,它包括了:“與”、“非”、“或”、“異或”。從表面上看似乎有點像邏輯運算子,但邏輯運算子是針對兩個關係運算子來進行邏輯運算,而位元運算符主要針對兩個位元的位進行邏輯運算。下面詳細介紹每個位元運算符。
1.與運算子
與運算子用符號“&”表示,其使用規律如下:
兩個運算元中位都為1,結果才為1,否則結果為0,例如下面的程式段。
public class data13
{
public static void main(String[] args)
{
int a=129;
int b=128;
System.out.println("a 和b 與的結果是:"+(a&b));
}
}
運行結果
a 和b 與的結果是:128
下面分析這個程式:
“a”的值是129,轉換成二進位就是10000001,而“b”的值是128,轉換成二進位就是10000000。根據與運算子的運算規律,只有兩個位都是1,結果才是1,可以知道結果就是10000000,即128。
2.或運算子
或運算子用符號“|”表示,其運算規律如下:
兩個位只要有一個為1,那麼結果就是1,否則就為0,下面看一個簡單的例子。
public class data14
{
public static void main(String[] args)
{
int a=129;
int b=128;
System.out.println("a 和b 或的結果是:"+(a|b));
}
}
運行結果
a 和b 或的結果是:129
下面分析這個程式段:
a 的值是129,轉換成二進位就是10000001,而b 的值是128,轉換成二進位就是10000000,根據或運算子的運算規律,只有兩個位有一個是1,結果才是1,可以知道結果就是10000001,即129。
3.非運算子
非運算子用符號“~”表示,其運算規律如下:
如果位為0,結果是1,如果位為1,結果是0,下面看一個簡單例子。
public class data15
{
public static void main(String[] args)
{
int a=2;
System.out.println("a 非的結果是:"+(~a));
}
}
4.異或運算子
異或運算子是用符號“^”表示的,其運算規律是:
兩個運算元的位中,相同則結果為0,不同則結果為1。下面看一個簡單的例子。
public class data16
{
public static void main(String[] args)
{
int a=15;
int b=2;
System.out.println("a 與 b 異或的結果是:"+(a^b));
}
}
運行結果
a 與 b 異或的結果是:13
分析上面的程式段:a 的值是15,轉換成二進位為1111,而b 的值是2,轉換成二進位為0010,根據異或的運算規律,可以得出其結果為1101 即13。
甲骨文面試題-JAVA裡的布林運算子