(JavaSE)数据类型及变量

一、变量与常量


1. 字面常量


字面量就是数据,数据就是字面量,而常量是在程序运行时,固定不变的量称为常量。例:

public class Test1 {
    public static void main(String[] args) {
        System.out.println("HelloWorld");   //字符串常量
        System.out.println('A');    //字符常量
        System.out.println(5.20);   //浮点型常量
        System.out.println(1314);   //整型常量
        System.out.println(true);   //布尔型常量
        System.out.println(false);	//布尔型常量

    }
}

以上的 “HelloWorld”、‘A’、5.20、1314、true/false均为常量,也称字面常量。


2. 变量


变量相当于存数据的盒子,盒子的大小由数据类型决定,并且其数据是可变的,所以叫做变量。
       变量三要素::数据类型、变量名、值。如: int i = 10;
       即 数据类型 变量名 = 初始值
       在 java 中,变量需要先赋值才能访问,没有进行赋值就访问会报错。

在这里插入图片描述这里我们可以看到没有赋值访问报错了。


3. 成员变量与局部变量


成员变量:在方法体外以及类体内声明的变量叫做成员变量。
局部变量:在方法体中声明的变量为局部变量。(方法执行结束之后内存释放)

public class Test1 {
    int a = 100;//成员变量
    public static void main(String[] args){
        int b = 100;//局部变量
    }
    int c = 50;//成员变量
}



二、数据类型


1. 基本数据类型和引用数据类型


在这里插入图片描述

2. 各数据类型的大小(字节)及范围


在这里插入图片描述

注意:

  1. Java 中的字符型和C语言中的字符型的大小不同,在 Java 中字符型大小为 2 个字节,C语言中字符型为 1 个字节,在Java中字符型可以为一个中文,一个中文为两个字节
  2. boolean 类型只有 true 或 false 不能写 1 或 0.
  3. 定义 long 或 float 类型时需在初始值后加 L 或 F ,大写小写都行,但是L建议使用大写,因为小写 l 和 1 在某些编译器上很像。



各数据类型大小范围为(只讨论byte、short、int、char):

  1. (1个字节) byte: [-128 ~ 127] ------>-2^7 ~ 2^7 - 1
  2. (2个字节) short: [-32768 ~ 32767] ------->-2^15 ~ 2^15 - 1
  3. (4个字节) int: [2147483648 ~ 2147483647] ------->-2^31 ~ 2^31 - 1
  4. (2个字节) char: [0 ~ 65535]
  5. short 和char 实际上容量相同,不过 char 可以表示更大的数字。
    因为 char 表示的是文字,文字没有正负之分,所以 char 可以表示
    更大的数字。



三、类型转换


1. 自动类型转换

1. 小容量可以自动赋值给大容量,这叫做自动类型转换,如果大容量的类型转化为小的类型就会报错。
在这里插入图片描述

2. 在任何情况下,整数型的 "字面量/数据 "默认当作 int 类型处理,但是 byte、short、char 类型的字面量没有超过其范围时,可以直接赋值给byte、short、char 类型的变量。
在这里插入图片描述这里我们可以看到他们都可以直接赋值,但如果超过他们的范围就会报错
在这里插入图片描述也可以看报错的提醒,也证明了整数型赋值时当做 int 类型处理。


3. 任何一个浮点型默认被当作 double 类型处理。
在这里插入图片描述

2. 强制类型转换


有大容量的类型经过强转转换为小容量的类型,称强制类型转换。如下:
在这里插入图片描述
这里我们可以看到其输出为 100,并没有报错。

注意:
1. 在进行强制类型转换时可能会损失精度。
在这里插入图片描述原因如下:
在这里插入图片描述
2. 当 byte、short、char 进行混合运算时,先各自转化为 int , 再进行运算。
在这里插入图片描述
通过这个错误我们可以看到,a + b 后的最终结果变为了 int 类型,需要进行强转类型转换。
在这里插入图片描述

3. 多种数据类型进行混合运算时,各自转换成容量最大的那个类型进行计算。

在这里插入图片描述从代码中可以看到再进行混合运算时 long 类型容量最大,所以混合运算的结果为 long 类型。需要将其强转转换。
在这里插入图片描述

小练习:判断正误,如果有错该如何改。

public class Test1 {
    public static void main(String[] args) {
		int a = 10.0 / 2;  
    }
}

在这里插入图片描述两种改法:
在这里插入图片描述在这里插入图片描述

4. java中规定,int 类型和 int 类型最终结果为 int 型。

在这里插入图片描述
可以看到在运算时并没有小数产生,并且把小数给舍去了。

好了,本次的内容就到这里了,因博主水平有限,难免会发生错误,见到的话可以在评论区留言或私信博主,多谢各位。^ _ ^

  • 45
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 34
    评论
评论 34
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

没完没了的麦当

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值