zoukankan      html  css  js  c++  java
  • &和&&的区别

    我想很多人在学习java的时候,或者其他语言(如:C#,.Net等)都会遇到

    &和&&

    然而,如果你没有真正的理解他们的意思,这会给你思路上面带来很大的麻烦

    在这篇blog中,当你看完了以后,你会发现,很容易就把他们给区分开了

    下面是我的demo

    复制代码
     1 /**
     2  * 
     3  */
     4 package com.b510.test;
     5 
     6 /**
     7  * @author Jone Hongten
     8  * @create date:2013-11-2
     9  * @version 1.0
    10  */
    11 public class Test {
    12 
    13     public static void main(String[] args) {
    14         String str = null;
    15         if(str != null && !"".equals(str)){
    16             //do something
    17         }
    18         if(str != null & !"".equals(str)){
    19             //do something
    20         }
    21     }
    22 }
    复制代码

    我们现在可能有一些模糊不清,现在我们先看看&和&&的电路问题:

    对于:&&

    if(str != null && !"".equals(str))

    当: str != null 的时候,接下来才会去执行: !"".equals(str)

    如果: str != null为false,那么这个时候,程序是处于短路的情况,则,!"".equals(str) 是不会执行的。

    但是对于:&

    if(str != null & !"".equals(str))

    不管: str != null 的结果如何(即true,false),程序都会执行: !"".equal(str)

    电路问题总结:

    对于:&   -- >  不管怎样,都会执行"&"符号左右两边的程序

    对于:&& -- >  只有当符号"&&"左边程序为真(true)后,才会执行符号"&&"右边的程序。

    下面来说说运算规则:

    对于:&  -- >  只要左右两边有一个为false,则为false;只有全部都为true的时候,结果为true

    对于:&& -- > 只要符号左边为false,则结果为false;当左边为true,同时右边也为true,则结果为true

  • 相关阅读:
    3、spring注解注入
    2、spring注入のArrayList数组对象注入方式
    1、基本知识
    1、log4j的配置与使用
    3、在Eclipse中使用JUnit4进行单元测试(高级篇)
    2、在Eclipse中使用JUnit4进行单元测试(中级篇)
    1、JUnit4简介
    使用BroadcastReceiver实现系统对手机电量进行提示
    使用BroadcastReceiver监听系统接收的短信
    使用BroadcastReceiver实现开机自动运行的Service
  • 原文地址:https://www.cnblogs.com/elikew/p/3404410.html
Copyright © 2011-2022 走看看