• java 中的常量



    活动地址:CSDN21天学习挑战赛

    常量

    常量:在程序运行期间,固定不变的量。

    常量的分类:
    1.字符串常量:凡是用双引号引起来的部分,叫做字符串常量。例如:“abc”、“Hello”、“123”。
    2.整数常量:直接写上数字,没有小数点。例如:100,200,0,-250。
    3.浮点数常量:直接写上的数字,有小数点。例如:2.5、-3.14、0.0。
    4.字符常量:凡是用单引号引起来的单个字符,就是字符常量。例如:‘A’、‘b’、‘9’、‘中’。
    5.布尔常量:只有两种取值。true、false。
    6.空常量:null。代表没有任何数据。

    注意:
    1.两个单引号中间必须有且仅有一个字符,没有不行。
    2.两个单引号中间必须有且仅有一个字符,有两个不行。
    3.空常量不能直接用来打印输出。

    例如:System.out.println(’’);这是错误的。
    例如:Syetem.out.println(‘AB’);这是错误的。
    例如:System.out.println(nulll);这是错误的。

    数据类型

    数据类型分为基本数据类型和引用数据类型。

    基本数据类型:四类八种。
        整数型    byte short int long
        浮点型    float double
        字符型    char
        布尔型    boolean

    简要提一下引用数据类型:字符串、数组、类、接口、Lambda。

    如下图所示。

    在这里插入图片描述

    取值范围与内存占用不相关,就比如说图中的long占用8个字节而单精度浮点数float只占用四个字节,但是float的取值范围却比long的取值范围大很多,这是因为float采用的是科学计数法计算省空间。

    注意事项:
    1.字符串不是基本类型,而是引用类型。
    2.浮点型可能只是一个近似值,并非精确值。
    3.数据范围与字节数不一定相关。例如:float数据范围比long更加广泛,但是float是4字节,long是8字节。
    4.浮点数当中默认类型是double。如果一定要使用float类型,需要加上一个后缀F。
    如果是整数,默认为int类型,如果一定要使用long类型,需要加上一个后缀L。大小写后缀都可以,推荐使用大写字母后缀。
    例如:System.out.println(100L);

    变量

    变量:程序运行期间,内容可以发生改变的量。

    创建一个变量并且使用的格式:数据类型 变量名称; 变量名称 = 数据值;

    一步到位的格式:数据类型 变量名称 = 数据值;//在创建一个变量的同时,立刻放入指定的数据值。

    用long 和 float时要加后缀。例如:long num = 30000000000L; float num = 2.5F;

    数据类型转换

    当数据类型不一样时,将会发生数据类型转换。

    数据类型转换分为两类:

      自动类型转换(隐式)
        1.特点:代码不需要进行特殊处理,自动完成。
        2.规则:数据范围从小到大。

      强制类型转换(显式)
        1.特点:代码需要进行特殊的格式处理,不能自动完成。
        2.格式:范围小的数据类型 范围小的变量名 = (范围小的类型)原本范围大的数据; 例如:int num = (int) 100L;

    注意事项:
        1.强制类型转换一般不推荐使用,因为有可能发生精度损失、数据溢出。如图。

    在这里插入图片描述

        2.byte/short/char这三种类型都可以发生数学运算,例如加法“+”.
        3.byte/short/char这三种类型在运算的时候,都会被首先提升为int类型,然后在计算。
        4.boolean类型不能发生数据类型转换

    数据溢出:数据范围大的数据类型转换为数据范围小的数据类型,装不下,数据溢出了。
    精度损失:就是把有一部分数据的精度给舍掉了。例如:int num = (int) 3.99;输出结果为3。

    例如:char ch = ‘A’;//这是一个字符变量,里面是大写字母A
               System.out.println(ch+1);//66,也就是大写字母A被当成65处理。
    计算机的底层会用一个数字(二进制)来代表字符A,就是65。
    一旦char类型进行了数学运算,那么字符就会按照一定的规则翻译成为一个数字。

    例如:
    byte num1 = 40;
    byte num2 = 50;
    //byte + byte => int + int => int
    byte result1 = num1 + num2;
    System.out.println(result1);
    编译器报错,因为byte+byte运算时默认会提升为int+int 应该用int去接收。
    int result1 = num1 + num2;

    byte+short也是一样。举一个正确的例子:
    short num1 = 60;
    byte num2 = 40;
    //byte + short => int + int => int
    //int强制类型转换为short:注意必须保证逻辑上真实大小本来就没有超过short范围,否则会发生数据溢出
    short result = (short) (num1 + num2);
    System.out.println(result);//100

    ASCII码表

    数字和字符的对照关系表(编码表):
    ASCII码表:American Standard Code for Information Interchange,美国信息交换标准代码。
    Unicode码表:万国码。也是数字和符号的对照关系,开头0-127部分和ASCII完全一样,但是从128开始包含有更多的字符。

    在这里插入图片描述

    记住三个:48代表0,65代表A,97代表a。其余的查表即可。

    例如:
    char zifu1 = ‘1’;
    System.out.println(zifu1 + 0);//49

    char zifu2 = ‘A’;

    char zifu3 = ‘c’;
    int num = zifu3;
    //左侧是int类型,右边是char类型,char => int ,确实是从小到大发生了自动类型转换
    System.out.println(num);//99

    char zifu4 = ‘中’;
    System.out.println(zifu4 + 0);//20013

  • 相关阅读:
    在Linux上安装RStudio工具并实现本地远程访问【内网穿透】
    一个vim函数坑你安逸
    推荐16款最好的3dMax插件
    个人博客类网站为什么更适合虚拟主机?
    Python字典制作“编码本”“密码本”,“试炼”加、解密文本操作
    哈夫曼编码详细证明步骤
    【iOS】知乎日报前三周总结
    netty系列之:不用怀疑,netty中的ByteBuf就是比JAVA中的好用
    初识Mybatis(二)动态SQL、缓存和逆向工程
    vue 跨标签页的数据共享(即跨标签页通信)
  • 原文地址:https://blog.csdn.net/qq_51916951/article/details/126314315