复习的时候看到这个
JAVA基本数据类型:(1个字节是8个bit) 整数型:byte(1字节)、short(2字节)、int(4字节)、long(8字节) 浮点型:float(4字节)、double(8字节) 布尔型:boolean(1字节) 字符型:char(2字节)
决定进一步了解到底是怎么存的。
1、首先java是将基本数据类型读到内存,解析成指令并执行,在内存里怎么存的有时候我再写。
2、机械硬盘存储
简单说,太详细的可以自行百度。
扇区是硬盘的最小存储单元。早期扇区大小为512字节,现在扇区大小为一般是4096字节(4kb)。
为什么是4kb这个大小。这里的扇区是硬盘上的扇区,也是物理扇区。正常情况下不能直接在硬盘上写数据,还要通过操作系统来间接操作硬盘。
所以还有操作系统的最小的逻辑存储单位,Linux是块(Block),Windows是簇(Cluster)。这个大小常见的也是4kb,跟文件系统有关,也可以在格式化时手动修改成2k、8k等等。当然默认是4kb,也和硬盘扇区大小一致了。
新建一个文档,写入一个s
可以看到,实际大小是1字节=8bit,占用硬盘空间是4kb
小写s,在ASCII码下是十六进制是73,二进制是 0111 0011,也就是最终写入硬盘的值是 0111 0011。
相对的,会在硬盘的某个扇区,给其中一段磁性材料改变极性标记为0或1,完成了小写s的存储。
3、ssd存储
和机械硬盘类似,最小的逻辑存储单位为page,大小也有4KB,或其他。
ssd的闪存,通过一个晶体管的单元状态来表示0或1,即1bit。当写入小写s时,会改变8个晶体管的单元状态来存储0111 0011。
ssd没有磁片磁头,也不用高速旋转,通过映射表来寻址,有点类似数据库索引。
详情可以自己查查资料