【2023,学点儿新Java-33】字符型变量char | 布尔类型变量 boolean:true、false

news2024/10/6 4:07:03

前情提要:

  • 【2023,学点儿新Java-32】Java基础小练习:根据圆周率与半径求圆的面积 | 温度转换 | 计算矩形面积 | 判断奇偶数 | 年龄分类
  • 【2023,学点儿新Java-31】测试:整型和浮点型变量的使用 | 附:计算机存储单位(转换关系)| 企业真题:为什么0.1+0.2不等于0.3
  • 【2023,学点儿新Java-30】变量的基本使用:变量的意义 | 变量的构成要素 | Java中变量的数据类型、变量的使用 | 附:Java中变量的作用域 | 数据类型、变量名和变量值哪个最重要?
  • 更多系列文章,可参阅本专栏或博主主页哦~

 
在那年初秋相识,在这个盛夏别离。

 

🎯作者主页: 追光者♂🔥

        

🌸个人简介:
 
💖[1] 计算机专业硕士研究生💖
 
🌟[2] 2022年度博客之星人工智能领域TOP4🌟
 
🏅[3] 阿里云社区特邀专家博主🏅
 
🏆[4] CSDN-人工智能领域优质创作者🏆
 
📝[5] 预期2023年10月份 · 准CSDN博客专家📝  
 

  • 无限进步,一起追光!!!

        

🍎感谢大家 点赞👍  收藏⭐   留言📝!!!

        

🌿本篇简单介绍一下Java中的字符型变量char,布尔类型变量(boolean)的相关基础知识及它们的简单练习。

🕝目录

  • 🍄一、字符型变量char、布尔类型变量
    • 🥝1.1 char类型简介
    • 🥝1.2 布尔类型变量
    • 🥝1.3 测试字符类型、布尔类型的使用

🍄一、字符型变量char、布尔类型变量

