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
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Springcloud Config配置中心使用與相關(guān)介紹
springcloud config是一個解決分布式系統(tǒng)的配置管理方案。它包含了 client和server兩個部分,server端提供配置文件的存儲、以接口的形式將配置文件的內(nèi)容提供出去,client端通過接口獲取數(shù)據(jù)、并依據(jù)此數(shù)據(jù)初始化自己的應用2022-09-09SpringCloud-Alibaba-Nacos啟動失敗解決方案
這篇文章主要介紹了SpringCloud-Alibaba-Nacos啟動失敗解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-04-04java多線程批量處理百萬級的數(shù)據(jù)方法示例
這篇文章主要介紹了java多線程批量處理百萬級的數(shù)據(jù)的相關(guān)資料,文中通過代碼介紹的非常詳細,對大家學習或者使用java多線程具有一定的參考借鑒價值,需要的朋友可以參考下2025-02-02