计算机中的对称

我们对于图形会有中心对称的图形,比如函数f(x)=sinx的图形,是关于原点的中心对称的图形,还有一种就是成轴对称的图形,比如函数f(x)=conx的图形,是关于轴x=0的对称图形。

对于计算机往往也会呈现对称的操作,这只是个人的直觉,并非其他的东西。

要想说清楚我想表达的内容是困难的,我还是会尽我所能去说明白。我们举一个比较通用的例子,C++/JAVA的内存分配问题。

C++中的内存分配和释放是要成对出现的。这里会有一个假象,就是认为内存分配和内存释放应该是成轴对称的操作,其实不是,他们是一种互逆操作,应该是一直成中心堆成的操作,之所以会成对出现,只是因为他们是互逆的。如果你熟悉内存分配和释放的原理,你会明白分配和释放完全不是一个概念。
对于这种特性,我们会涉及到编码的完整性问题。比如C++,你会明显看到new和delete的操作,但是对于JAVA你只会看到new。这里有一个很好的设计思想,就是对于这种资源(存在申请和释放的操作)的操作,我们可以设计成开放的或者是封闭的。

内存这种资源对于C++来说就是开放的,开放的好处是开发者可以更好的控制资源的使用,坏处是如果开发者没有正常的维护资源,会造成资源的泄漏。
对于JAVA来说就是封闭的,封闭的好处是资源的管理,系统可以更好的维护资源,坏处是开发者不能控制系统的资源分配情况。

这种开放的设计和封闭的设计往往还会影响到代码的操作完整性。举个例子,客户端和服务器有个长连接和短连接的连接方式(可参考TCP长连接与短连接的区别),那么当使用连接资源的时候,长连接是可以重复使用同一连接资源,因为该资源并未释放。短连接就不同了,他必须来回重新分配资源,然后实现读写功能。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,279评论 25 709
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,496评论 11 349
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,403评论 30 472
  • 无论是工作还是生活,有时候不免会想找捷径,希望快速完成。应付差事也好,提高效率也罢,是否常常会做本末倒置的事情。我...
    小团子妈妈阅读 4,258评论 0 1
  • 我是一个喜欢跑步的小骚年, 老天在冥冥之中貌似就安排我喜欢上了跑步,因为跑步,我也养成了双重性格。一面阳光、一面自...
    西原丿阅读 1,855评论 0 0

友情链接更多精彩内容