🥝1.1 char类型简介

  • char 型数据用来表示通常意义上“字符”(占2字节)

  • Java中的所有字符都使用Unicode编码,故一个字符可以存储一个字母,一个汉字,或其他书面语的一个字符。

  • 字符型变量的三种表现形式:

    • 形式1: 使用单引号(’ ')括起来的单个字符

      例如:char c1 = 'a'; char c2 = '中'; char c3 = '9';

    • 形式2: 直接使用 Unicode值来表示字符型常量:‘\uXXXX’。其中,XXXX代表一个十六进制整数。

      例如:\u0023 表示 ‘#’

    • 形式3: Java中还允许使用转义字符‘\’来将其后的字符 转变为特殊字符型常量。

      例如:char c3 = '\n'; // '\n’表示换行符

转义字符说明Unicode表示方式
\n换行符\u000a
\t制表符\u0009
\''双引号\u0022
\'单引号\u0027
\\反斜线\u005c
\b退格符\u0008
\r回车符\u000d
  • char类型是可以进行运算的。因为它都对应有Unicode码,可以看做是一个数值。

 


在Java中,char类型 是用来表示一个单个字符的数据类型。它使用16位的Unicode字符集编码,可以包含任何Unicode字符,包括字母、数字、标点符号、特殊符号和控制字符。

char类型的取值范围 是从’\u0000’(即0)到’\uffff’(即65535),它不支持负值。可以使用转义序列 来表示一些特殊字符,例如’\n’表示换行符,‘\t’表示制表符,以及’\u’后接四个十六进制数字表示Unicode编码。

在Java中,char类型的字面值 用单引号括起来,例如’a’、‘1’、'@'等。可以通过直接赋值或者通过转义字符赋值给char变量。例如

char c1 = 'A';     // 直接赋值
char c2 = '\n';    // 通过转义字符赋值
char c3 = '\u4e2d'; // 通过Unicode编码赋值

char类型 可以用于表示字符、进行字符操作和比较。可以使用一些内置的字符方法,如Character.isLetter()来判断一个字符是否为字母,Character.isDigit()来判断一个字符是否为数字,Character.isWhitespace()来判断一个字符是否为空白字符等。

需要注意的是,char类型 在内存中 占用两个字节,因此它与byte、short和int等整数类型之间 不能直接进行数值运算,需要进行类型转换。可以使用强制类型转换 来将char类型转换为int类型,例如(int)c

🥝1.2 布尔类型变量

  • boolean 类型用来判断逻辑条件,一般用于流程控制语句中:

    • if条件控制语句;
    • while循环控制语句;
    • for循环控制语句;
    • do-while循环控制语句;
  • boolean类型数据只有两个值:true、false,无其它。

    • 不可以使用0或非 0 的整数替代false和true,这点和C语言不同。
    • 拓展:Java虚拟机中 没有任何供boolean值 专用的字节码指令,Java语言表达 所操作的boolean值,在编译之后 都使用java虚拟机中的int数据类型来代替:true用1表示,false用0表示。——《java虚拟机规范 8版》
  • 举例:

boolean isFlag = true;

if(isFlag){
    //true分支
}else{  
    //false分支
}

在Java中,布尔类型(boolean)是用于表示真(true)或假(false)的数据类型。布尔类型变量 只能取truefalse这两个值,用于进行 逻辑判断和控制程序流程。

布尔类型 在Java中 用于条件判断、循环控制以及逻辑运算等场景。可以用于判断语句的条件部分,例如if语句、while循环、for循环等。

布尔类型变量的声明和赋值很简单,例如:

boolean flag = true;
boolean enabled = false;

注意,布尔类型 只能使用true或false来赋值,并且是区分大小写的。不能将0或非0的整数、null、空字符串等赋值给布尔类型变量。

布尔类型变量可以进行逻辑运算,包括逻辑与(&&)、逻辑或(||)、逻辑非(!)等。例如:

boolean result1 = true && false;    // false
boolean result2 = true || false;    // true
boolean result3 = !true;            // false

除了用于条件判断和逻辑运算外,布尔类型还可以用作状态标志开关等。例如,可以使用布尔类型变量 来表示一个按钮是否被点击、一个选项是否选中等。

需要注意的是,布尔类型 不能直接参与数值运算,也不能 与其他数据类型进行直接的转换。它们主要用于 控制程序的流程和逻辑判断。

🥝1.3 测试字符类型、布尔类型的使用

/*
测试字符类型和布尔类型的使用
*/
class VariableTest2 {
	public static void main(String[] args) {
		
		//1.字符类型:char(2字节)

		//表示形式1:使用一对''表示,内部有且仅有一个字符
		char c1 = 'a';
		char c2 = '中';
		char c3 = '1';
		char c4 = '%';
		char c5 = 'γ';
		
		//编译不通过
		//char c6 = '';
		//char c7 = 'ab';

		//表示形式2:直接使用Unicode值来表示字符型常量。
		char c8 = '\u0036';
		System.out.println(c8);

		//表示形式3:使用转义字符
		char c9 = '\n';
		char c10 = '\t';
		System.out.println("hello" + c10 + "world");

		//表示形式4:使用具体字符对应的数值(比如ASCII码)
		char c11 = 97;
		System.out.println(c11);//a

		char c12 = '1';
		char c13 = 1;

		//2. 布尔类型:boolean
		//① 只有两个取值:true 、 false
		boolean bo1 = true;
		boolean bo2 = false;
		
		//编译不通过
		//boolean bo3 = 0;
		//② 常使用在流程控制语句中。比如:条件判断、循环结构等
		boolean isMarried = true;
		if(isMarried){
			System.out.println("很遗憾,不能参加单身派对了");
		}else{
			System.out.println("哈哈哈!可以多谈几个女朋友或男朋友");
		}
		//③ 了解:我们不谈boolean类型占用的空间大小。但是,真正在内存中分配的话,使用的是4个字节。
	}
}

结果输出如下:

在这里插入图片描述


:关于字符集的相关知识,后面会专门用一期来介绍。

 


 

🍒 热门专栏推荐

  • 🥇Python&AI专栏:【Python从入门到人工智能】
  • 🥈前端专栏:【前端之梦~代码之美(H5+CSS3+JS.】
  • 🥉文献精读&项目专栏:【小小的项目 (实战+案例)】
  • 🍎C语言/C++专栏:【C语言、C++ 百宝书】(实例+解析)
  • 🍏Java系列(Java基础/进阶/Spring系列/Java软件设计模式等)
  • 🌞问题解决专栏:【工具、技巧、解决办法】
  • 📝 加入Community 一起追光:追光者♂社区

 

持续创作优质好文ing…✍✍✍

 

记得一键三连哦!!!

 

求关注!求点赞!求个收藏啦!

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/751996.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(超详解)--->自定义类型(结构体,枚举,联合)

目录 本章学习重点: 1:结构体类型的声明与变量的定义 2:如何求解结构体的大小(结构体的内存对齐) 3:结构体传参,结构体实现位段 4:枚举类型的定义和优点 5:联合的定义与特点及大小的计算 1:结构…

Kind | Kubernetes in Docker 把k8s装进docker!

有点像杰克船长的黑珍珠 目录 零、说明 一、安装 安装 Docker 安装 kubectl 安装 kind 二、创建/切换/删除集群 创建 切换 删除 将镜像加载到 kind 群集中 零、说明 官网:kind Kind: Kubernetes in Docker 的简称。kind 是一个使用 Docker 容…

【技能实训】DMS数据挖掘项目-Day09

文章目录 任务9【任务9.1.1】升级DataBase类为可序列化的类,以便在文件保存或网络中传递【任务9.1.2】升级LogRec类为可序列化的类,以便在文件保存或网络中传递【任务9.1.3】升级MatchedLogRec类为可序列化的类,以便在文件保存或网络中传递【…

java通过正则表达式提取信息

java通过正则表达式提取信息 工具类如下 package com.datafactory.util;import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component;import java.util.regex.Matcher; import java.util.regex.Pattern;Component Slf4j public class RegexUtils {/…

“简单易懂的排序:深入了解直接选择排序“

文章目录 🔍 选择排序的原理与过程📈 选择排序的优缺点👉 代码实现 🔍 选择排序的原理与过程 本文我们直接说一个优化过的直接选择排序。其思路大同小异. 选择排序的思路很简单 每次从待排序的数据中选择一个最小和最大的元素&a…

记一次rabbitmq消息发送成功,消费丢失问题

记一次rabbitmq消息发送成功,消费丢失问题 背景 测试数据归档,偶现数据未归档 排查 idea线上调试,log日志,数据库消息发送记录,代码分块重复执行看哪块出的问题,结果均无问题,最后使用rabbi…

网关选型对比

网关选型 网关简介 网关是将一个网络与另一个网络进行相互连通,提供特定应用的网络间设备,应用网关必须能实现相应的应用协议。应用网关可以看做是运行于要求特定业务的客户机与提供所需业务的服务器之间的中间过程。应用网关在这类过程中,从…

MySQL练习题(6)

创建两个表插入数据 CREATE DATABASE beifen;use beifen;CREATE TABLE books(bk_id INT NOT NULL PRIMARY KEY,bk_title VARCHAR(50) NOT NULL,copyright YEAR NOT NULL);INSERT INTO booksVALUES (11078, Learning MySQL, 2010),(11033, Study Html, 2011),(11035, How to u…

Linux—实操篇:组管理和权限管理

目录 1、Linux组基本介绍 2、文件/目录 所有者 2.1、查看文件所有者 2.1、修改文件的所有者 3、组的创建 4、文件/ 目录所在组 4.1、查看文件/目录所在组 4.2、修改文件/ 目录所在组 5、其他组 6、改变用户所在组 7、权限基本介绍 8、rwx权限详解 8.1、rwx作用到文…

除了单测、写main方法,还有其他验证方式吗?试试Java JShell吧!

文章首发地址 JShell 概述 Java JShell 是 JDK 9 中引入的一个交互式命令行工具,可以方便地测试 Java 代码片段和进行试验性的 Java 编程。JShell 可以帮助开发人员轻松地创建和测试 Java 代码,而无需编写和运行完整的应用程序或测试用例。以下是 JShe…

了解刚性、惯量、响应时间及伺服增益之间的关系,提高系统的性能和稳定性!

在伺服系统选型及调试中,刚性、惯量、响应时间及伺服增益调整之间的关系错综复杂,这些因素在控制系统中相互影响,对于系统的稳定性和性能至关重要。但在实践中如何调整取值比较合理,这些就算是工程师都会经常感到困惑。所以了解它…

Django 分布式路由

简介: Django中,主路由配置文件(urls.py)可以不处理用户具体路由,主路由的配置文件可以配置成做请求的分发(分布式请求处理,分发到子路由而不是具体的视图函数)。具体的请求可以由各自的应用来处理。 步骤…

stm32(SPI读写W25Q18)

SPI 是什么? SPI是串行外设接口(Serial Peripheral Interface)的缩写,是一种高速的,全双工,同步的通信总 线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PC…

【Nginx】rewrite简单使用

前言 没有对正式的rewrite进行了解,为了能快速了解它是干嘛怎么用,找了一些有例子的博客进行简单学习了一下;由于每次看的间隔有点大,老忘记,这回专门写个超级快速理解的例子。 PS:下面的解释可能会不太对…

Serverless和EDA是绝配,亚马逊云科技CTO Werner表示需要用开放心态来重新审视架构

前一段有个很火的博客,讲的是一家全球流媒体企业的监测系统从Serverless微服务改成了单体,成本居然降低了90%!这一下子可在网上炸锅了,特别是一些看不惯微服务的、单体应用的拥趸,更是坐不住了。但这并不像吃瓜群众看到…

ret2syscall-执行系统调用

题目 checksec一下: 32位程序,没有canary、PIE,开了NX,放入IDA看一下: 有gets,可以溢出,不过没有system函数,也不能执行shellcode,查看字符发现有/bin/sh,那就…

消息中间件系列 - RocketMQ

前言 本内容仅用于个人学习笔记,如有侵扰,联系删除 【尚硅谷】RocketMQ教程丨深度掌握MQ消息中间件_哔哩哔哩_bilibili 第一章 RocketMQ概述 一、MQ概述 1 、MQ简介 MQ,Message Queue,是一种提供消息队列服务的中间件&#…

SpringBoot(七)Filter的使用

思考一个问题,服务端对于客户端的请求,真的应该照单全收吗?不是的。比如拿我们之前实现的用户注册功能来看,如果用户的昵称带了一些不友好的字母或汉字,你是给他过滤掉呢还是让他注册呢?毫无疑问&#xff0…

Zint-条码生成软件-命令行调用-一维条码和二维条码

文章目录 1.Zint简介2.术语3.命令行3.1.输入数据3.2.直接输出3.3.选择条码类型3.4.调整高度3.5.调整空白3.6.添加边界条和框3.7.颜色设置3.8.旋转3.9.调整图像尺寸 4.界面5.总结 1.Zint简介 Zint项目旨在提供一个完整的跨平台开源条形码生成解决方案。该软件包目前包括一个基于…

零拷贝是如何实现的

零拷贝是如何实现的 零拷贝(Zero-copy)是一种优化技术,用于在数据传输过程中减少数据的拷贝次数,从而提高数据传输的效率和性能。传统的数据传输涉及多次内存拷贝操作,而零拷贝通过减少或避免这些拷贝操作来实现性能优…