Java的数据类型

​ 强类型语言:变量的使用要严格符合规定,变量必须先定义才能使用

​ 比如: ‘12’ + 3 = "123" (123)

​ Java中 “123” != 123

​ js 中 “123” == 123


Java的数据类型分为两大类

  • 基本类型

  • 引用类型

 //八大基本数据类型

    //整数
    int num1 = 10;
    byte num2 = 127;
    short num3 = 32767;
    long num4 = 4294967295L;

    //小数
    float num5 = 3.14159265f;
    double num6 = 3.14159265;

    //字符
    char ch1 = 'A';
    //字符串,String不是关键字,String是一个类
    String ch2 = "ABC";

    //布尔值
    boolean ch3 = true;
    boolean ch4 = false;

    //每个类型都有对应的类,类中包含了类型的信息,如:int → Integer

//数据类型扩展
	int i = 10;
	int i2 = 010;	//八进制0	这个数等于8,每个数位范围0~8
	int i3 = 0x10;	//十六进制0x	这个数等于16,每个数位范围0~9,A~F

浮点数扩展:

​ 结果:false

float能表示的字长有限,但存在无限字长的数,切浮点数的值是离散的(孤立的),此时会进行舍入运算,存在误差

最好完全避免使用浮点数进行比较

银行进行比较时就应避免使用浮点数进行比较,使用BigDecimal类(一个数学工具类)

字符扩展

所有的字符本质都是数字,可以强制转换

Unicode表

范围 0 - 65536 (U0000 UFFFF)

	char c = '\u0061'; \\输出c为‘a',"\"代表转义

字符串(类)扩展

布尔值扩展

    boolean flag = true;
    if (flag) {}
    if (flag == true) {}//两者等价

什么是字节

位:计算机内部数据存储的最小单位 (10001001是八位二进制数)

字节:计算机数据处理的基本单位,习惯用大写B表示

一字节(1B) = 8位(8bit)

字符:计算机使用的字母、数字、字和符号

1bit=1位

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

1024B = 1KB

1024KB = 1M

1024M = 1G


类型转换

不同类型的数据先转化为同一数据类型,再进行运算

  1. 不能对boolean类型转换
  2. 不能把对象类型转换到不相干的类型
  3. 高容量到低容量,强制转换
  4. 转化可能会内存溢出或丢失精度

强制转换

高到低

int i = (int)'c';

自动转换

低到高

整数类型转换,有long则结果是long,否则结果是int

    long a = 111111111;
    int b = 1243;
    short c = 10;
    byte d = 8;

    System.out.println(a + b + c + d); //long + int + short + byte = long
    System.out.println(b + c + d);     //int + short + byte = int
    System.out.println(c + d);         //short + byte = int
    //有double则是double
小技巧

数字之间可以用下划线分割

	int money = 10_000_1000; //100001000,方便区分