基本数据类型及拓展

基本数据类型及拓展

强类型语言:

  • 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
    • 安全性高
    • 更严谨
    • 速度慢

弱类型语言:

  • 变量的使用不用严格符合规定

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

  • 基本类型(primitive type)

    在这里插入图片描述

  • 引用类型(reference type)

在这里插入图片描述

示例:

// 八大基本数据类型

// 整数
byte num0 = 10;
short num1 = 20;
int num2 = 30;// 最常用
long num3 = 40L;// long类型要在数字后面加L

// 浮点数:小数
float num4 = 3.14F;// float类型要在数字后面加F
double num5 = 3.1415926;// 最常用

// 字符类型
char name = 'a';
// 延展 字符串 注:String不是关键字,是类
String name1 = "字符串不属于八大基本数据类型";

// 布尔值
boolean flag = true;
boolean flog = false;

拓展:

  • 整数拓展

    进制:二进制(0b)、八进制(0)、十进制、十六进制(0x:0-9 A-F)

    代码示例:

    int i0 = 10;// 十进制
    int i1 = 010;// 八进制
    int i2 = 0x10;// 十六进制 0-9 A-F 16
    
    System.out.println(i0);
    System.out.println(i1);// 转换为十进制是8
    System.out.println(i2);// 转换为十进制是16
    

    运行结果:

    10
    8
    16
    
  • 浮点数拓展(float、double)

    • 浮点数是有限且离散的
    • 浮点数有舍入误差(大约,接近但不等于)
    • 最好完全避免使用浮点数进行比较

    代码示例:

    float f = 0.1f;
    double d = 1.0/10;
    
    System.out.println(f);
    System.out.println(d);
    System.out.println(f == d);// false
    
    float f1 = 1212121212211212f;
    float f2 = f1 + 1;
    
    System.out.println(f1 == f2);// true
    

    运行结果:

    0.1
    0.1
    false
    true
    

    注:因为浮点型有以上特性,故银行业务在表示钱的时候,并不会使用浮点型数据,而是数学工具类(BigDecimal)

  • 字符拓展

    所有字符的本质都是数字,具体可以去查Unicode编码表

    代码示例:

    char c1 = 'a';
    char c2 = '中';
    
    System.out.println(c1);
    System.out.println((int)c1);// 强制转换为int型
    System.out.println(c2);
    System.out.println((int)c2);// 强制转换为int型
    

    运行结果:

    a
    9720013
    

    Unicode区间:U0000 - UFFFF

    代码示例:

    char c3 = '\u0061';
    System.out.println(c3);// a
    

    运行结果:

    a
    
  • 字符串拓展

    • 如果两个或多个字符串是通过new的方式创建赋值的,那么这两个或多个字符串绝不相等。

    代码示例:

    String sa = new String("hello world");
    String sb = new String("hello world");
    System.out.println(sa == sb);// false
    

    运行结果:

    false
    
    • 如果两个或多个字符串不是通过new的方式创建赋值的,那么这两个或多个字符串则可能相等。

    代码示例:

    String sc = "hello world";
    String sd = "hello world";
    System.out.println(sc == sd);// true
    

    运行结果:

    true
    
  • 布尔值拓展

    在使用布尔值进行判断时,代码需要做到精简易读(less is more!)

    代码示例:

    boolean flag = true;
    // 写法一:
    if(flag == true) {
        // 新手
    }
    
    // 写法二:
    if (flag) {
        // 老手
    }
    
    // 注:写法一和写法二效果是一样的,推荐使用写法二
    

科普:什么是字节?

  • 位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数。

  • 字节(byte):是计算机中数据处理的基本单位,习惯上用大写的B表示。

  • 1B(byte,字节) = 8bit(位)

  • 字符:是之计算机中使用的字母、数字、字和符号

  • 1bit表示1位

  • 1Byte表示一个字节 1B = 8b

  • 1024B = 1K

  • 1024K = 1M

  • 1024M = 1G

  • 1024G = 1T

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值