java &與&&的區(qū)別及實(shí)例
java &與&&的區(qū)別: & 既是位運(yùn)算符又是邏輯運(yùn)算符,&的兩側(cè)可以是int,也可以是boolean表達(dá)式,當(dāng)&兩側(cè)是int時(shí),要先把運(yùn)算符兩側(cè)的數(shù)轉(zhuǎn)化為二進(jìn)制數(shù)再進(jìn)行運(yùn)算,而短路與(&&)的兩側(cè)要求必須是布爾表達(dá)式。
我想很多人在學(xué)習(xí)java的時(shí)候,或者面試時(shí)都會(huì)遇到
&和&&
然而,如果你沒有真正的理解他們的意思,這會(huì)給你思路上面帶來很大的麻煩
在這篇blog中,當(dāng)你看完了以后,你會(huì)發(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)在我們先看看&和&&的電路問題:
對(duì)于:&&
if(str != null && !"".equals(str))
當(dāng): str != null 的時(shí)候,接下來才會(huì)去執(zhí)行: !"".equals(str)
如果: str != null為false,那么這個(gè)時(shí)候,程序是處于短路的情況,則,!"".equals(str) 是不會(huì)執(zhí)行的。
但是對(duì)于:&
if(str != null & !"".equals(str))
不管: str != null 的結(jié)果如何(即true,false),程序都會(huì)執(zhí)行: !"".equal(str)
電路問題總結(jié):
對(duì)于:& -- > 不管怎樣,都會(huì)執(zhí)行"&"符號(hào)左右兩邊的程序
對(duì)于:&& -- > 只有當(dāng)符號(hào)"&&"左邊程序?yàn)檎?true)后,才會(huì)執(zhí)行符號(hào)"&&"右邊的程序。
下面來說說運(yùn)算規(guī)則:
對(duì)于:& -- > 只要左右兩邊有一個(gè)為false,則為false;只有全部都為true的時(shí)候,結(jié)果為true
對(duì)于:&& -- > 只要符號(hào)左邊為false,則結(jié)果為false;當(dāng)左邊為true,同時(shí)右邊也為true,則結(jié)果為true
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
SpringBoot對(duì)Filter過濾器中的異常進(jìn)行全局處理方案詳解
這篇文章主要介紹了SpringBoot對(duì)Filter過濾器中的異常進(jìn)行全局處理,在SpringBoot中我們通過 @ControllerAdvice 注解和 @ExceptionHandler注解注冊(cè)了全局異常處理器,需要的朋友可以參考下2023-09-09
使用SpringBoot簡單實(shí)現(xiàn)無感知的刷新 Token功能
實(shí)現(xiàn)無感知的刷新 Token 是一種提升用戶體驗(yàn)的常用技術(shù),可以在用戶使用應(yīng)用時(shí)自動(dòng)更新 Token,無需用戶手動(dòng)干預(yù),這種技術(shù)在需要長時(shí)間保持用戶登錄狀態(tài)的應(yīng)用中非常有用,以下是使用Spring Boot實(shí)現(xiàn)無感知刷新Token的一個(gè)場景案例和相應(yīng)的示例代碼2024-09-09
Java中@Pattern注解常用的校驗(yàn)正則表達(dá)式學(xué)習(xí)筆記
對(duì)于正則這個(gè)東西,對(duì)我來說一直是很懵逼的,每次用每次查,然后還是記不住,下面這篇文章主要給大家介紹了關(guān)于Java中@Pattern注解常用的校驗(yàn)正則表達(dá)式學(xué)習(xí)筆記的相關(guān)資料,需要的朋友可以參考下2022-07-07
Java發(fā)送https請(qǐng)求并跳過ssl證書驗(yàn)證方法
最近在負(fù)責(zé)一個(gè)對(duì)接第三方服務(wù)的事情,在對(duì)接期間因?yàn)榈谌椒?wù)為https的請(qǐng)求,這篇文章主要給大家介紹了關(guān)于Java發(fā)送https請(qǐng)求并跳過ssl證書驗(yàn)證的相關(guān)資料,需要的朋友可以參考下2023-11-11
MyBatis實(shí)現(xiàn)動(dòng)態(tài)SQL的方法
動(dòng)態(tài)SQL是MyBatis強(qiáng)大特性之一,極大的簡化我們拼裝SQL的操作,本文主要介紹了MyBatis實(shí)現(xiàn)動(dòng)態(tài)SQL的方法,具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06
分析講解SpringMVC注解配置如何實(shí)現(xiàn)
這篇文章主要介紹了本文要介紹用注解方式代替web.xml與SpringMVC的配置文件,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05

