数据类型

(1)概念:
内存空间大小
(2)分类:
1、基本数据类型:基本数据类型的内存存储的是值,基本数据类型不能自定义,使用都是默认的,用于存储简单数据。

根据可以存储数值类型分类,分为
1)整型类型
2)浮点类型
3)布尔类型
4)字符类型

在这里插入图片描述

根据可以存储数值大小分类,分为:
1)byte 字节类型 2^8 -128~127
2)short 短整型类型 2^16 占2个字节
3)int 整型类型 2^32 占4个字节
4)long 长整型类型 2^64 占8个字节
5)float 单精度浮点型 占4个字节 float占据空间比long 大
6)double 双精度浮点型 占8个字节 double占据空间比float大
7)bollean 布尔类型 2^1 true/false
8)char 字符类型 2^16 占2个字节,0~65535

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、引用数据类型:
引用数据类型的内存存储的是地址,引用数据类型一般都是自定义,用于存储复杂数据(多个基本数据类型的数据)

为什么float的4个字节比long类型的8个字节的范围大?

因为整数与小数的底层存储有点不同。
相同点:它们都是用二进制存储的
不同点:
小数先转成二进制,然后处理,然后存储。
在处理小数的时候会存在一个偏移量的问题,这会导致float的范围为23位,而long只有19位,所以float比long大

5、字符类型
(1)使用单引号括着的一个字母/数字/任意符号/中文,该值属于字符类型。如’a’,’1’,’?’,’我’,’ ’
(2)每个一个字符都有对应的一个数字来表示,计算机内存存储的就是该数字。由数字转字符称之为解码。由字符转数字称之为编码。
(3)字符和数字之间关系是通过字符编码表来维护的。

在这里插入图片描述
ASCII字符编码表中,常用数字,小写字母,大写字母。
数字0~9连续,小写字母az连续,大写字母AZ连续。数字、小写字母和大写字母是不连续的。
ASCII字符编码表只使用1个字节存储数据,只能满足美国人使用,其他国家无法满足。
(4)中国使用的字符编码表,如GBK,GB2312。这些字符编码表称之为国标码。使用2个字节存储数据,英文占1个字节,中文占2个字节数据。
(5)所有国家可以使用字符编码表,如UNICODE。Java中使用就是UNICODE字符编码。使用2个字节存储数据(0~65535)。内存中字符编码表。
(6)所有国家可以使用字符编码表,如UTF-8。使用1~3个字节存储数据,英文占1个字节,中文占3个字节。网络/硬盘上字符编码表。
(7)UNICDE,UTF-8,GBK,GBK2313都兼容ASCII表。

public class Demo6_字符类型 {

    public static void main(String[] args) {
        char c = 'a';
        System.out.println(c);//a

        c = '我';
        System.out.println(c);

        //int i = c + 0;
        //由字符转数字的过程,称之为编码
        int i = c;
        System.out.println(i);//25105

        //由数字转字符的过程,称之为解码
        int j = 66;
        c = (char) j;
        System.out.println(c);//B

        System.out.println("打印UNICODE字符编码表");
        for (int k = 0; k <= 65535; k++) {
            System.out.println(k + "..." + (char) k);
        }
    }
}

6、字符串类型
(1)使用双引号括着的多个字符(数字,中文,字母,特殊符号),该数值就是字符串类型。如”a”,”abc”,”你我他”,” ”,””,”123”,”?%”。
(2)字符串类型不属于基本数据类型,属于引用数据类型。
(3)需要将字符串类型与其他数据类型一起拼接,需要使用”+”

public class Demo7_字符串类型 {

    public static void main(String[] args) {
        String s = "abc";
        System.out.println(s);
        s = "你我他";
        System.out.println(s);
        s = "%&*";
        System.out.println(s);

        int a = 10;
        //将一个字符串类型数据与其他类型数据进行+号运算,实现拼接操作。
        System.out.println(s + a);//abc10
    }
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值