java布尔值进行and和or逻辑运算原理
2016-04-16 20:56
417 查看
先看看如下代码:
输出: |
| 和 &运算符是 or和and逻辑运算
1 | 0 == 1
1 & 0 == 0
我们来看一下test方法的字节码
我们注意0-3的字节码
0:将常量1入栈
1:将1赋值给第一个变量(a)
2:将常量0入栈
3:将0赋值给第二个变量(b)
所以布尔值的逻辑运算就是整型01的逻辑运算
7:ifeq 18 表示
if()里面判断的是逻辑运算的结果是否等于0,如果等于0,则跳过括号内的代码进行下面的代码.
public class Test { public static void test() { boolean a = true; boolean b = false; if (a | b) { System.out.println("|"); } if (a & b) { System.out.println("&"); } } public static void main(String[] args){ test(); } }
输出: |
| 和 &运算符是 or和and逻辑运算
1 | 0 == 1
1 & 0 == 0
我们来看一下test方法的字节码
0: iconst_1 1: istore_0 2: iconst_0 3: istore_1 4: iload_0 5: iload_1 6: ior 7: ifeq 18 10: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream; 13: ldc #3 // String | 15: invokevirtual #4 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 18: iload_0 19: iload_1 20: iand 21: ifeq 32 24: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream; 27: ldc #5 // String & 29: invokevirtual #4 // Method java/io/PrintStream.println:(Ljava/lang/String;)V 32: return
我们注意0-3的字节码
0:将常量1入栈
1:将1赋值给第一个变量(a)
2:将常量0入栈
3:将0赋值给第二个变量(b)
所以布尔值的逻辑运算就是整型01的逻辑运算
7:ifeq 18 表示
if()里面判断的是逻辑运算的结果是否等于0,如果等于0,则跳过括号内的代码进行下面的代码.
相关文章推荐
- java中Collections的两种排序方法
- Java自动拆箱和装箱
- Java技术_Java千百问(0031)_java中抽象概念如何体现的
- 一些Java中常用的定义(2)
- java泛型III-通配符
- 共同学习Java源码--常用数据类型--String(十六)
- java学习笔记(从搭建环境到入门java)
- java排序算法
- mac osx下载安装java运行环境
- java设计模式之单例
- Java TreeSet练习
- 根据类Student的定义,创建五个该类的对象,输出每个学生的信息, 计算并输出这五个学生Java语言成绩的平均值,以及计算并输出他们Java语言成绩的最大值和最小值。
- Java 线程池原理解析(二)
- Java基础复习(二)
- [Spring]Annotation-based container configuration_AnotationBasis_02
- 20145106《Java程序设计》第7周学习总结
- java之Secure hash functions
- java中的基本类型
- java设计模式之策略
- 《Java程序设计》实验二 实验报告