Java的基本数据类型和数据类型转换

首先java属于强类型语言,要求变量的使用要严格遵守规范,所有变量都必须先定义后才能使用。

Java的数据类型分为以下两种:

1 基础数据类型(primtive type) 和 2 引用数据类型(reference type)

今天只讲基础数据类型,然后基础类型里面还可以细分一下,分为:

数值类型:

  1. 整数类型
    • byte 占1个字节范围 (-128 127)
    • short 占2个字节范围(-32768 32767)
    • int 占4个字节范围(-2147483648 2147483647)(最为常用
    • long 占8个字节范围(-9223372036854775808 -9223372036854775807)
  2. 浮点类型(我们数学说叫做小数,当在java里面叫做浮点)
    • float 占4个字节范围
    • double 占8个字节范围
  3. 字符类型(其实在java里面,字符本质上也是一个数字。)
    • char 占2个字节范围

boolean类型:占1个位 只有true和false两个。


一个字节(btye)等于八个位(bit),位是计算机内部数据存储的最小单位。

public class text {
    public static void main(String[] args) {
        //byte的存储范围在-128到127之间,下面我演示一下byte两种赋值。其余的short,int,long,float,double就依次类推
        //这个赋值正确,不会报错,因为10在-128到127之间
        byte num=10;
        //这个就会报错,因为赋的值已经超出byte的储存范围。
        byte num2=128;
        
         /*
        下面是几个注意点!!!
         在使用long类型和flaot类型的时候,都需要,给变量值后面加个后缀。例如:
         */

        int numa=10;
        long numb=10L;
        float numc=10.4F;
        double numd=10.5;
        //注意--->后缀的这个英文能小写,但是还是写成大写,养成良好的编码规范!

        /*
        然后现在讲一下字符型 char占两个字节,一个英文单词和一个汉字就带表一个字节。
        并且注意的是,变量值是用单引号'',而不是双引号""。
         */
        char a='a';
        char b='涛';

        /*
        最后就是boolean型 它只有两个值,便是true,false。中文意思就代表真和假
         */
        boolean a1=true;
        boolean a2=false;
    }
}

数据类型转化

数据类型转化可以分为:

  1. 强制转换(不推荐

  2. 自然转换

    • 强制转换什么意思呢,也就是说存储大的类型,转换为存储小的类型。例如:

          public static void main(String[] args) {
             int a=130;
             byte b= (byte) a;
             System.out.println(b);
             //输出结果b:-126
          }
      

      可以通过看到,a明明是130,按照逻辑来讲,b应该也是130,但输出结果是-126,这就是内存溢出导致数据错乱的一个问题,本来byte的存储空间应该在-128 到 127 之间,但是a的值130,已经大于它的存储范围,所以产生了内存溢出的错误。这也就是我们所说的强制转换。通俗一点理解就可以为,由高到低,由大到小,转换。

    • 自然转化就是反过来,存储小的类型,转换为存储大的类型。例如:

          public static void main(String[] args) {
              int a=10;
              float b=a;
              System.out.println(b);
              // 输出结果 b:10.0
          }
      

      首先看到上面的代码,一些同学可能会感到疑惑,不是存储小的类型,转换为存储大的类型,int的范围是4个字节,float的范围也是4个字节呀,对,在java里面虽然int和float存储范围一样大,但是float还是比它大的。所以可以这样转,而且结果的是10.0,是不是由一个整数,变成一个浮点数了。这就叫做自然转化。

posted @ 2021-11-06 15:38  钟文涛  阅读(112)  评论(0)    收藏  举报