java &與&&的區(qū)別及實例
java &與&&的區(qū)別: & 既是位運算符又是邏輯運算符,&的兩側(cè)可以是int,也可以是boolean表達式,當&兩側(cè)是int時,要先把運算符兩側(cè)的數(shù)轉(zhuǎn)化為二進制數(shù)再進行運算,而短路與(&&)的兩側(cè)要求必須是布爾表達式。
我想很多人在學習java的時候,或者面試時都會遇到
&和&&
然而,如果你沒有真正的理解他們的意思,這會給你思路上面帶來很大的麻煩
在這篇blog中,當你看完了以后,你會發(fā)現(xiàn),很容易就把他們給區(qū)分開了
下面是我的demo
/**
*
*/
package com.b510.test;
/**
* @author Jone Hongten
* @create date:2013-11-2
* @version 1.0
*/
public class Test {
public static void main(String[] args) {
String str = null;
if(str != null && !"".equals(str)){
//do something
}
if(str != null & !"".equals(str)){
//do something
}
}
}
我們現(xiàn)在可能有一些模糊不清,現(xiàn)在我們先看看&和&&的電路問題:
對于:&&
if(str != null && !"".equals(str))
當: str != null 的時候,接下來才會去執(zhí)行: !"".equals(str)
如果: str != null為false,那么這個時候,程序是處于短路的情況,則,!"".equals(str) 是不會執(zhí)行的。
但是對于:&
if(str != null & !"".equals(str))
不管: str != null 的結(jié)果如何(即true,false),程序都會執(zhí)行: !"".equal(str)
電路問題總結(jié):
對于:& -- > 不管怎樣,都會執(zhí)行"&"符號左右兩邊的程序
對于:&& -- > 只有當符號"&&"左邊程序為真(true)后,才會執(zhí)行符號"&&"右邊的程序。
下面來說說運算規(guī)則:
對于:& -- > 只要左右兩邊有一個為false,則為false;只有全部都為true的時候,結(jié)果為true
對于:&& -- > 只要符號左邊為false,則結(jié)果為false;當左邊為true,同時右邊也為true,則結(jié)果為true
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關文章
SpringBoot對Filter過濾器中的異常進行全局處理方案詳解
這篇文章主要介紹了SpringBoot對Filter過濾器中的異常進行全局處理,在SpringBoot中我們通過 @ControllerAdvice 注解和 @ExceptionHandler注解注冊了全局異常處理器,需要的朋友可以參考下2023-09-09
使用SpringBoot簡單實現(xiàn)無感知的刷新 Token功能
實現(xiàn)無感知的刷新 Token 是一種提升用戶體驗的常用技術,可以在用戶使用應用時自動更新 Token,無需用戶手動干預,這種技術在需要長時間保持用戶登錄狀態(tài)的應用中非常有用,以下是使用Spring Boot實現(xiàn)無感知刷新Token的一個場景案例和相應的示例代碼2024-09-09

