目录
- Java 数据类型
- 基本数据类型
- 整数类型【byte、short、int、long】
- 浮点类型【float、double】
- 布尔类型【boolean】
- 字符类型【char】
- 引用数据类型
Java 数据类型
Java 语言支持的数据类型分为两种:基本数据类型 和 引用数据类型。其数据类型结构如下图所示:
基本数据类型
基本数据类型共八种,可分为六种数字类型(四个整数型,两个浮点型),整体又可分为四大类:
i. 整数类型(byte、short、int、long)
ii. 浮点类型(float、double)
iii. 布尔类型(boolean)
iiii. 字符类型(char)Java 的基本数据类型取值范围如下表:
类型名称 | 关键字 | 包装类 | 默认值 | 占用内存/位数 | 取值范围 |
---|---|---|---|---|---|
字节型 | byte | Byte | 0 | 一个字节/8位 | -27 ~ 27-1 ( -128~127) |
短整型 | short | Short | 0 | 两个字节/16位 | -215 ~ 215-1 (-32768~32767) |
整型 | int | Integer | 0 | 四个字节/32位 | -231 ~ 231-1 (-2147483648~2147483647) |
长整型 | long | Long | 0L | 八个字节/64位 | -263 ~ 263-1 (-9223372036854775808L~9223372036854775807L) |
单精度浮点型 | float | Float | 0.0f | 四个字节/6~7个有效位 | +/-3.4E+38F |
双精度浮点型 | double | Double | 0.0d | 八个字节/15个有效位 | +/-1.8E+308 |
字符型 | char | Character | ‘u0000’ | 两个字节/16位 Unicode 字符 | 最小值: \u0000(十进制等效值为0)、最大值是 \uffff(即为 65535) |
布尔型 | boolean | Boolean | false | 一个字节(非规范强制) | true 或 false |
整数类型【byte、short、int、long】
对于整数类型,Java 只定义了带符号的整型,因此,最高位的 bit 表示符号位(0表示正数,1表示负数)。 Java 四种整数类型变量说明如下:
①byte 类型是最小的整数类型。当用户从网络或文件中处理数据流时,或者处理可能与 Java 的其他内置类型不直接兼容的未加工的二进制数据时,该类型非常有用。
了解计算机内存的基本结构:
a. 计算机内存的最小存储单元是字节(byte),一个字节就是一个 8 位二进制数,即 8 个 bit。
b. 它的二进制表示范围从 00000000 ~ 11111111,换算成十进制是 0 ~ 255,换算成十六进制是 00 ~ ff。
c. 内存单元从0开始编号,称为内存地址。一个字节是 1byte,1024字节是 1K,1024K是 1M,1024M是 1G,1024G是 1T。一个拥有 4T 内存的计算机的字节数量如下:
4T = 4 x 1024G
= 4 x 1024 x 1024M
= 4 x 1024 x 1024 x 1024K
= 4 x 1024 x 1024 x 1024 x 1024
= 4398046511104②short 类型限制数据的存储为先高字节,后低字节,这样在某些机器中会出错,因此该类型很少被使用。
③int 类型是最常使用的一种整数类型。
④对于大型程序常会遇到很大的整数,当超出 int 类型所表示的范围时就要使用 long 类型。
- 示例如下
public static void main(String[] args) {
int i1 = 0xff0000; // 十六进制表示:16711680
int i2 = 0b1000000000; // 二进制表示:512
long l1 = 9000000000000000000L; // long型的结尾需要加L
long l2 = 900; // 没有加L,此处 900 为 int,但 int 类型可以赋值给 long
int i3 = 900L; // 错误:不能把 long 类型赋值给 int
byte a = 20; // 声明一个 byte类型的变量并赋予初始值为 20
short b = 10; // 声明一个 short类型的变量并赋予初始值为 10
int c = 30; // 声明一个 int类型的变量并赋予初始值为 30
long d = 40; // 声明一个 long 类型的变量并赋予初始值为 40
long sum = a + b + c + d;
// 打印输出的最终结果:20+10+30+40=100
System.out.println("20+10+30+40=" + sum);
}
如上注意:整数类型计算可以使用 “+” 相加,而非字符串之间的连接。
浮点类型【float、double】
注意:在声明 float 类型的变量时,需要在数值后添加 “F” 或 “f”。
若不带 f 结尾的则是 double 类型,不能赋值给 float
Java 默认的浮点型是 double,例如,3.14 和 3.1415d 都是 double 型数值。如果要说明一个 float 类型数值,就需要在其后追加字母 f 或 F,如 3.14f 和 3.1415F 都是 float 类型的常数。
- 示例如下
float price = 65.7f; // 定义 float 类型的变量并赋予初始值
float f2 = 3.14e38f; // 科学计数法表示为:3.14x10^38
float f3 = 1.0; // 错误:不带 f 结尾的是 double 类型,不能赋值给 float
double price = 12.254d; // 定义 double 类型的变量并赋予初始值,此类型数值后默认可以不写 “d”
double d2 = -1.79e308; // 科学计数法表示为:-1.79x10^308
布尔类型【boolean】
boolean:布尔型,那 boolean 到底占用几个字节
占1个字节,查看 Java 官方 doc 教程上显示:boolean 的字节数是不确定,布尔数据类型只有两个可能的值:true 和 false。将此数据类型用于跟踪真/假条件的简单标志。这种数据类型表示一位信息,但它的 “大小” 并不是精确定义的;
也有说 boolean 一般占4个字节,因为 32 位 CPU 一次读4个字节,会直接把 boolean 当作 int 处理;但是 boolean[] 数组反而会按1字节算,原因是省内存;总之,boolean 实际上并不一定是1个字节,JVM 规范并没有明确规定,其字节数其实是不确定的。
布尔类型:用于对两个数值通过逻辑运算,判断结果是“真”还是“假”。
Java 中用保留字 true 和 false 来代表逻辑运算中的“真”和“假”。因此,一个 boolean 类型的变量或表达式只能是取 true 和 false 这两个值中的一个。
- 示例如下
boolean isable; // 声明 boolean 类型的变量 isable
boolean b = false; // 声明 boolean 类型的变量 b,并赋予初值为 false
boolean b1 = true;
boolean b2 = false;
boolean isGreater = 5 > 3; // 计算结果为 true
int age = 10;
boolean isAdult = age >= 15; // 计算结果为 false
字符类型【char】
char(字符型):单个字符,两个字节,16位,即一个单一的 16 位 Unicode 字符;
由 ASCII 码表:48 ~ 57 为 0 ~ 9;
65 ~ 90 为 A ~ Z;
97~ 122 为 a ~ z;最大值:\uffff 即为 65535,
最小值:\u0000 即 十进制等效值为 0;
注意:在Java中,字符类型是以 Unicode 码表示的。
- 示例如下
char letter = 'D'; // char 字符型变量的类型用来表示单个的字符,单引号表示
char numChar = '5';
char c = 'c'; // 在 ASCII 码表中'D' 对应表示 68,
- 注:
long 和 double 都不需要添加 " "
char 单引号表字符一个 ‘ ’
string 双引号表示字符串多个 " ",String字符串是引用类型!
引用数据类型
引用数据类型是建立在基本数据类型的基础上,包括:数组、类和接口。引用数据类型是由用户自定义,用来限制其他数据的类型。
- 注意:空引用(null)只能被转换成引用类型,不能转换成基本类型,因此不要把一个 null 值赋给基本数据类型的变量。
Note:
欢迎点赞,留言,转载请在文章页面明显位置给出原文链接
知者,感谢您在茫茫人海中阅读了我的文章
没有个性 哪来的签名!
详情请关注点我
持续更新中
© 2024 06 - Guyu.com | 【版权所有 侵权必究】 |