• Java基本数据类型之char


    今天看到一道题,是这样子的:
    package test;
    public class Char {
          public static void main(String[] args) {
                char ch1 = 97;
                char ch2 = 'a';
                System.out.println("ch1=" + ch1);
                System.out.println("ch2=" + ch2);
          }
    }
    当时下意识作出判断,输出的结果分别应该是“ch1=97”和“ch2=a”,但答案都是a。于是补了一下这方面的知识点。
     
    知识点:
    char类型
    1.  char类型是一个单一的16位Unicode字符;
    2.  最小值是u0000(即为0);
    3.  最大值是uffff(即为65535);
    4.  char类型可以储存任何字符。
     
    char赋值
    char a='a';      //任意单个字符,加单引号。
    char a='中';     //任意单个中文字,加单引号。
    char a=111;      //整数。0~65535。十进制、八进制、十六进制均可。输出字符编码表中对应的字符
    注:只能放单个字符。
     
    char运算
    char类型是可以运算的因为char在ASCII等字符编码表中有对应的数值。
    在JAVA中,对char类型字符运行时,直接当做ASCII表对应的整数来对待。
    由char赋值可知,开篇提到的char ch1=97,赋值为整数97时,对应字符编码ASCII表里的a,因此输出为a。同理验证,如果是98,对应的就是b,99对应c。
     
    Java面试常见试题:
    char类型变量中能不能存储一个中文汉字,为什么?
    答:char类型可以存储一个中文汉字,因为Java中使用的编码是Unicode(不选择任何特定的编码,直接使用字符在字符集中的编号,这是统一的唯一方法),一个char类型占2个字节(16比特),所以放一个中文是没问题的。
     
    示例:
    char m='a';                               ——a。
    char m='a'+'b';                          ——Ã。  //char类型相加,提升为int类型,输出对应的字符。
    int m='a'+'b';                             ——195。//195没有超出int范围,直接输出195。
    char m='a'+b;                           ——报错。//因为b是一个赋值的变量。
    char m=197;                            ——Ã。 //输出字符编码表中对应的字符。
    char m='197;                           ——报错。//因为有单引号,表示是字符,只允许放单个字符。
    char m='a'+1;                          ——b。//提升为int,计算结果98对应的字符是b。
    char m='中'+'国';                     ——42282。
    char m='中'+'国'+'国'+'国';       ——报错。int转char有损失。因为结果已经超出char类型的范围。
    int m='中'+'国'+'国'+'国';          ——86820
    char m='中'+1;                        ——丮。//1是int,结果提升为int,输出对应的字符。
    char m='中'+"国";                    ——报错。String无法转换为char。
    System.out.println('中'+"国");  ——中国。//没有变量附值的过程。String与任何字符用“+”相连,转换为String。
  • 相关阅读:
    JavaScript 以POST方式打开新页面
    C# 实现守护进程
    SQL Server 之 使用RowCount遍历表数据
    SQL Server 之 存储过程调用C#编写的dll文件
    C# 多线程学习整理
    java 学习的有用链接
    git 操作命令
    关于各种Map的那些事
    JAVA 反射机制详解
    深入理解java:注解(Anotation)自定义注解
  • 原文地址:https://www.cnblogs.com/luckyliulin/p/9080001.html
Copyright © 2020-2023  润新知