美文网首页
Char类型的运算

Char类型的运算

作者: 博为峰51Code教研组 | 来源:发表于2017-06-19 15:14 被阅读0次

[面试原题]

假设y是字符类型,初始化值为‘b’,那么以下语句输出的结果是什么?

A.System.out.println(++y);

B.System.out.println(y+1);

[正确答案]

A.‘c’

B.99

[面试技术点]

字符在java中的运算。

[解读A]

char在java中称为“字符型”,占2个字节。字符常量是用单引号括起的一个字符,且字符常量在内存中存储的是该字符在Unicode字符集中的排序位置,即整数。

比如:

char y='b';

内存y中存储的是字符’b’在Unicode字符集中的排序位置98。【可以通过语句System.out.println((int)y);来获取Unicode的排序位置。】因此上面的语句也可以写成:

char y=98;

System.out.println(++y);语句,先执行++y,结果为99,然后输出对应位置的字符’c’。

[解读B]

博为峰小博老师在这里要给大家说一个概念,java中的“向上兼容”,即:不同数据类型的数据参与运算,数据类型要强制转换,转换的方向是:char->short->int->long->float->double。

在System.out.println(y+1);这个语句中,y是char类型,1是int类型,所以把y强转成int,然后运算结果是99,输出也是int类型99。

[扩展]

char是Java中的字符类型,与别的语言不同的是,char在Java中是16位的,因为Java用的是Unicode。不过8位的ASCII码包含在Unicode中,是从0~127的。

Java中使用Unicode的原因是,Java的Applet允许全世界范围内运行,那它就需要一种可以表述人类所有语言的字符编码Unicode。但是English,Spanish,German, French根本不需要这么表示,所以它们其实采用ASCII码会更高效。这中间就存在一个权衡问题。

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

char c='a'; //字符,可以是汉字,因为是Unicode编码,如char c=’我’,内存对应的unicode值为:25105。

char c=十进制数,八进制数,十六进制数等等; //可以用整数赋值

char c='\u数字'; //用字符的编码值来初始化,如:char='\0',表示结束符,它的ascll码是0,这句话的意思和char c=0是一个意思。

Unicode编码表:

相关文章

  • Char类型的运算

    [面试原题] 假设y是字符类型,初始化值为‘b’,那么以下语句输出的结果是什么? A.System.out.pri...

  • Java基础进阶(二)

    1.数据类型转换 在混合运算中 byte、short、char 之间不会相互转换,会自动转为int类型去运算。其他...

  • java对byte,short,char,int,long运算时

    参考:1 java对byte,short,char,int,long运算时自动类型转化

  • android面试准备

    Android知识体系 语言 java基础 数据类型基础数据类型基础数据类型相关运算byte/8,char/16,...

  • JAVA基础-day01

    A java语言环境 变量 8中基本数据类型 类型之间的转换 byte、short、char三种类型参与运算

  • Java中那些容易混淆的知识点

    在Java中,byte、short、char类型的值相互之间进行运算会在内部首先转换为int类型然后再进行运算,所...

  • 北大C++程序设计在线课笔记,位运算

    1.3 位运算位运算:用于对整数类型(int,char, long 等)变量中的某一位(bit),或者若干位进行操...

  • 再拾Java基础(一)

    一、byte,short,char数据类型的隐式转换成int的注意点 在运算符(包括算术运算符、关系运算符、赋值运...

  • 位运算符

    位运算符就是用来操作二进制的位的,java提供了几种操作位的运算。位运算只能用于整型类型,char或者double...

  • 技术问 - 不同数据类型的转换有哪些规则

    类型自动转换: 在运算时,低精度默认向高精度转换(byte,short,char--int--long--floa...

网友评论

      本文标题:Char类型的运算

      本文链接:https://www.haomeiwen.com/subject/xyggqxtx.html