常用数据类型、类型转换

阅读量: 1005 编辑

计算机,顾名思义就是用于计算的,而编程就是计算的思路表达,所以编程的本质是数学;

编程解决的是现实世界中巨量的计算和存储问题,计算和存储的是数据,所以数据必须有数据类型,才能准确的抽象和表达现实世界的各种数据形势;

每一门编程语言中都有数据类型的概念,而且都是相似的,掌握了Java编程的数据类型,其他编程语言分分钟掌握;

一、关于变量

变量,顾名思义,就是变化的量;

量在中国古代有器物的意思,也就是盛放东西的容器,在Java中,变量就是盛放数据的“容器”,也可以比作“盒子”,而且容器内的数据是可以变化的,所以就叫变量;

Java中变量必须指定数据类型,然后再存放数据,比如

int a = 100;

就是变量(盒子)a 中存放了 100 这个数字;a 就是变量(盒子)的名字,int 就是变量(盒子)内存储的数据类型,100 就是数据;

一句话解释就是:变量 a 中只能放 int(整数)类型,然后将100这个整数放进去,那么 a 的代表的数据值就是100了;

二、数据类型

1、Java是一门强类型语言;

也就是说,所有的变量都必须显式声明类型;比如:int a = 100; 就是说必须在这个变量 a 前面加上 int 这个数据类型;

2、Java的数据类型分为两大类:基础类型和包装类型(也叫引用类型);

比如:intIntegerint就是基本类型,Integer就是包装类型,这些后面会讲到,先了解;

3、Java的8种基本类型(不包括void),是必须要记住的:

基本类型 大小 最小值 最大值 包装类型 说明
boolean Boolean 布尔类型
char 16-bit Unicode 0 Unicode2^16 - 1 Character 字符类型
byte 8bits -128 127 Byte 字节类型
short 16bits -2^15 2^15 - 1 Short 短整数类型
int 32bits -2^31 2^31 - 1 Integer 整数类型
long 64bits -2^63 2^63 - 1 Long 长整数类型
float 32bits IEEE754 IEEE754 Float 浮点数类型
double 64bits IEEE754 IEEE754 Double 双精度类型
void Void 空类型

不同的数据类型,能够表示的数据是有大小范围的,用 bit(位)表示;

因为计算机的最底层就是 0 和 1 两个数字,也就是说所有的程序都是用 bit 来解释和存储;所以数据类型的大小用 0 和 1 这两个数字来表示,那么长度就是 2 的 n 次方了,表示为 2^n 。

三、数据类型之间的转换

简单类型除了boolean类型以外,某个数据类型可以自动转换成其他的数据类型,必须遵循如下图所示的原则:

我们只能从位数较小的向位数较大的转化,不可以反过来,否则会丢失位数,导致数据不准确;实线表示类型转换不会丢失数据,虚线表示类型转换可能会丢失数据;

比如电商网站中商品的价格如果是 double 类型的,如果向 int 类型转化,就会丢失超过int范围的数据,那么购买物品时导致金额变小,所以Java禁止转换,会编译报错;

四、编程实战

代码的详细解读,可以参考视频教程;

public class C11 {

    public static void main(String[] args) {
    
        boolean b = true; //只有两个值 true 和 false
        Boolean bb = false;

        char c = 'c';	  //字符类型,用单引号
        Character cc ='c';

        short d = 1;	  //短整数,就是表达的范围比整数小
        Short dd = 1;

        int e = 100;	  //整数
        Integer ee = 100;

        long g = 10000;   //长整数
        Long gg = 10000L; //长整数,表示范围比整数大,结尾用小l也可以

        float f = 9.9f;   //如果小数表示浮点数,那么必须后面加f或F
        Float ff = 9.9f; 

        double h0 = 199.99; //小数默认是double类型
        Double h1 = 199.99;
        Double h2 = 199d;
        
        Double h3 = new Double(199);
        Double h4 = Double.parseDouble("199");

//      void; //是一种特别的"空"类型,不做任何表示,一般用于函数返回值,表示没有任何内容返回

		String s = "hello world"; //字符串类型

    }
}

类型转换和说明

public static void main(String[] args) {

    //int类型转化
    float f = 3;    //3.0
    double d = 3;   //3.0

    //long类型转化
    double d1 = 1000L;//1000.0
    float f1 = 1000L; //1000.0

    //float转化
    double d2 = 3.14f;//3.140000104904175
    
    //包装类型的 Long、Float、Double,如果用int类型赋值,必须用类型字母L、F、D结尾
    Long lg = 3L;
    Float ft = 3F;
    Double de = 3D;
    Float ft2 = 3.14F;
	
    
    //不可以转换(笔试常考题)
    short s1 = 100000;//编译错误,int长度超过short类型范围

    short s2 = Integer.parseInt("100");//编译错误,不能向短类型转化

    short s3 = 10;//short类型
    s3 = s3 + 100;//编译错误,100是整数,相加只能往整数转化,不能向短类型转化

    s3 += 100;    //编译正确,相当于 (short) (s3 + 100)

    //其他类型转换
    float pi = 3.14;//编译错误,3.14是double类型

    int i = 1000L;  //编译错误,不能将long类型转化为int

}

五、作业练习

1、将类型转化图自己画一遍

2、float f = 5.2; 对吗?

3、Double d = 1000; 对吗?

4、Java有几种基本类型,分别是什么?

爱码岛编程公众号
试卷资料
爱码岛编程小程序
在线刷题
苏ICP备13052010号
©2023 南京匠成信息科技有限公司