首页 > 编程语言 >java的char类型

java的char类型

时间:2022-08-18 14:55:08浏览次数:47  
标签:字符 java int char 65 类型 x1 ASCII

一、Char介绍

字符型数据类型。用于存放单个字符。用单引号【' '】括住

2字节,16位。char在java中是16位,因为java用的是Unicode。一个16位的编码所能产生的字符只有65536个。

Unicode码包括ASCII码。大多数计算机采用ASCII(美国标准信息交换码),它是表示所有大小写字母、数字、标点符号和控制字符的8位编码表。从'\u0000'到'\u007F'对应128个ASCII字符。

二、char赋值
1. 概述

    因为char是16位的,采取的Unicode的编码方式,所以char就有以下的初始化方式:

char c='c'; //字符,可以是汉字,因为是Unicode编码。需要加单引号。
char c=十进制数,八进制数,十六进制数都可以; //可以用整数赋值【整数范围:0~65535】。输出字符编码表中对应的字符。
char c='\u数字'; //用字符的编码值来初始化,如:char='\0',表示结束符,它的ascll码是0,这句话的意思和 char c=0 是一个意思。

2.  实例

//大写字母'A'的ASCII码为十进制数是65。大写字母'A'的ASCII码为八进制数是101。大写字母A''的ASCII码为十六进制数是41
char x1 = 65;//为char类型变量x1 赋值常量值 65。十进制编码的ASCII码表中字符'A'对应的是65
char x11 = 41;//')'的ASCII码为十进制数是41
char x12 = 101;//'e'的ASCII码为十进制数是101
 
char x2 = 'A';//ASCII字符 'A' 的Unicode码是0041。zi
char x3 = '\u0041';
//----------------------------------------------------------------
int y1 = x1;
int y11 = x11;
int y12 = x12;
 
int y2 = x2;
int y3 = x3;
//----------------------------------------------------------------
System.err.println("x1="+x1+", x1的int值="+y1);
System.err.println("x11="+x11+", x11的int值="+y11);
System.err.println("x12="+x12+", x12的int值="+y12);
        
System.err.println("x2="+x2+", x2的int值="+y2);
System.err.println("x3="+x3+", x3的int值="+y3);
x1=A, x1的int值=65
x11=), x11的int值=41
x12=e, x12的int值=101
x2=A, x2的int值=65
x3=A, x3的int值=65

三、char运算

char类型是可以运算的因为char在ASCII等字符编码表中有对应的数值。

1. 总结:

在JAVA中,对char类型字符运行时,直接当做ASCII表对应的整数来对待。

(1)char+char,char+int——类型均提升为int,附值char变量后,输出字符编码表中对应的字符。

char m=‘a’+1;   -->b //提升为int,计算结果98对应的字符是b。

(2)自增和自减操作符可以用在char类型变量上,这会得到字符之前或者之后的Unicode字符。

    char x1 = 'A';
    System.err.println(++x1); //输出B

2. 例子

char a = 65; -->A  //为char类型变量 a 赋值常量值 65。
char b = ‘a’+3; -->D // 56+3=68,ASCII对应的字符为 D【注意:这里查询的是十进制编码的ASCII字符集】
char c = a+3; -->报错 //无法从int类型转换为char类型,接下来让我们了解下为什么会不能这样运算:

首先,我们先知道在jvm内存机制中,char类型数据运算是将字符在ASCII表对应的整数以int类型参与运算(可以认为’ A'=65)
常量(65)与常量(3)运算得到一个新的常量(68),常量赋值给变量(b),不存在强制转换,只要这个接受变量(b)的类型范围大于这个常量即可。
而变量声明时需要定义数据类型(例:char a),内存就为这个变量划分一个char类型大小的空间,其中变量(a)的值是可变的,而常量(3)的值是不变的,两个运算得到的还是一个变量,本例中(a+3)是int类型的变量,而int类型变量(a+3)赋值给char类型变量(c)需要强制转换,因此会报错。

char c=(char)(a+3); -->D

四、为什么char类型的变量可以赋值为整型数字?

char在java中是unicode编码。Java中对char型数据,在内存中存的就是整数,对应一张ASCII码表。

  •     比如说字符知 ‘A’ 对应的是65,字符 ‘a’ 对应的是97 ,所以char c1 = ‘A’ ; 等效于 char c1 = 65 ;


正是因为这样,所以字符型数据既可以作为一个字符使用,也可以作为一个整数使用,所以char型数据可以和int型数据进行运算!

  • 比如 ‘A’ + 1 的结果如果用char型变量接收就是 ‘B’ , 用int型变量接收就是66
  • char c = ‘A’+1; 最后c为’B’
  • int i = ‘A’ + 1 ; 最后i为 66


虽然char型是以整数存储,但是和int型还是有一定区别的,表现在取值范围上:

  • char型 占2个字节 无符号 范围是0~65535,所以char c = 65536 就会报错了,专因为越界了

标签:字符,java,int,char,65,类型,x1,ASCII
From: https://www.cnblogs.com/shuilangyizu/p/16598674.html

相关文章

  • java stopwatch 使用
    publicclassProgram{publicstaticvoidmain(String[]args)throwsInterruptedException{varsw=newStopWatch("模板测试");sw.start......
  • 字符串类型
    字符串类型是编程语言里非常重要的数据类型,因为几乎所有的程序主要做的事情就是处理字符串,这个随着大家的学习会有深入的体会。字符串的定义python中字符串(str)是使用单......
  • 浮点数类型
    python中浮点数用float表示,它与数学中实数的概念一致,简单理解为小数。与整数一样,浮点数可以直接使用,看下面的代码。>>>pai=3.14>>>type(pai)float浮点数的表现形......
  • 26、多态性与鸭子类型
    26、多态性与鸭子类型  多态与多态性多态指的是一类事物有多种形态,比如动物有多种形态:猫、狗、猪classAnimal:#同一类事物:动物deftalk(self)......
  • 迭代器Iterator的使用方法(Java)
    迭代器是一种经典的设计模式。用于在不需要暴漏数据是如何保存在数据结构中的细节的情况下,遍历一个数据结构。Collection接口继承自Iterable接口。所以说,实现了Collectio......
  • mybatis-plus 对date类型取当天的数据
       数据库中的字段是时间类型,要取出当天的数据,使用mybatis-plus如何实现,思路是用时间大于当天凌晨,小于当天23:59:59的时间//调用的代码Datestart=DateUtil.strT......
  • JavaScript之DOM操作-03
    6、DOM重点核心的总结文档对象模型(DocumentObjectModel,简称DOM),是W3C组织推荐的处理可扩展标记语言(HTML或者XML)的标准编程接口。W3C已经定义了一系列的DOM接口,通......
  • 4、Python语法入门之基本数据类型
    4、Python语法入门之基本数据类型 目录一引子二数字类型2.1int整型2.1.1作用2.1.2定义2.2float浮点型2.2.1作用2.2.2定义2.3数字......
  • Java8 Stream流操作最强详解版
    Java8Stream流操作最强详解版1.Stream简介​ Java8是Java最受欢迎的一个版本,Stream是Java8提供的一个新的API,它位于java.util.stream包下。StreamAPI提供了一种新......
  • java线程安全的理解(转载)
    记录两篇关于java线程安全理解的文章https://blog.csdn.net/m0_59139260/article/details/123866585?ops_request_misc=%257B%2522request%255Fid%2522%253A%252216607914......