Java语言中&&与& ||与|的区别是什么
1、运算符两边的变量为boolean变量时
先列出代码:
public class Test { public static void main(String[] args) { boolean a = false; boolean b = true; if (a && b) { // do something System.out.println("a&&b"); } if (a & b) { // do something System.out.println("a&b"); } } }
虽然两个if语句打印结果时一样的!!!(都没有输出)
但是实际的执行过程却是不一样的(自己可以debug调试试试)
&& 逻辑运算and,当两个条件都为真的时候才为真。
||逻辑运算or,只要有一个条件为真就为真。
而& 和 | 属于位运算。
逻辑运算与位运算最大的区别在于
逻辑运算支持短路运算,
而位运算不支持短路运算。
短路运算就是 位运算if(条件1 & 条件2){}
当第一个条件不满足的时候还会判断条件2,
但是逻辑运算if(条件1 &&条件2){}
当第一个条件不满足的时候不会判断条件2.
逻辑|| 跟位运算| 同上。
2、运算符两边的变量为int类型变量时
只能执行a&b的按位与运算或者a|b执行按位或运算。正常算即可
以上所述是小编给大家介绍的Java语言中&&与& ||与|的区别,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的,在此也非常感谢大家对我们网站的支持!
相关推荐
-
Java语言中&&与& ||与|的区别是什么
1.运算符两边的变量为boolean变量时 先列出代码: public class Test { public static void main(String[] args) { boolean a = false; boolean b = true; if (a && b) { // do something System.out.println("a&&b"); } if (a & b) { // do something System.ou
-
探讨Java语言中那些修饰符
一.在java中提供的一些修饰符,这些修饰符可以修饰类.变量和方法,在java中常见的修饰符有:abstract(抽象的).static(静态的).public(公共的).protected(受保护的).private(私有的).synchronized(同步的).native(本地的).transient(暂时的).volatile(易失的).final(不可改变的) 二.修饰顶层类的修饰符包括abstract.public和final,而static.protected和private不能修
-
Java语言中链表和双向链表
链表是一种重要的数据结构,在程序设计中占有很重要的地位.C语言和C++语言中是用指针来实现链表结构的,由于Java语言不提供指针,所以有人认为在Java语言中不能实现链表,其实不然,Java语言比C和C++更容易实现链表结构.Java语言中的对象引用实际上是一个指针(本文中的指针均为概念上的意义,而非语言提供的数据类型),所以我们可以编写这样的类来实现链表中的结点. class Node { Object data; Node next;//指向下一个结点 } 将数据域定义成Object类是因为
-
Java语言中的内存泄露代码详解
Java的一个重要特性就是通过垃圾收集器(GC)自动管理内存的回收,而不需要程序员自己来释放内存.理论上Java中所有不会再被利用的对象所占用的内存,都可以被GC回收,但是Java也存在内存泄露,但它的表现与C++不同. JAVA中的内存管理 要了解Java中的内存泄露,首先就得知道Java中的内存是如何管理的. 在Java程序中,我们通常使用new为对象分配内存,而这些内存空间都在堆(Heap)上. 下面看一个示例: public class Simple { public static vo
-
java语言中封装类代码示例
在面向对象程序设计方法中,封装(Encapsulation)是指一种将抽象性函式接口的实现细节部分包装'隐藏起来的方法.数据被保护在内部,隐藏内部实现细节,对外提供接口与外部交互. 使用封装的步骤 将类的所有属性使用关键字private去修饰,把它们变成私有的,不允许外部类直接访问 生成或者提供公共的setter/getter方法去操作这些被隐藏起来的属性 在类自己的 setter/getter方法中加入逻辑控制,以确保数据访问的有效性和安全性实例 让我们来看一个java封装类的例子: /* 文
-
Java语言中的自定义类加载器实例解析
本文研究的主要是Java语言中的自定义类加载器实例解析的相关内容,具体如下. 自己写的类加载器 需要注意的是:如果想要对这个实例进行测试的话,首先需要在c盘建立一个c://myjava的目录.然后将相应的java文件放在这个目录中.并将产生的.clas文件放在c://myjava/com/lg.test目录下,否则是找不到的.这是要注意的.. class FileClassLoader : package com.lg.test; import java.io.ByteArrayOutputSt
-
详解Java语言中一个字符占几个字节?
题主要区分清楚内码(internal encoding)和外码(external encoding)就好了. 内码是程序内部使用的字符编码,特别是某种语言实现其char或String类型在内存里用的内部编码: 外码是程序与外部交互时外部使用的字符编码."外部"相对"内部"而言:不是char或String在内存里用的内部编码的地方都可以认为是"外部".例如,外部可以是序列化之后的char或String,或者外部的文件.命令行参数之类的. Java语
-
深入了解Java语言中的并发性选项有何不同
前言 Java™ 工程师在努力让并发性容易为开发人员所用.尽管做了不少的改进,但并发性仍然是 Java 平台的一个复杂.容易出错的部分.一部分复杂之处在于理解语言本身中的并发性的低级抽象,这些抽象在您的代码中填满了同步的代码块.另一个复杂之处来自一些新库,比如 fork/join,这些库在某些场景中非常有用,但在其他场景中收效甚微.了解容易混乱的大量低级选项需要专业经验和时间. 脱离 Java 语言的优势之一是,能够改善和简化并发性等区域.每种 Java 下一代语言都为此问题提供了独特的答案,利
-
枚举java语言中的修饰符组合的实例代码
枚举java语言中的修饰符组合,代码如下所示: package model; /*22:37 2019/7/20*/ /* top class的修饰符组合 abstract final public * 2 * 2 warning: abstract final 冲突 最终,共有2*(2*2-1)=6种修饰符组合用于top class */ /* public abstract class PublicAbstractClass{} public final class PublicFinalC
-
列举java语言中反射的常用方法及实例代码
Java反射机制 一.什么是反射机制 简单的来说,反射机制指的是程序在运行时能够获取自身的信息.在java中,只要给定类的名字, 那么就可以通过反射机制来获得类的所有信息. 二.哪里用到反射机制 有些时候,我们用过一些知识,但是并不知道它的专业术语是什么,在刚刚学jdbc时用过一行代码, Class.forName("com.mysql.jdbc.Driver.class").newInstance();但是那时候只知道那行代码是生成 驱动对象实例,并不知道
随机推荐
- JavaBean(EJB) 3.0 全新体验
- 不用xp_cmdshell照样执行命令
- SQL UPDATE 更新语句用法(单列与多列)
- i++循环与i-–循环的执行效率(递增与递减效率)
- 用JavaScript计算在UTF-8下存储字符串占用字节数
- asp.net Repeater 数据绑定代码
- php+ajax实现无刷新分页的方法
- Ajax中的循环方案
- javascript格式化日期时间函数
- JavaScript 变量基础知识
- jQuery+css实现百度百科的页面导航效果
- FTP 服务器的部署和维护心得
- php获取英文姓名首字母的方法
- C#预处理指令之#line,#pragma warning 详细解析
- C#根据年月日计算星期几的函数
- php组合排序简单实现方法
- Java实现的n阶曲线拟合功能示例
- Android仿微信主界面的实现方法
- 正则表达式grep用法详解
- 解决vuejs 使用value in list 循环遍历数组出现警告的问题