2.2-数据类型

常量

定义

  • 在程序执⾏过程中其值不可以发⽣改变
  • 常量就是指我们⽣活中⽤的数值,字⺟等
  • 常量⽆法被改变,⼀旦改变,其意义也随之被改变

分类

  • 字⾯值常量
  • ⾃定义常量(⾯向对象部分再学习)

字⾯值常量的分类

  • 字符常量 : ⽤单引号括起来的内容 ‘a’
  • 字符串常量 : ⽤双引号括起来的内容 “abc” “ufc”
  • 整数常量 : 所有的整数 1 0 3
  • ⼩数常量 : 所有的⼩数 1.2
  • 布尔常量 : ⽐较特殊, 只有true 和 false
  • 空常量 : null(数组部分会讲到)
System.out.println("字符类型常量:" + 'a');
System.out.println("字符串类型常量:" + "abc");
System.out.println("整数型常量:" + 1);
System.out.println("浮点类型常量:" + 12.32);
System.out.println("布尔类型常量:" + true + "\t" + false);

变量

定义

  • 在程序执⾏的过程中,在某个范围内可以发⽣改变
  • 也就是说,其值是可以被改变的,在不同时期,同⼀个变量可以代表不同的值
  • 有了变量之后,我们使⽤起来就⾮常灵活
  • 计算机内存中的⼀块存储空间,是存储数据的基本单元

流程

  • 先声明变量,后给变量赋值

    ​ 声明⼀个变量

    ​ 数据类型 变量名;

    ​ 给声明的变量赋值

    ​ 变量名 = 值

  • 声明变量的进⾏赋值的操作

    数据类型 变量名 = 值

  • 同时声明多个同类型的变量与初始化 – 可以拆开
    数据类型 变量名1, 变量名2,变量名3,变量名4 = 值

  • 第⼀次的赋值操作被称为初始化

    public static void main(String[] args) {
        int n;  //声明int类型的变量(只能装整数),未赋值
        n = 10;   //给变量n赋值
        int m = 20;   //声明int类型的变量,赋值
        int x = 1, y = 2, z = 3;  //声明多个int类型的变量
        int a, b, c = 10;
    }

数据类型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FMlALZtu-1645533840481)(C:\Users\night_du\AppData\Roaming\Typora\typora-user-images\image-20210831142857741.png)]

字节、字符、字符集与编码方式

  • 字节组成字符,字符是我们肉看看到的数据
  • 字符集就是字符的集合
  • 编码方式就是字符拼成字符集的规则

常见编码方式

  • ASCII码:⼀个英⽂字⺟(不分⼤⼩写)占⼀个字节的空间,⼀个中⽂汉字占两个字节的空间。⼀个⼆进制数
    字序列,在计算机中作为⼀个数字单元,⼀般为8位⼆进制数,换算为⼗进制。最⼩值0,最⼤值255。如⼀
    个ASCII码就是⼀个字节。

  • UTF-8编码:⼀个英⽂字符等于⼀个字节,⼀个中⽂(含繁体)等于三个字节。

  • Unicode编码:⼀个英⽂等于两个字节,⼀个中⽂(含繁体)等于两个字节。
    符号:英⽂标点占⼀个字节,中⽂标点占两个字节。举例:英⽂句号“.”占1个字节的⼤⼩,中⽂句号“。”占2
    个字节的⼤⼩。

  • GBK编码⽅式是中⽂占两个字节,英⽂占1个字节。

    不同数量级间的信息单位换算关系
    1B(byte,字节)= 8 bit;
    1KB(Kibibyte,千字节)=1024B= 2^10 B;
    1MB(Mebibyte,兆字节,百万字节,简称“兆”)=1024KB= 2^20 B;
    1GB(Gigabyte,吉字节,⼗亿字节,⼜称“千兆”)=1024MB= 2^30 B;

基本数据类型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TWcwUx83-1645533840482)(C:\Users\night_du\AppData\Roaming\Typora\typora-user-images\image-20210831144316675.png)]

整数类型:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J6914Uri-1645533840483)(C:\Users\night_du\AppData\Roaming\Typora\typora-user-images\image-20210831144417151.png)]

创建基本数据类型变量:

        byte b = 10;
        short s = 20;
        int i = 30;
        long l = 1000000000000L;
        double d = 12.22;
        float f = 5.1f;
        boolean b1=true;

精度缺失

    public static void main(String[] args) {
        double a=1.0;
        double b=0.9;
        System.out.println(a-b);
        double c=(1.4-0.5)/0.9;
        System.out.println(c);
    }

Java中整数型默认的是int ,浮点型默认的是double , double的精度⽐float要⾼,所以如果我们将double转成float可
能会造成丢失精度的问题.所以我们在给float类型的变量赋值时,要⽤f标明数值的类型

使用BigDecimal处理精度缺失问题:

   BigDecimal b1=new BigDecimal("1.0");
    BigDecimal b2=new BigDecimal("0.9");
    System.out.println(b1.subtract(b2));

字符类型

  • char 占两个字节 0~65535(没有负数)

  • ASCII:美国信息交换标准码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0exWUHYS-1645533840484)(C:\Users\night_du\AppData\Roaming\Typora\typora-user-images\image-20210831163537936.png)]

  • Unicode:计算机科学领域的⼀项业界标准,包括字符集。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EEaK46pQ-1645533840484)(C:\Users\night_du\AppData\Roaming\Typora\typora-user-images\image-20210831163603439.png)]

public class CharDemo {
    public static void main(String[] args) {
        //Acsll码
        char a = 97;
        System.out.println(a);
        //Unicode
        char b='\u4f01';
        System.out.println(b);
    }
}

布尔类型

类型转换

自动类型转换

把一个表示数据范围小的数值或变量赋值给另一个表示数据范围大的变量

强制类型转换

把一个表示数据范围大的数值或变量赋值给另一个表示数据范围小的变量
格式:目标数据类型    变量名=(目标数据类型)值或者变量;
范例:int k =(int)88.88;
public class TypeTranslateDemo {
    public static void main(String[] args) {
        //自动转换
        byte b = 10;
        int i = b;
        System.out.println(i);

        //强转
        int x = 5;
        byte y = (byte) x;
        System.out.println(y);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值