数据类型
数值型
| 类型 | 大小 | 取值范围 | 介绍 |
| byte | 1字节8位 | -128 ~ +127 | 字节型 这个范围可以存储普通人的年龄 |
| short | 2字节16位 | -32768~+3276 | 短整型 |
| int | 4字节32位 | -2147483648)~+2147483647 | 整型 存下中国人口的数量没有问题,但是存下地球所有人的数量就不够了 |
| long | 8字节64位 | -2^63 ~ + 2^63-1 | 长整型 存下地球的人数绰绰有余 |
| float | 4字节32位 | 单精度浮点数 存储小数 | |
| double | 8字节64位 | 双精度浮点数 |
数值型的数据,运算时候如果超出取值范围就会报错(out of bound)
long time=9223372036854775807L;
long类型使用l(L)作为后缀与整形进行区分
float money = 33.6f;
double length = 55.07;
任何小数都会被认为是double,单精度浮点数需要加上f后缀
日常使用建议使用double类型防止精度丢失
Math常用方法
| 方法 | 介绍 |
|---|---|
| Math.random(a) | 0 - 1 随机数 |
| Math.round(a) | 四舍五入,float时返回int值,double时返回long值 |
| Math.min(a, b) | 计算最小值 |
| Math.max(a, b) | 计算最大值 |
| Math.floor(a) | 向上取整,但不转换类型 |
| Math.ceil(a) | 向下取证,但不转换类型 |
| Math.pow(a, b) | 计算a的b次方 |
| Math.sqrt(a) | 计算平方根 |
| Math.abs(a) | 取绝对值 |
| Math.cbrt(a) | 计算立方根 |
非数值类型
字符型 char
只能存储一个,使用单引号
char sex = '男';
字符串型 String
用于存储一串字符,使用双引号。String不是基础类型,是一个类
String username = "用户名";
- String类型可以拼接,但是不能用于数学运算
- \n 表示换行
- \t 表示制表符(tab键)
布尔类型 boolean
boolean isEqual = true;
boolean isBig = 1 > 10; // false
数据类型转换
隐式类型转换
public class DemoClac {
public static void main(String[] args) {
double weight = 97.5;
int add = 2;
double sum = weight + add; // add隐式转换为double类型
System.out.println(sum);
}
}
强制类型转换
int sum = 55.3 + 22;
运行报错: 不兼容的类型: 从double转换到int可能会有损失
int sum = (int) (55.3 + 22); // 77
这样就不报错了,但是损失精度