>[success] # 数字类型
1. 其中byte类型在内存空间中占1个字节,表示范围是:\-2^7 ~ 2^7-1. `-128 ~ 127`
2. 其中short类型在内存空间中占2个字节,表示范围是:\-2^15 ~ 2^15-1. `-32768 ~ 32767`
3. 其中int类型在内存空间中占4个字节,表示范围是:\-2^31 ~ 2^31-1. ` -2147483648 ~ 2147483647`
4. 其中long类型在内存空间中占8个字节,表示范围是:\-2^63 ~ 2^63-1. `-9223372036854775808 ~ 9223372036854775807`
5. float类型在内存空间占4个字节,叫做单精度浮点数,可以表示7位有效数字,范围 `-3.403E38~3.403E38`
6. double类型在内存空间占8个字节,叫做双精度浮点数,可以表示15位有效数字,范围`-1.798E308~1.798E308`
5. 若描述比long类型还大的数据则使用`java.math.BigInteger`类型
*****
* 整数类型和小数类型的取值范围大小关系 `double > float > long > int > short > byte`
* 在java中**整数**默认是`int`类型,**浮点数**默认是`double`类型
>[danger] ##### 符号对类型含义
`0x`:表示十六进制
`0b`:表示二进制
`L或者l`: 表示`long` 类型,推荐L
`F或者f`: 表示`float` 类型
>[info] ## 整数类型 -- `byte,short,int,long` 选用
* 如果要定义 一个整数类型的变量,不知道选择哪种数据类型了,默认使用int。
* 如果要定义 一个小数类型的变量,不知道选择哪种数据类型了,默认使用double。
* 如果要定义一个long类型的变量,那么在数据值的后面需要加上L后缀。(大小写都可以,建议大写。)
* 如果要定义一个float类型的变量,那么在数据值的后面需要加上F后缀。(大小写都可以)
>[danger] ##### 案例
~~~java
/*
数字类型
*/
public class VarTest{
public static void main(String[] args){
byte b1 = 25; // 声明一个byte类型
// byte b2 = 250; // 报错因为byte 一个字节范围在-128 ~ 127
short s1 = 250; // 声明一个short 类型
// short s2 = 250250; // 报错因为short 两个字节范围在-32768 ~ 32767
int i1 = 250250; // 声明一个int 类型
// int i2 = 2502505006; // 报错因为int 四个字节范围在-2147483648 ~ 2147483647
// int i3 = 2502505006L; // 报错不能将long 类型赋值给int 类型
long g1 = 2502505006L; // 声明一个long 类型
int i4 = 0xff0000; // 十六进制表示的16711680
int i5 = 0b1000000000; // 二进制表示的512
System.out.println("b1:"+b1+","+"s1:"+s1+","+"i1:"+i1+","+"g1:"+g1);
}
}
~~~
>[danger] ##### 类型不同不能赋值
~~~java
/*
数字类型
*/
public class VarTest{
public static void main(String[] args){
// 请问下面的代码是否有错误?若有请指出并说明原因
//int i2 = 25;
//byte b2 = i2; // 错误: 不兼容的类型: 从int转换到byte可能会有损失,此时i2如果是动态赋值并不一定会兼容byte 范围
//System.out.println("b2 = " + b2);
}
}
~~~
>[info] ## 浮点数类型 --`float,double`
* Java语言中用于描述小数数据的类型:`float` 和 `double`,推荐`double`类型
>[danger] ##### 案例
* Java程序中直接写出的小数数据叫做直接量,默认为double类型,若希望表达float类型的直接量,则需要在直接量的后面加上f或者F
~~~ java
public class VarTest{
public static void main(String[] args){
float f1 = 0.3333f;
double d1 = 0.3333;
}
}
~~~
>[danger] ##### 不要用小数去加减
`System.out.println(0.1 + 0.2); // 0.30000000000000004` 运算时可能会有误差,若希望实现精确运算则借助`java.math.BigDecimal`类型
- windows -- 环境变量
- Vscode -- 编写java
- 初始java
- java -- 关键字
- 编写第一个java程序
- java -- 注释
- 计算机存储 -- 进制
- java -- 类型
- java -- 变量
- 数字类型
- 布尔类型
- 字符类型
- 类型转换
- 双等比较是什么
- java -- 运算符
- 算数运算符
- 字符串拼接
- 关系/比较运算符
- 自增减运算符
- 逻辑运算符
- 三目运算
- 赋值运算符
- 移位运算符
- 位运算符
- 运算符优先级
- java -- 流程控制语句
- if /else if /if -- 判断
- switch case分支结构
- for -- 循环
- 用双重for循环
- while -- 循环
- do while -- 循环
- 案例练习
- java -- 数组
- 数组的存储
- 数组的增删改查
- 数组的特点
- 数组案例
- 二维数组
- 数组的工具方法
- java -- 方法
- java -- 方法的重载
- java -- 方法的调用流程
- java -- 类方法传参注意事项
- java -- 方法练习案例
- 对比 return break continue
- for each循环
- java -- 基础练习
- java -- 面向对象
- java -- 创建类和对象
- java -- 访问控制符
- java -- 类成员方法
- java -- 构造方法
- java -- this
- java -- 封装
- java -- 对象内存图
- java -- 创建对象案例
- java -- static
- java -- 继承
- super -- 关键字
- java -- 构造块和静态代码块
- java -- 重写
- java -- final
- java -- 多态
- java -- 抽象类
- java -- 接口
- 引用类型数据转换
- 综合案例
- java -- 内部类
- java -- 回调模式
- java -- 枚举类型
- java -- switch 使用枚举
- java -- 枚举方法使用
- java -- 枚举类实现接口
- java -- javaBean
- java -- package 包
- java -- import
- java -- 递归练习
- java -- 设计模式
- 单例模式
- java -- 注解
- java -- 元注解
- Java -- 核心类库
- java -- 处理字符串
- Java -- String
- String -- 常用方法
- String -- 正则
- Java -- StringBuilder 和 StringBuffer
- 知识点
- Java -- StringJoiner 字符串拼接
- 练习题
- 字符串的总结
- Java -- 包装类
- Integer
- Double
- Boolean
- Character
- java -- 集合类
- java -- util.Collection
- Iterator接口
- java -- util.List
- java -- ArrayList
- java -- util.Queue
- java -- util.Set
- java -- util.Map
- java -- util.Collections
- Java -- Math
- Java -- java.lang
- Java -- Object
- Java -- 获取当前时间戳
- Java -- 异常
- Java -- java.util
- java -- Date
- java -- Calender
- Java -- java.text
- Java -- SimpleDateFormat
- Java -- java.time
- Java -- java.io
- java -- io.File
- java -- 泛型
- IDEA -- 用法