Java 有一种表示逻辑值的简单类型,称为布尔型。它的值只能是真或假这两个值中的一个。它是所有的诸如a下面的程序说明了布尔类型的使用:

// Demonstrate boolean values.

class BoolTest {

public static void main(String args[]) {

boolean b;

b = false;

System.out.println("b is " + b);

b = true;

System.out.println("b is " + b);

// a boolean value can control the if statement

if(b) System.out.println("This is executed.");

b = false;

if(b) System.out.println("This is not executed.");

// outcome of a relational operator is a boolean value

System.out.println("10 > 9 is " + (10 > 9));

}

}

这个程序的运行结果如下所示:

b is false

b is true

This is executed.

10 > 9 is true

关于这个程序有3件有趣的事情要注意。首先,你已经看到,当用方法println ( ) 输出布尔的值时,显示的是“true ”或“false”。第二,布尔变量的值本身就足以用来控制if语句。没有必要将if语句写成像下面这样:

if(b == true) ...

第三,关系运算符(例如9 的显示值是“true”。此外,在表达式10>9 的两边额外的加上括号是因为加号“+”运算符比运算符“>”的优先级要高。

JAVA布尔类型进行逻辑运算和按位运算的区别从结果上,2种运算结果都是一样,但逻辑运算会有“短路”现象,按位的没有,而按位又比逻辑运算多了“异或”功能。

短路现象

class br {

static boolean f1() {

return false;

}

static boolean f2() {

return true;

}

static boolean f3() {

return true;

}

}

boolean f_1 = br.f1()&&br.f2()&&br.f3();

结果为false,当因为f1()就为false,那么后面的&&运算不用进行都知道结果了,JAVA就会发生“短路”对后面的运算乎略,性能提高。

boolean f_2 = br.f2()||br.f1()||br.f3();

结果true,同样f2()为true,后面一样不用再运算了。

好像很方便又高效,但还是有缺点。

boolean f_3 = br.f2()||br.f3()&&br.f1();

结果就变成true,正确应该是false,这就是“短路”造成的错误了,想获得正确的答案就需要加括号:

f_3=( br.f2()||br.f3())&&br.f1();

按位运算提供逻辑没有的异或功能:

boolean f = true^true;

结果f = false;

java 布尔类型_Java的布尔类型基本介绍相关推荐

  1. java 基本变量类型_Java自学-基本变量类型

    Java中的基本变量类型 一个变量的类型,决定了该变量可以包含什么样的值. Java中有八种基本类型,都是Java语言预先定义好的,并且是关键字. 这八种基本类型分别是: 整型 (4种) 字符型 (1 ...

  2. java 的分类_java的基本类型(转)

    java的基本类型 java的基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte.short.int.long.float.double.数值类型又可以分为整数类型by ...

  3. java的类型_Java的基本类型

    一.Java的基本类型主要分为整数型,浮点型,字符型,布尔型. 整数型:byte,short,int,long: 浮点型:float,double 布尔型:boolean 字符型:char 二.基本类 ...

  4. java 泛型 擦除_Java泛型和类型擦除

    一 前言:初识泛型 废话不说,先来看一段代码: public class Holder { private Object data; public Holder(Object data ){ this ...

  5. java解包_Java的原始类型自动包装与解包机制

    java5之后对原始数据类型如int.char.long等基本数据类型有自动打包成相应的复合类型Integer.Character.Long等的机制:也可以将复合类型自动转换为原始类型. 这取决于程序 ...

  6. java jceks 密钥_Java中不同类型的密钥库(Keystore) – 概述

    阅读: 877 密钥库是用于存储加密密钥和证书的存储工具 ,最常用于SSL通信,以证明服务器和客户端的身份.密钥库可以是文件或硬件设备.有三种类型的条目可以存储在密钥库中,取决于密钥库的类型,这三种类 ...

  7. java原始类型_Java的原始类型(Primitive Type) | 学步园

    我们知道,在Java中,变量有两种类型,一种是原始类型,一种是引用类型. 原始类型一共有8种,它们分别是char,boolean,byte,short,int,long,float,double.在J ...

  8. java lambda函数_Java SE 8新功能介绍:使用Lambda Expression进行函数式编程

    java lambda函数 " Java SE 8新功能浏览 "系列的这篇文章将深入了解Lambda表达式 . 我将向您展示Lambda表达式的几种不同用法. 它们都具有功能接口的 ...

  9. java加载声音文件类型_java读取各种类型文件

    用到的几个包 bcmail-jdk14-132.jar/bcprov-jdk14-132.jar/checkstyle-all-4.2.jar/FontBox-0.1.0-dev.jar/lucene ...

最新文章

  1. VS2010使用Skin++
  2. 【Rsync + inotify】 实时同步远程服务器目录文件
  3. ASP.NET4.5Web API及非同步程序开发系列(3)
  4. RocketMQ核心概念
  5. 飞龙的程序员书单 – Linux
  6. Docker中配置国内镜像
  7. 安卓下最强的3款pdf阅读器测评
  8. Arcgis地籍图河流注记字体批量修改
  9. 软件封装-单文件打包
  10. crm系统是什么很棒ec实力_哪个CRM系统好
  11. 工业界中NLP(自然语言处理)算法工程师的核心竞争力是什么?
  12. 我的世界1.19.2最终优化模组推荐:这60个优化模组让你的体验更好
  13. 详解VMware CentOS网络配置
  14. new open SQL ABAP语法错误,逗号和转义符变量 when escaped, all host variables must be escaped using@
  15. html5 canvas爆炸,html5 canvas彩色爆炸的小球动画特效
  16. PHP单例模式与常驻内存(总结)
  17. 面经系列:2020年联发科技数字IC设计岗
  18. 位运算 - 位运算基本操作
  19. windows搭建hadoop环境(解决HADOOP_HOME and hadoop.home.dir are unset)
  20. 算法分析与设计|主要内容整理

热门文章

  1. linux 内核 ramdisk,Ramdisk根文件系统启动Linux(单独的ramdisk镜像)
  2. feign:hystrix:enabled:true无效解决
  3. Shell学习六:awk的用法
  4. 【Mac】你的Mac屏幕居然是Ipad Pro?
  5. 微信转服服务器,王者荣耀qq转移到微信可以吗 跨平台转区规则介绍
  6. 乔布斯的成功说明了什么
  7. HTML-视频和音频
  8. Photoshop视频
  9. elementaryOS(基于Ubuntu16.04.5 LTS)耳机没有声音的解决之路
  10. 官网下载不同版本的AndroidStudio