java基础3:Java数据类型

    xiaoxiao2021-03-25  103

    java基础3:Java数据类型

    Java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型,在内存总分配了不同大小的内存空间。

    Java总共有两种数据类型,主要有基本类型和引用类型,基本类型有8种,引用数据类型(数组、类、接口)有3种。 

      在计算机内部,所有信息都采用二进制表示,每个二进制由01两种状态,一个字节有8,也就是由801构成,如果short类型的6在计算机中是如何存储的,short是两个字节,那么short 6的二进制为:00000000 00000110,int类型的6在计算机中存储为32位:00000000 00000000 00000000 00000110。

    如:

    byte score//保存单科分数

    short age;//保存年龄

    int sumScore;//保存总分

    long fileSize;//保存文件长度

    foat x,y;

    double result;//保存运算结果

    char sex;//保存性别

    boolean isContinue;//表示是否继续

    String name;//表示姓名

     

    1.整数型

     

    byte/short/int/long

    Java语言整数型常量有三种表示方法

    l  十进制

    l  八进制,八进制0开头,如:013

    l  十六进制,十六进制0x开头,如:0x23

    Java语言整数型默认为int类型,如果要声明成long类型在变量值后加入L,如:

    long l = 999999999999L

     

    2.浮点型

     

    Java语言中浮点类型包括:float/double

    Java语言中浮点类型默认为double

     

    3.布尔类型(true、false)

     

    4.基本类型的转换

    (1)默认转换:byte-short-int-long-float-double。

    (2)强制转化:大转小,注意:只要不超出范围可以将整型值直接赋值给byte,short,char。

     

    【示例代码】

    public class DataTypeTest06 {

          

           public static void main(String[] args) {

                 

                  //出现错误,1000超出了byte的范围

                  //byte a = 1000;

                 

                  //正确,因为20没有超出byte范围

                  //所以赋值

                  byte a = 20;

                 

                  //变量不能重名

                  //short a =  1000;

                 

                  //正确,因为数值1000没有超出short类型的范围

                  //所以赋值正确

                  short b =  1000;

                 

                  //正确,因为默认就是int,并且没有超出int范围

                  int c = 1000;

                 

                  //正确,可以自动转换

                  long d = c;

                 

                  //错误,出现精度丢失问题,大类型-->>小类型会出现问题

                  //int e = d;

                 

                  //long强制转换成int类型

                  //因为值1000,没有超出int范围,所以转换是正确的

                  int e = (int)d;

                 

                  //因为java中的运算会会转成最大类型

                  //103默认为int,所以运算后的最大类型也是int

                  //所以是正确的

                  int f = 10/3;   

                 

                  //声明10long类型

                  long g = 10;

                 

                  //出现错误,多个数值在运算过程中,会转换成容量最大的类型

                  //以下示例最大的类型为double,而hint,所以就会出现大类型(long)到小类型(int

                  //的转换,将会出现精度丢失问题

                  //int h = g/3;

                 

                  //可以强制转换,因为运算结果没有超出int范围

                  //int h = (int)g/3;

                 

                  //可以采用long类型来接收运算结果

                  //long h = g/3;

                 

                  //出现精度损失问题,以下问题主要是优先级的问题

                  //g转换成int,然后又将int类型的g转换成byte,最后byte类型的g3运算,那么

                  //它的运算结果类型就是int,所以int赋值给byte就出现了精度损失问题

                  //byte h = (byte)(int)g/3;

                 

                  //正确

                  //byte h = (byte)(int)(g/3);                  

                 

                  //不能转换,还有因为优先级的问题

                  //byte h = (byte)g/3;     

                 

                  //可以转换,因为运算结果没有超出byte范围

                  //byte h = (byte)(g/3);

                 

                  //可以转换,因为运算结果没有超出short范围

                  short h = (short)(g/3);

                 

                  short i = 10;

                 

                  byte j = 5;

                 

                  //错误,shortbyte运算,首先会转换成int再运算

                  //所以运算结果为intint赋值给short就会出现精度丢失问题

                  //short k = i + j;

                 

                  //可以将运算结果强制转换成short

                  //short k = (short)(i + j);

                 

                  //因为运算结果为int,所以可以采用int类型接收

                  int k  = i + j;

                 

                  char l = 'a';

                  System.out.println(l);

                 

                  //输出结果为97,也就是aascii

                  System.out.println((byte)l);

                 

                  int m = l + 100;

                  //输出结构为197,取得aascii码值,让后与100进行相加运算

                  System.out.println(m);

                 

           }

    }

     

    转载请注明原文地址: https://ju.6miu.com/read-18213.html

    最新回复(0)