强类型语言和弱类型语言
强类型语言
要求变量的使用要严格符合规定,一定要先定义变量才能使用变量
强类型语言的优点是安全性好,稳定,但是相应的运行速度会受到影响
如:Java、C等
弱类型语言
要求没有那么严格,只要不出大事就可以运行
优点是速度快,简单灵活,但是没有那么严谨,容易出错,错了还很有可能不知道在哪
如:Javascript
Java的数据类型分为两大类
基本类型
数值类型
八大基本数据类型
整数类型
补码表示
- byte 占1个字节 -128-127
- short 占2个字节 -32768~32767
- int 占4个字节 -2147486348~2147486347
- long 占8个字节 范围不想写了 数值后面加L
//long类型数字后面加L
long num = 100L;
浮点类型
- float 占4个字节 数值后面加f
- double 占8个字节 后面不用加
浮点类型表示的字长是有限的、离散的,存在舍入误差,其值接近但不等于指定的值,所以最好不要用浮点数进行比较
字符类型
char 占2个字节
布尔类型
boolean 占1个位,只有true和false两个值
数据类型转换
数据容量由低到高:
byte->char/short->int->long->float->double
强制转换
将数据容量高的数据转换为较低的数据,需要强制转换,并且有可能截断数据造成精度损失或造成内存溢出。
int a = 100;
short b = (short)a; //强制转换
int b = 128;
System.out.println((byte)b);
//输出结果-128,因为内存溢出了
注意点:
- 不能转换布尔值
- 不能把对象类型转为不相干的类型
自动转换
将数据容量低的数据转换为较高的数据,可以直接转换,不用做任何操作。