Java 之 数据类型
2022/4/4 9:19:21
本文主要是介绍Java 之 数据类型,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Java 之 数据类型
在了解数据结构之前需要先了解一下容量单位是怎么回事
bit
是计算机最小的容量单位往上还有 byte
K
M
G
等等,他们之间的单位转换分别是:
1byte
= 8bit
1K
= 1024byte
1M
= 1024K
1G
= 1024M
先有了这个概念,才能明白 Java
的设计者为什么要设计这么多种数据类型
Java数据类型分为两大类, 基本类型和引用类型
基本数据类型又分为三类 分别为
整数类型 字符类型 布尔类型
在Java中每一种数据都定义了明确的数据类型,在内存中分配了不同大小的空间(bytes)
整数类型
- Java各整数类型有固定的范围和字段程度,不受具体操作系统的影响,以保证Java程序的可移植性。
- ⭐Java的整数常量默认为
int
类型,声明long
型常量必须后加l
或L
。 - Java程序中变量通常声明为
int
类型,除非不足以表示大数,才使用long
。 bit
计算机中的最小储存单位。byte
计算机中基本储存单元,1byte
=8bit
-
byte 字节类型
- byte 类型占用字节为 1 bytes 即 1 字节
- 存放范围 -128 ~ 127
-
short 短整型
- short 类型字节占用为 2 bytes 即 2 字节
- 存放范围 -2^15 ~ 2^15 - 1
-
int 整型
- int 类型字节占用为 4 bytes 即 4 字节
- 存放范围 -2^31 ~ 2^31 - 1
-
long 长整型
- long 类型字节占用为 8 bytes 即 8 字节
- 存放范围 -2^63 ~ 2^63 - 1
-
解释占用空间:
-
假设我现在分别使用
byte
类型 和short
类型用来存储整数5
-
public class Dateail { public static void main (String[] args) { // 声明变量类型 byte b_num; short s_num; // 给变量赋值 b_num = 5; s_num = 5; } }
-
在我们看来这是一样的,但是计算机存储这两个数的方式却不一样。
-
计算机会先把 整数
5
转换为二进制00000101
存储到对于的储存空间 如图: -
它尽管
5
这个数字不需要 2个字节的空间,但是 Java 依旧会按照你指定的类型开辟出相对于的空间存储5
这是为了防止以后 需要储存的值小于或大于这个类型的存储范围。
-
-
注意事项:
- 占用空间小的类型可以转换成占用空间大的类型,反之不行。
Java
整型常量默认是int
类型 声明long
类型最好在值后面加上l
或L
。
浮点类型
-
与整数类型类似,Java浮点类型也有固定的范围和字段长度,不受具体操作系统影响。
-
Java的浮点类型常量默认为double型,声明float型常量,须后加
f
或F
-
浮点类型常量有两种表示形式
十进制数形式:如 5.12 512.0f .512 (必须带有小数点)
科学计数法形式:如 5.12e2 [5.12 * 10^2] 5.12E-2 [5.12 / 10^2]
-
⭐通常情况下,应该使用double型,因为它比float型更精确。
-
⭐浮点类型存在陷阱,下面注意事项讲解
浮点数在计算机中的存放方式: 浮点数 = 符号位 + 指数位 + 尾数位
**注意: **
浮点数陷阱:
⭐当我们使用运算结果是小数的数进行相等判断时,要小心
double number1 = 2.7; double number2 = 8.1 / 3; // 得出的结果是 // number1 2.7 // number2 2.6999999999999997
解决方法:
要对运算结果是小数的结果与其他数值进行比对,一个使用这两个数值相减的绝对值取某一精度进行比对。例如:
if (Math.abs(number1 - number2) < 0.000001) { System.out.println("误差值小于0.000001"); }
这样只要误差值小于我们设置的值该条语句就会执行。
浮点数的尾数部分可能丢失,造成精度损失(小数都是近似值)
- float 单精度
- float 类型字节占用为 4 bytes
- 存放范围 -3.403E38 ~ 3.403E38
- double 双精度
- double 类型字节占用为 8 bytes
- 存放范围 -1.798E308 ~ 1.798E308
字符类型
char
类型占用 2个字节 可存放汉字- ⭐字符常量是用单引号
''
括起来的单个字符。例如char c1 = 'a'
char c2 = '1'
char c3 = '發'
- Java中还允许使用转义字符
\
来将其后的字符转变为特殊字符型常量。例如char c1 = '\t'
- 在Java中,char本质是一个整数,默认输出的是
unicode
码对应的字符。 - 可以直接给
char
赋一个整数,然后输出时,它会按照对应的Unicode
字符输出。 char
类型是可以进行运算的,相当于一个整数,因为它都有对应的Unicode
码。
重点:
char
在 Java 中的保存与加载顺序:(以字母 a
举例)
保存: 'a'
===> Unicode 码值 97
===> 二进制 1100001
===> 存储
加载: 读取
===> 二进制 1100001
===> Unicode 码值 97
===> 'a'
布尔类型
boolean
只有两种状态true
false
boolean
类型占用 1 个字节boolean
类型适用于逻辑运算, 一般用于程序流程控制
注意:
Java 不可用除了false
和true
之外的任何数字或字符表示 真
或 假
。
这篇关于Java 之 数据类型的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?