zoukankan      html  css  js  c++  java
  • 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。
  • 相关阅读:
    LeetCode Medium:15. 3Sum
    LeetCode Medium:12. Integer to Roman
    LeetCode Medium: 11. Container With Most Water
    TypeError: unsupported operand type(s) for /: 'map' and 'int'
    【C#】课堂知识点#4
    【C#】课堂知识点#3
    【统计与建模】R语言基本操作
    【题解】表达式的值
    【题解】瑞士轮
    【题解】道路游戏
  • 原文地址:https://www.cnblogs.com/luckyliulin/p/9080001.html
Copyright © 2011-2022 走看看