Java字符的数据类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java字符的数据类型相关的知识,希望对你有一定的参考价值。

参考技术A

它是计算机的数据存储单元,每个字节包括8个二进制“位-bit”,可以保存8位的二进制数。
由于受到电子设备的物理特定限制,例如磁性存储器只适合保存两种状态的信息—磁性的强弱、以电信号的方式也只适合传递两种状态的信息—电压的高低,因此在计算机中最终结果时再将转换为人们熟悉的格式,如十进制数值、字符和图形等。 为了实现对字符信息的存储,人们将可能用到的字符排成一个有序的字符队列,这种由多个有序字符组成的集合称为“字符集-Charset”,而在计算机中世纪保存的是字符在字符集中的序号,即一个二进制形式的整数。而到底采用1个还是多个字节以及具体如何来存储一个字符集的字符,这种相关的规定被称为“编码-Encoding”。
Java最初采用的是16位Unicode编码(UTF-16)来表示字符,无论序号大小,每个Java字符都占用定长的2B(16个二进制位),因此最多能表示65536个不同的字符,这只是粗略的说法,实际上如果采用变通的方式进行字符编码,UTF-16编码可以表示的字符远多于65536个。
例如,从JDK5开始Java语言引入了Unicode编码规范中的代码点(Code Point)机制,将每个字符对应的代码称为一个代码点,基本的多语言字符的代码点还是用16位表示,这16位的二进制数据也称为一个单元代码(Code Unit),此时一个代码单元也对应一个代码点;
而后扩充辅助字符则编码为2个连续的代码单元(32位),此时一个代码点有两个代码单元组成,这实际上是将UTF-16也变成了可变长度编码。 (1) 用英文单引号括起来的单个字符,例如:'a'、'字'。这是最常见的声明字符形式。
(2) 用英文单引号括起来的十六进制字符代码值来表示单个字符。其格式为:'uXXXX',其中u是约定的前缀(u是unicode的第一个字母),而后面的XXXX位4位十六进制数,是该字符在unicode字符集中的序号。例如:'uFFFF'。 某些特殊的字符可以采用转义符来表示,如换行和制表符在源文件直接出现会被当做分隔符、而不是做字符常量来使用,因而分别使用'n'和't'来转移,下面给出一些常见的Java程序中用到的转义符:
n:换行符,unicode值为'u000a'
t:制表符,unicode值为'u0009'
r:回车符,unicode值为'u000d'
:双引号,unicode值为'u0022'
':单引号,unicode值为'u0027'
\\:反斜杠,unicode值为'u005c'
b:退格符,unicode值为'u0008'
在Java中声明字符:char c1 = '一'; 即表示c1是一个字符。

Java基础6----数据类型3(字符型)

引言

前面我们学了整型浮点型和布尔型。基本把处理数字的数据类型学完了,但是现实中还有很多的数据是文字的,这里我们讲介绍字符型来处理文字类型数据

字符型

Java中使用char来定义字符型变量,在Java中使用 ‘’ 定义的内容就是字符,示例如下

public class Demo {
    public static void main(String[] args) {
        // char 变量名 = '字符'
        char a = 'A'; // 定义字符变量a并且赋值为A
        System.out.println(a); // 输出
    }
}


在任何的编程语言中,字符都是可以与int进行转换的

char与int的关系

public class Demo {
    public static void main(String[] args) {
        // char 变量名 = '字符'
        char a = 'A'; // 定义字符变量a并且赋值为A
        int n = a; // 将char转换为int
        System.out.println(n); // 输出
    }
}


说明在计算机中A的编码为65
我们常用的26个字母在我们计算机中的编码范围如下,感兴趣的可以写代码测试一下

  • A(65) - Z(90)
  • a(97) - z(122)
  • 大小写字母之间差了32
  • 字符数字0(48) - 9(57)
    既然知道了大小写之间的差异数字,那么就可以实现我们大小写的转换
public class Demo {
    public static void main(String[] args) {
        // char 变量名 = '字符'
        char a = 'a';
        int n = a; // 将char转换为int类型,方便运算
        n = n - 32; // 将小写字母对应的数字减去32变为大写对应数值
        System.out.println((char) n); // 通过强制类型转换将int变为char
    }
}


到这里Java中的char类型用法与C当中基本是一样的,但是Java中的char类型主要是用来处理中文字符的

查看中文字符的编码

public class Demo {
    public static void main(String[] args) {
        // char 变量名 = '字符'
        char a = '火';
        int n = a; // 将char转换为int类型,方便运算
        System.out.println(n);
    }
}


学过C的人都知道char是不能保存中文的,那么java为什么能保存中文呢,主要是因为Java采用unicode这种十六进制的编码方式,这种编码可以包括任意的内容

总结

char在Java中使用的是Unicode编码,这样能方便我们处理中文,插入的定义使用的是单引号,在char中0与数字0是不一样的概念

以上是关于Java字符的数据类型的主要内容,如果未能解决你的问题,请参考以下文章

java大神 字符串的转换基本数据类型

Java定义了哪些基本数据类型?基本数据类型和引用数据类型的特点?

java中引用数据类型都有哪些?

Java学习笔记之:java引用数据类型之字符串

细谈JAVA中的数据类型

从零开始的JAVA -3. java的数据类型