Saul's blog Saul's blog
首页
后端
分布式
前端
更多
分类
标签
归档
友情链接
关于
GitHub (opens new window)

Saul.J.Wu

立身之本,不在高低。
首页
后端
分布式
前端
更多
分类
标签
归档
友情链接
关于
GitHub (opens new window)
  • Java入门基础

    • 计算机常识

    • Java语言概述

    • 基本语法

      • Java-关键字与保留字
      • Java-标识符(Identifier)
      • Java-变量
      • Java-基本数据类型-整型
      • Java-基本数据类型-浮点型
      • Java-基本数据类型-char字符
        • 字符类型:char
        • 表现形式
        • 实例
        • ASCII 码
        • Unicdoe编码
        • UTF-8
      • Java-基本数据类型-boolean布尔类型
      • Java-基本数据类型之间的运算规则
      • 字符串类型 String
      • 进制
      • 运算符
      • Scanner类
      • 流程控制-分支结构
      • 流程控制-循环结构
    • 数组

    • 面向对象

    • 异常处理

  • Java核心基础

  • 设计模式

  • Web开发

  • SpringBoot

  • 微服务

  • Elasticsearch

  • 运维

  • 后端
  • Java入门基础
  • 基本语法
SaulJWu
2020-11-24

Java-基本数据类型-char字符

# 字符类型:char

  • char型数据用来表示通常意义上的“字符”
  • 一个字符占用2个字节
  • java中所有的字符都使用Unicode编码,故一个字符可以存储一个字母,或一个汉字,或其他书面语的一个字符。

# 表现形式

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

  • 字符常量是用单引号('')括起来的单个字符。

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

  • Java中还允许使用转义符'\'来将气候的字符转变位特殊字符型常量。

例如:char c3 = '\n'; //'\n'表示换行符,'\t'表示制表符。

  • 直接使用Unicode值来表示字符型常量。

例如: '\uXXXX'。其中,XXXX代表一个十六进制整数。如:\u000a表示\n。

  • char类型是可以进行运算的。因为它都对应有Unicode码。

# 实例

char c1 = 'a';
System.out.println(c1);

char c2 = 'A';
System.out.println(c2);

// 错误示例
char c3 = 'AB';

char c4 = '\n';//换行符
System.out.print("hello" + c4);
System.out.println("world");
//hello
//world

char c5 = '\t';//制表符
System.out.print("hello" + c5);
System.out.println("world");
//hello		world

char c6 = '\u0043';
System.out.println(c6); // C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

# ASCII 码

  • 在计算机内部,所有数据都使用二进制表示。每一个二进制位(bit)有0和1两种状态,因此8个二进制位就可以组合出256种状态,这被称为一个字节(byte)。一个字节一共可以用来表示236种不同的状态,每一个状态对应一个符号,就是256个符号,从00000000到11111111.
  • ASCII码:上个世界60年代,美国制定了一套字符编码,对英语字符与二进制之间的关系,做了统一规定。这被称为ASCII码。ASCII码一共规定了128个字符的i编码,比如空格"SPACE"是32(二进制00100000),大写的字母A是65(二进制01000001)。这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0。
  • 特点:
    • 不能表示所有字符。
    • 现同的编码表示的字符不一样:比如,130在法语编码种代表了é,在希伯来语编码中代表了字母Gimel (ג)

# Unicdoe编码

  • 乱码:世界上存在着多种编码方式,同一个二进制数字可以被解释成不同的符号。因此,要想打开一个文本文件,就必须知道它的编码方式,否则用错误的编码方式解读,就会出现乱码。
  • Unicode:一种编码,将世界上所有的符号都纳入其中。每一个符号都给予一个独一无二的编码,使用Unicode没有乱码的问题。
  • Unicode的缺点:Unicode只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储;无法区别Unicode和ASCII;计算机无法区分三个字节表示一个符号还是分别表示三个符号。另外,我们知道,英文字母只用了一个字节表示就足够了,如果unicode统一规定,每个符号用三个或四个字节来表示,那么每个英文字母前都必然有二到三个字节是0,这对于存储空间来说是极大的浪费。

# UTF-8

  • UTF-8是在互联网上使用最广的一种Unicode的实现方式。
  • UTF-8是一种编程的编码方式。它可以使用1-6个字节表示一个符号,根据不同的符号而变化字节长度。
  • UTF-8的编码规则:
    • 对于单字节的UTF-8编码,该字节的最高位为0,其余7位用来对字符进行编码(等沟通与ASCII码)。
    • 对于多字节的UTF-8编码,如果编码包含n个字符,那么第一个字节的前n位位为1,第一个字节的n+1位位0,该字节的剩余各位用来对字符进行编码。在第一个字节之后的所有的字节,都是最高两位位"10",其余6位用来对字符进行编码。
帮我改善此页面 (opens new window)
#char#字符类型#ASCII#Unicdoe#UTF-8
上次更新: 2020/12/18, 12:50:58
Java-基本数据类型-浮点型
Java-基本数据类型-boolean布尔类型

← Java-基本数据类型-浮点型 Java-基本数据类型-boolean布尔类型→

最近更新
01
zabbix学习笔记二
02-28
02
zabbix学习笔记一
02-10
03
Linux访问不了github
12-08
更多文章>
Theme by Vdoing | Copyright © 2020-2022 Saul.J.Wu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式