java中與的區別
⑴ java中,&和&&,|和||有什麼區別
& 是與,&&是短路與;
&& 是左邊條件不滿足就終止了,不會繼續計算右邊條件;而&是無論左邊是否滿足都會繼續執行右邊。
比如 a && b , 假如計算 a 是假 , 那麼就不會繼續計算b的真假值了;假如a是真,那麼會繼續計算b,當b也是真時,a&&b為真。
而 a & b , 無論a是真假,都會繼續計算b的真假值
| 是或,|| 是短路或;
原理跟上面差不多,a || b 只要 a為真時,那麼整個表達式就是真了,不會繼續計算b的真假值;
而 a | b , 無論a真假,都會繼續計算b的值。
一般用 && 和 || 的較多。
另外, & 和 | 還用於位運算中,有興趣請自行網路
⑵ JAVA中雙與和雙或和單與,單或的區別
區別1:& 和 | 可用於bitwise operation,即二進制運算,而&&和 || 不可以。
區別2:在邏輯運算時,&& 和 || 叫做short-circuit logical operator, 意思是先判定左側的邏輯值,如果可以決定結果則不再浪費時間去判定右側的邏輯值。例如(2<3) || (a*5+b/3-c>5),因為(2<3)是true,無論右側是true or false,結果都是true, 所以右側將不再進行判定。而& 和 | 則總會對兩側進行判定,稱為non-short-circuit logical operator.
⑶ java中|與||有什麼區別
&&和||是一種邏輯運算符,&&是邏輯與,當兩個數都為真,則結果為真。||是邏輯或,兩個數任意一個為真,則結果為真。
舉個例子:
1、a && b
當a、b都為真時,結果為真。有一個為假或者都為假時結果為假。
2、a || b
當a、b有一個為真時,結果為真。a、b都為假時結果為假。
(3)java中與的區別擴展閱讀:
在java中還有其他的邏輯符號,比如:!、|、 &
「!」是非運算符號,比如a為真,則!a則為假。a如果為假,則!a為真。
而「|」也是邏輯或,「&」也是邏輯與,但是他們與「||」和「&&」有些區別,區別如下:
「&」與「|」無論第一個判斷條件是否成立,邏輯運算符前後兩個條件都會進行判斷。
「&&」與「||」,前者第一個條件不成立,後面的條件均不進行判斷,返回false;後者第一個條件成立,後面的條件均不進行判斷,返回true。
⑷ 在java中=和==的區別
Java中=是賦值運算,
而==判斷值是否相等,
===是判斷的是值及類型是否完全相等,而===只在JavaScript中有
比如
a=b 就是把b的值賦予給a;
a==b 就是判斷a等於b
1.下面是判斷==運算符比較的兩個值是否相等的判斷條件:
1.如果兩個值具有相同的類型,那麼就檢測它們的等同性。如果這兩個值完全相同,它們就相等。如果它們不完全相同,則它們不相等。
2.如果兩個值的類型不同,它們仍然可能相等。用下面的規則和類型轉換來檢測它們的相等性:
01.如果一個值是null,另一個值是undefined,它們相等。
02.如果一個值是數字,另一個值是字元串,把字元串轉換為數字,再用轉換後的值進行比較。
03.如果一個值為true,將它轉化為1,再進行比較。如果一個值為false,把它轉化為0,再進行比較。
04.如果一個值是對象,另一個值是數字或字元串,將對象轉換成原始類型的值,再做比較。可以使用對象的toString()方法或 valueOf()方法把對象轉化成原始類型的值。JavaScript核心語言的內部類通常先嘗試valueOf()方法轉換,再嘗試toString()方法轉換,但是對於Date類,則先執行toString()方法再執行valueOf()方法轉換。不屬於JavaScript核心語言的對象則可以採用 JavaScript實現定義的方式把自身轉換成原始數值。
05.其他的組合,不相等。
2.下面是判斷===比較的兩個值是否相等的判斷條件:
1.如果兩個值的類型不同,它們就不相同。
2.如果兩個值是數字,而且值相同,除非其中一個或兩個都是NaN(這種情況它們不是等同的),否則它們是等同的。值NaN永遠不會與其他任何值等同,包括它自身,要檢測一個值是否是NaN,可以使用全局函數isNaN()。
3.如果兩個值都是字元串,而且在字元串中同一位置上的字元完全相同,那麼它們就完全等同。如果字元串的長度或內容不同,它們就不是等同的。
4.如果兩個值都是布爾型true,或者兩個值都是布爾型false,那麼它們等同。
5.如果兩個值引用的是同一個對象、數組或函數,那麼它們完全等同。如果它們引用的是不同的對象(數組或函數),它們就不完全等同,即使這兩個對象具有完全相同的屬性,或兩個數組具有完全相同的元素。
6.如果兩個值都是null或都是undefined,它們完全相同。
希望對您有所幫助!~
⑸ Java中「||」與「|」的區別
兩者都是或,但是不一樣。
不同點:同與操作類似,||表示短路或,當運算符左邊的值為true時,右邊的表達式不會進行運算。
舉個例:
int i=0;
if(3>2 || (i++)>1) i=i+1;
System.out.println(i);
這段程序會列印出1,而不是列印出2。
因為在if的條件判斷中,程序先判斷第一個表達式3>2是否成立,結果3>2為真,那麼按照邏輯來
說,無論後面一個表達式(i++)>1是否成立,整個或表達式肯定為真,因此程序就不去執行判斷後面
一個表達式即(i++)>1了,所以這里i並沒有自增1。然後程序執行到i=i+1,於是i變為1。最後列印
出1。
int i=0;
if(3>2 | (i++)>1) i=i+1;
System.out.println(i);
如果換做這樣寫,那麼就是列印出2了,因為無論第一個條件3>2是否為真,程序都會去執行判斷第
二個條件表達式,因此i++這個自增是會被執行的,再加上if內的i=i+1,所以最終i=2。
(5)java中與的區別擴展閱讀
|與||的相同點:二者都表示或操作,當運算符兩邊的操作數任何一邊的值為true時,其結果為true,當兩邊的值都為false時,其結果才為false。
&與&&的異同點。
相同點:二者都表示與操作,當且僅當運算符兩邊的操作數都為true時,其結果才為true,否則為false。
不同點:在使用&進行運算時,不論左邊為true或者false,右邊的表達式都會進行運算。如果使用&&進行運算時,當左邊為false時,右邊的表達式不會進行運算,因此&&被稱作短路與。
注意事項:
邏輯運算符一般用於連接boolean類型的表達式或者值。
表達式:就是用運算符把常量或者變數連接起來的符合java語法的式子。
算術表達式:a + b
比較表達式:a == b(條件表達式)
⑹ 請問 java中"% "與 "/ "之間的區別
區別:
1、運算符上的區別
%是求模運算符
/是除運算符
2、用法上的區別
%是求余運算,即2%10=2,10%2=0,10%3=1。
/是普通的除號,即10/2=5。
(6)java中與的區別擴展閱讀:
編寫java程序的注意事項:
大小寫敏感:Java是大小寫敏感的,這就意味著標識符Hello與hello是不同的。
類名:對於所有的類來說,類名的首字母應該大寫。如果類名由若干單片語成,那麼每個單詞的首字母應該大寫,例如 MyFirstJavaClass。
方法名:所有的方法名都應該以小寫字母開頭。如果方法名含有若干單詞,則後面的每個單詞首字母大寫,例如myFirstJavaClass。
源文件名:源文件名必須和類名相同。當保存文件的時候,你應該使用類名作為文件名保存(切記Java是大小寫敏感的),文件名的後綴為.java。(如果文件名和類名不相同則會導致編譯錯誤)。
主方法入口:所有的Java 程序由public static void main(String[]args)方法開始執行。
⑺ java中,&&和&以及|和||的區別
JAVA中&&意思是「條件與」邏輯操作符,使用方法是x&&y,功能描述:x和y均為true,取值是true,否則取值是false。
JAVA中||意思是「條件或」邏輯操作符,使用方法是x||y,功能描述:x和y有一個為true,取值是true,否則取值是false。
(7)java中與的區別擴展閱讀:
JAVA語言中進行邏輯表達式求值運算時,不但要注意邏輯運算符本身的運算規則,而且還必須從最左邊一個計算部分開始,按照邏輯運算的規則計算該部分的值。每計算完一個部分就與該部分右邊緊靠著的邏輯運算符根據真值表進行邏輯值判斷。
在邏輯表達式的求解過程中,任何時候只要邏輯表達式的值已經可以確定,則求解過程不再進行,求解結束。
參考資料來源:
網路——&&
網路——||
⑻ java中&和&&的區別
java中的&&具有「短路」現象,也就是說,當&&左邊的表達式為假時,就不再計算剩餘的&&右邊的值是否為真。而&則不同,就算&&左邊的表達式是假,它還是會計算&右邊的表達式。
而||和|也是一樣道理的。
希望我的回答能給你點幫助。謝謝
⑼ java中&與&&的區別
java中&叫做按位與,&&叫做短路與,它們的區別是:
& 既是位運算符又是邏輯運算符,&的兩側可以是int,也可以是boolean表達式,當&兩側是int時,要先把運算符兩側的數轉化為二進制數再進行運算,而短路與(&&)的兩側要求必須是布爾表達式。舉例如下:
12&5 的值是多少?答:12轉成二進制數是1100(前四位省略了),5轉成二進制數是0101,則運算後的結果為0100即4 這是兩側為數值時;
若 int i = 2,j = 4;則(++i=2)&(j++=4)的結果為false,其過程是這樣的:先判斷++i=2是否成立,這里當然是不成立了(3 == 2),但是程序還會繼續判斷下一個表達式是否成立,j++=4 ,該表達式是成立的,但是&運算符要求運算符兩側的值都為真,結果才為真,所以(++i=2)&(j++=4)的結果為 false 注意 :&為真的條件是兩側表達式都為真,但是即使我們判斷出左側表達式的值為false,程序也還是要繼續執行去判斷右側的表達式值的真假
若 int i = 2,j = 4;則(++i=2)&&(j++=4)的結果為false,其過程基本上和上面的是相同的,但是若左側表達式的值為false時,程序則不會繼續判斷右側表達式的真假了,短路與中,短路這個詞大概也就是這個意思吧