day02_数据类型丶变量丶标识符丶数据类型转换

数据类型

Java的数据类型分为两大类:

  • 基本数据类型:包括 整数 浮点数 字符 布尔
  • 引用数据类型:包括 数组 接口

四类八种基本数据类型:

变量

常量是固定不变的数据,那么在程序中可以变化的量称为变量。 程序中,可以使用字母保存数字的方式进行运算,提高计算能力,可以解决更多的问题。比如x保存5,x也可以保存6,这样x保存的数据是可以改变的,也就是我们所讲解的变量。 Java中要求一个变量每次只能保存一个数据,必须要明确保存的数据类型。不同的变量类型,占用的字节数不同,取值范围就不同,使用的场景也就不同。

变量的定义

变量定义的格式包括三个要素 数据类型 、 变量名 、 数据值 。

格式一:声明变量并赋值

        //数据类型 变量名 = 数据值;
        int age = 18;
        //输出变量名中保存的值
        System.out.println(age);//18
格式二: 先声明,后赋值(使用前赋值即可)
      //数据类型 变量名;
        double money;
        // 变量名 = 初始化值;
        money = 55.5;
        System.out.println(money);//55.5

格式三:在同一行定义多个同一种数据类型的变量,中间使用逗号隔开。但不建议使用这种方式,降低程序的可读性。

        // 定义int类型的变量a和b,中间使用逗号隔开
        int a = 10, b = 20;
        System.out.println(a);//10
        System.out.println(b);//20
        // 声明int类型的变量c和d,中间使用逗号隔开
        int c, d;
        //分别给 c , d 变量赋值
        c = 30;
        d = 40;
        System.out.println(c);//30
        System.out.println(d);//40

变量的理解:

  • 变量的本质就是内存中的一块空间,空间的大小由数据类型决定
  • 要想找到变量对应的内存空间的数据,需要给变量对应的内存空间起个名字,叫做变量名称
  • 变量对应的内存空间中必须有数据才能使用,这种向变量内存空间中,存储数据的过程叫做初始化或者赋值
定义所有基本数据类型的变量,代码如下
public class Demo {
    public static void main(String[] args) {
        //定义字节型变量
        byte b = 100;
        System.out.println(b);
        //定义短整型变量
        short s = 1000;
        System.out.println(s);
        //定义整型变量
        int i = 123456;
        System.out.println(i);
        //定义长整型变量
        long l = 12345678900L;
        System.out.println(l);
        //定义单精度浮点型变量
        float f = 5.5F;
        System.out.println(f);
        //定义双精度浮点型变量
        double d = 8.5;
        System.out.println(d);
        //定义布尔型变量
        boolean bool = false;
        System.out.println(bool);
        //定义字符型变量
        char c = 'A';
        System.out.println(c);
    }
}

注意事项

  • 变量名称:在同一个大括号范围内,变量的名字不可以相同。
  • 变量赋值:定义的变量,不赋值不能使用。
  • 定义long类型的变量时,需要在整数的后面加L(大小写均可,建议大写)。因为整数默认是int类型,整 数太大可能超出int范围。
  • 定义float类型的变量时,需要在小数的后面加F(大小写均可,建议大写)。因为浮点数的默认类型是 double, double的取值范围是大于flfloat的,类型不兼容。

标识符

标识符:是指在程序中,我们自己定义内容。比如类的名字、方法的名字和变量的名字等等,都是标识符。 HelloWorld案例中,出现的标识符有类名字 HelloWorld

命名规则: 硬 性 要 求

  • 标识符可以包含 英文字母26(区分大小写) 0-9数字 $(美元符号) _(下划线)
  • 标识符不能以数字开头。
  • 标识符不能是关键字

命名规范: 软 性 建 议

  • 类名的规范:首字母大写,后面每个单词首字母大写(大驼峰式)。 例如:MethodDefine
  • 方法名规范:首字母小写,后面每个单词首字母大写(小驼峰式)。
  • 变量名规范:首字母小写,后面每个单词首字母大写(小驼峰式)。例如:maxValue

数据类型转换

Java程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。

自动类型转换

概念:取值范围小的类型 自动提升为 取值范围大的类型 例如:一个 int 类型变量和一个 byte 类型变量进行加法运算,运算结果,变量的类型将是 int 类型,这就是出现了数据类型的自动类型转换现象。

public class Demo {
    public static void main(String[] args) {
        int i = 1;
        byte b = 2;
		/*
			b是byte类型,i是int类型,运算时类型不一致,会发生自动类型转换
			byte类型(1个字节)的b会自动转换成int类型(4个字节):在byte类型的b左侧补充3个字节的0
			最终变成了两个int数据相加,结果是int类型(占用4个字节),可以直接赋值给左侧的int类型的变量y,占用4个字节
		*/
        int y = b + i;
        System.out.println(y);//3
    }
}

特点: 

  • 自动类型转换是自动完成的,不需要代码的干预
  • 范围小的类型向范围大的类型提升, byte short char 运算时直接提升为 int

强制类型转换

概念: 取值范围大的类型 强制转换成 取值范围小的类型。例如:将 1.5 直接        赋值到 int 类型变量会发生什么?产生编译失败,肯定无法赋值。double 类型内存 8 个字节, int 类型内存 4 个字节。 1.5 double 类型,取值范围大于 int 。想要赋值成功,只有通过强制类型转换,将 double 类型强制转换成 int 类型才能赋值。

特点:

  • 自动转换是Java自动执行的,而强制转换需要我们自己手动执行。
  • 转换格式数据类型 变量名 = (数据类型)被转数据值;
public class Demo {
    public static void main(String[] args) {
        //short类型变量,内存中2个字节
        short s = 1;
        /*
        出现编译失败 s和1做运算的时候,1是int类型,s会被提升为int类型
        s+1后的结果是int类型,将结果在赋值会short类型时发生错误
        short内存2个字节,int类型4个字节 必须将int强制转成short才能完成赋值
        s = s + 1;编译失败
         */
        s = (short) (s + 1);//编译成功
    }
}

注意事项:

强制类型转换有可能造成精度损失和数据溢出,最好少用

public class Demo {
    public static void main(String[] args) {
        double d = 1.5;
		/*
			左侧d是double类型(占8个字节),右侧的int类型的变量x(占4个字节)
			double数据是不能直接赋值给int变量的
			进行了强制类型转换,把double数据强制转换成int数据
			double强制类型转换成int: 直接把小数部分干掉,会损失精度
		*/

        int y = (int) d;
        System.out.println(y);//1
        //数据溢出
        int a = 1234567;
        byte b = (byte) a;
        System.out.println(b);//-121
    }
}

Guess you like

Origin blog.csdn.net/weixin_44462792/article/details/121588278