当前位置: 首页 > 编程笔记 >

java &与&&的区别及实例

端木望
2023-03-14
本文向大家介绍java &与&&的区别及实例,包括了java &与&&的区别及实例的使用技巧和注意事项,需要的朋友参考一下

java &与&&的区别: & 既是位运算符又是逻辑运算符,&的两侧可以是int,也可以是boolean表达式,当&两侧是int时,要先把运算符两侧的数转化为二进制数再进行运算,而短路与(&&)的两侧要求必须是布尔表达式

我想很多人在学习java的时候,或者面试时都会遇到

&和&&

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

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

下面是我的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
         }
     }
 }

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

对于:&&

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

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

 类似资料:
  • 本文向大家介绍jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析,包括了jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery.extend 与 jQuery.fn.extend的用法及区别。分享给大家供大家参考,具体如下: jQuery是一个JavaScript类,

  • 本文向大家介绍java中&与&&的区别,包括了java中&与&&的区别的使用技巧和注意事项,需要的朋友参考一下 在java中&和&&都属于逻辑运算符,都是判断两边条件为真时为真,否则则为假 在程序中&的使用: 这一段代码运行结果为:5 也就是说&逻辑运算符实际上是会吧前后两个判断条件都会执行两次,i自加了两次,出现结果为:5 这一段代码运行结果为:4 也就是说&&逻辑运算符实际上只判断了前边一个条

  • 如果实体之间存在继承,那么我应该如何在DTO中表示它?例如: 我应该如何使用它们?例如,我发现:我正在做一个web项目。网页的用户想要注册。他/她填写表单,并将其发送到服务器。在服务器端,我首先创建一个DTO,因为它的字段有验证。我从DTO创建一个实体并将其持久化到数据库中。当有对实体的请求时,我将被请求的实体转换为DTO,并将其提供给客户端的用户。这是一个很好的想象,还是不是?

  • 主要内容:1 Hashtable的概述,2 Hashtable的源码解析,2.1 主要类属性,2.2 Entry节点,2.3 构造器与初始化参数,2.4 put方法与扩容机制,2.5 putAll方法,2.6 remove方法,2.7 get方法,2.8 clear方法,2.9 遍历的方法,3 HashMap 和 Hashtable的异同与应用,3.1 基于JDK1.8的HashMap 和 Hashtable的异同,基于JDK1.8对Java中的Hashtable集合的源码进行了深度解析,包括各

  • 主要内容:1 ArrayDeque的概述,2 ArrayDeque的API方法,3 ArrayDeque的源码解析,3.1 主要类属性,3.2 构造器与初始容量,3.3 添加的方法,3.4 移除的方法,3.5 获取的方法,3.6 其他方法,4 ArrayDeque和LinkedList的区别,5 性能对比基于JDK1.8对Java中的ArrayDeque集合的源码进行了深度解析,包括各种方法的底层实现,在最后给出了ArrayDeque和LinkedList的对比案例以及使用建议。 1 Array

  • 本文向大家介绍title与h1的区别、b与strong的区别、i与em的区别?相关面试题,主要包含被问及title与h1的区别、b与strong的区别、i与em的区别?时的应答技巧和注意事项,需要的朋友参考一下 title 是 网页标题标签 h1 是文本标签 默认与word的h1相似为最大的标题显示 b 为文本加粗标签 与word的加粗功能相似 strong 为强调语气, 也是为文本加粗 与b标签