面向对象程序设计中的数据封装指的是
1个回答
2023-02-22 · 百度认证:IT168官方账号,优质数码领域创作者
关注
展开全部
对象内部数据结构的不可访问性 输入数据必须用保密密码输入,数据加密,这不是面向对象编程的特点;不可能在对象的内部数据结构上建立防火墙,所以它们不是面向对象编程中的数据隐藏。面向对象编程系统中的封装单元是对象,对象之间只能通过接口交换信息,对象中的数据不能从外部随意访问,导致对象内部的数据结构不可访问,数据隐藏在对象中。这就是面向对象编程中的数据隐藏所指的。Redis是一个键-值对数据库,每个键是一个字符串对象,值可以是字符串对象、列表对象、哈希对象、集合对象、有序集合对象五种中的一种。Redis使用sds(简单动态字符串)来表示最基本的字符串数据。这个结构记录了用于保存字符串的字节数组char buf[]、已用长度int len和未用长度int free。有点像java中的字符串对象。这个sds使用C字符串作为文字量,遵循C风格,以空字符' \0 '作为字符串的结尾,这样就可以直接重用C字符串函数库的部分函数,但与C字符串相比,它有以下优点:直接保存字符串长度而不是像C一样遍历得到长度;通过预分配空间和释放惰性空间,减少了修改字符串引起的内存重分配。空间预分配的意思是:当需要扩展字符数组的容量时,如果分配的长度将小于1MB,则预分配与当前len长度相同的字节数,如果超过1MB,则分配1MB。惰性空间释放是指当sds字符串被缩短时,多余的字节数组不被回收,而是通过增长free来记录,这样下次如果free本身足够了,就不需要申请内存了。当然,也有可以调整为主动释放的API。用二进制方法处理buf数组,保留二进制数据,这样就可以保存除文本数据以外的其他格式,比如图片、音视频、压缩文件等。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询