java对数据压缩的详谈

我们用4g磁盘做例子讲解
我们磁盘的分配单元大小一般是4kb
一个数据块只能有一个数据单位
比如:一个数据块只能有一个int类型的数据
那么4g得磁盘大约就有100w+的数据块
而java虚拟机占用大约是50w块
假设如果我们用一个数组

int [] a = new int[10000000]

比如这个有1000w个 int类型的数组
int类型占4b
如果不进行数据压缩的存储方式那么对于这个数组虚拟机的50w空间是远远不够的
所以要进行数据压缩 压缩的数据都属于一个变量
为什么能压缩呢因为都是将数组a当作一个整体变量使用
在一个数据块中可以存多个int类型的数据
这样以来我们再来计算一下 一个数据块4kb = 4096b
意为着一个数据块不再只能存一个数据而是可以存1024个int类型数据
总共可存50e+的int所以这就是数据压缩,而数据压缩的底层就是用buffer流
的形式实现的
因此最终数据压缩后全变成buffer类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值