各种数据转为二进制

本文探讨了为何在Hadoop处理文件时需要进行数据的序列化和反序列化,解释了序列化是将对象转换为二进制以便存储或传输的过程。文章指出,尽管计算机底层操作的是二进制,但数据序列化对于保存和恢复程序执行中的对象至关重要。Java中通过实现Serializable接口来实现对象的序列化,而在Hadoop中,自定义对象需要实现WritableComparable接口。
摘要由CSDN通过智能技术生成

起源于不理解为什么Hadoop处理文件时要将数据进行序列化和反序列化


序列化和反序列化就是对象和二进制互转,既然在执行程序时,计算机底层都是在操作二进制,为什么还需要多此一举来转二进制呢?


我们写的程序执行时,是会经过编译器编译为汇编,再转为二进制来执行程序,笼统的说这个过程是编译,将程序转为了二进制,如果反编译的话,那么只是恢复为程序代码,而我们在执行程序的过程中产生的各种数据,如int的整数,String的字符串和自定义的对象,都是一个个数据,我们需要的不是int a = 5这个代码,而需要的是5这个数据,将这个数据存下来。在Java中,这些都被称为对象,将这些对象在程序执行中存储下来就是序列化。序列化的数据可以存在磁盘中,也可以用于传输。


序列化针对于对象,也就是程序中产生的需要的数据,而编译针对的是编写的代码本身,与程序中产生的数据无关。


计算机中任何数据都以二进制形式存储,但是展现时确实各种各样的数据,是因为不同数据存到硬盘中的二进制协议不同。

数字-->ASCII/GBK/UTF-8 -->二进制

文字--GBK/UTF-8 ->二进制

图片--  像素被分成多个位来表示不同颜色   每个位只有红绿蓝或黑,一号位1代表红 0代表黑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值