问题背景

最近在看一些代码的时候发现自己并不清楚char类型数据是如何进行比较和运算的,所以学习一下https://www.w3cschool.cn/java/java-char-data-type.html,并且写了些自己的理解

char类型的定义

        char s1='a';char s2='d';char s3=14545;char s4='5';char s7='@';char s5=123;char s6=256;char s8='\u0041';char s9='李';char s10='\111';char s11='\11';char s12='\1';char s13='\2';

char数据类型是16位无符号Java基元数据类型。它表示Unicode字符。请注意,char是无符号数据类型。因此,char变量不能为负值。字符数据类型的范围为0到65535,这与Unicode集的范围相同,实际上char 在Java 中是和 Unicode编码 形成一一对应的映射来存储的

  • 用单引号括起来的字符
    如s1,s2,s4,s7,s6,s9,,可以定义数字,字母,汉子,但是都只能是一个字符
  • 字符转义序列
    字符字面量可以表示为字符转义序列。字符转义序列以反斜杠开头,后面紧跟一个字符,并且都用单引号括起来。有八个预定义的字符转义序列,如下表所列。Java中只有八个字符转义序列。我们不能定义你自己的字符转义序列。

    即便你自己定义了如
char s11='\11';char s12='\1';char s13='\2';

但是实际上输出也都是乱码的

  • Unicode
    1.字符字面量可以表示为“\ uxxxx”形式的Unicode转义序列。这里, \u 表示Unicode转义序列的开始,xxxx正好表示四个十六进制数字。
    如s8,
    2.字符文字可以表示为形式为’\ nnn’的八进制转义序列。
    这里,n是八进制数(0-7)。八进制转义序列的范围是’\ 000’到’\ 377’。
  • 直接后面跟数字但是必须在0到65535中
    如s1,s2,s4,s7,s6,s9,,可以定义数字,字母,汉子,但是都只能是一个字符

char类型的运算和输出

上面定义实际上就分为两种:

  • 一种是直接后面跟数值,没有单引号,数值表示的是实际上是位置例如s5,s6,十进制分别是123和256,转换成16进制就是007b和0100,代表的字符分别是就是实际上代表在unicode表中第123个字符:{,和第256个字符:Ā
  • 一种是单引号,实际上就是unicode表里面的某个字符
    所以在运算的时候,实际上首先把字符都转换成对应的10进制表示的数来进行运算,最后返回的就是一个int类型的10进制数。而在输出的时候,要根据结果的类型来分,如果是int,自然输出的是int值,如果是char,自然是char值

如错误,请指出,十分感激

java基本数据类型Char相关推荐

  1. Java基础-数据类型int,short,char,long,float,double,boolean,byte

    Java语言是静态类型的(statical typed),也就是说所有变量和表达式的类型再编译时就已经完全确定.由于是statical typed,导致Java语言也是强类型(Strong typed ...

  2. java char字符转编码_一、java基础-数据类型_数据类型转化_字符编码_转义字符

    1.Java  支持的8种基本数据类型: java的四种整数数据类型:byte 1    short 2     int4     long8 byte     8位带符号整数 -128到127之间的 ...

  3. java基本数据类型 byte、short、int、long、float、double、char的范围和运算中注意的事项(详细)

    1.Java的8种基本数据类型及其所占空间大小: 注意: ①为什么float占4个字节,而long占8个字节,float表示的范围却比long要大得多呢? 原因简单说是因为二者存储的模式不同,long ...

  4. JAVA数据类型 - char 的使用

    public class IdentifierTest01 { /*Java语言中,char占2个字节,16位,可存放汉子(占用2个字节).或者英文等字符(占用1个字节)关于char的赋值三种方法:1 ...

  5. java基本数据类型 以及 double float 二进制表示方法

    Java 基本数据类型分为4类:整型,浮点型,字符型,布尔型. 整数类型: 关键字 占用字节数 byte 1 short 2 int 4 long 8 每个类型的取值范围,我们以int 为例,4个字节 ...

  6. 【Java基础】Java基本数据类型与位运算

    1.赋值运算符 赋值使用操作符"=".它的意思是"取右边的值(即右值),把它复制给左边(即左值)".右值可以是任何 常数.变量或者表达式 (只要它能 生成 一个 ...

  7. java i数据类型_数据类型 I

    都来自菜鸟教程,自己总结学习使用, JS 数据类型  没有对比就没有伤害, 字符串(String).数字(Number).布尔(Boolean).数组(Array).对象(Object).空(Null ...

  8. Java 基本数据类型 sizeof 功能

    Java基本数据类型 int     32bit short   16bit long    64bit byte    8bit char    16bit float   32bit double ...

  9. Java 基本数据类型

    Java 基本数据类型 变量就是申请内存来存储值.也就是说,当创建变量的时候,需要在内存中申请空间. 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据. 因此,通过定义不 ...

最新文章

  1. 一台主机装两个mysql数据库_一台主机装两个mysql数据库
  2. 第一篇博客,java学生管理系统(挑战全网最全)
  3. Stimulsoft Reports.Net基础教程(十):创建图表报表②
  4. javaweb实现分页(二)
  5. Linux 资料大全
  6. 计算机网络(三)-体系结构
  7. 评审会上产品经理常被怼的话
  8. 2019.8.21页面功能的实现
  9. 运行第一个PHP程序
  10. [转载] numpy数组遍历找到个数最多的元素
  11. 读 zepto 源码之工具函数
  12. 计算机网络课程设计个人总结,计算机网络课程设计心得体会.doc
  13. 对“西刺免费代理IP“爬取、测试并存入MySQL
  14. 格拉布斯法—异常值判断(异常值)
  15. 音视频OSD完全教程
  16. 【跨域问题】springBoot + VUE解决跨域问题几种处理方案
  17. 系统虚拟化- 原理与实现
  18. 廊坊圣洁口去医院明星同款·隐形矫正试戴会圆满举办!
  19. python程序执行完后重头开始做烧饼_从“程序员转行卖烧饼”想到IT人创业
  20. 主目录中文路径名转英文

热门文章

  1. 数据库范式 1NF, 2NF, 3NF的问题与细解
  2. 变速器--中英文翻译
  3. 多多情报通:拼多多数据怎么看?
  4. java计算机毕业设计个人交友网站源程序+mysql+系统+lw文档+远程调试
  5. 'MLY -- 12.Takeways:Setting up development and test sets'
  6. pv uv vv cv 的区别
  7. 如何将excel里的数据导入到mysql中
  8. Eclips 安装教程
  9. Named Route index has a default child route. When navigating to this named route to name index
  10. WIN10下配置Yolov3(VS2019,GPU)+opencv训练自己的数据集(绝对详细,小白型记录)