首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
初接触内存知识的收获
时间:
2020-10-12 20:23:31
阅读:
20
评论:
0
收藏:
0
[点我收藏+]
标签:
冯诺依曼
变量
补充
出现
内存管理
直接
函数
情况下
刷新
我原来对于程序的了解只有简单在大学上过C语音课程,并在学习过后没有进行写程序的训练。今天看了朱友峰老师的内存课程的视频,对程序和内存有了些了解。
计算机程序是由代码和数据组成的。按照朱老师将程序用函数来类比,代码就是这个函数的本体,是确定的存在,例如函数式子c=a+b。数据就是式子中a和b这两个变量。通过函数式子的运算,来得到结果a。这整个过程就是程序。
初步了解了两种计算机结构:冯诺依曼结构和哈佛结构。其中冯诺依曼结构是将代码和数据放在一起进行储存,哈佛结构是将数据和代码分开储存。这部分需要后面更多学习进行了解。
动态内存(DRAM)只能保持较短时间的数据。所以为了保持数据,DRAM使用电容存储,所以必须隔一段时间刷新一次,如果存储单元没有被刷新,存储的信息就会丢失。静态存储(SRAM)是指这种存储器只要保持通电,里面的储存的数据就会恒常保持。但是当电力消失后,SRAM储存的数据还是会消失。(来自百度,未展开)
内存是程序运行的本质需求,内存的目的是来存储可变的数据的。
这节课后面主要讲了如何管理内存。因为内存是程序必须的一种资源,所以内存的管理对程序来说是十分重要的技术。朱老师将对内存的管理分为两个方面:有OS和无OS,即有操作系统和计算机语言两个角度大概讲解了他们如何管理内存。在有操作系统时,因为操作系统给编程者提供了内存管理的一些接口,所以编程者只需要用API即可管理内存。而在没有操作系统,即为裸机状态时,我们需要用计算机语言来进行内存管理。这一情况下,就需要编程者自己来承担可能出现的错误结果。朱老师较为系统的讲解了汇编、C/C++、Java/C#这几种计算机语言在管理内存上的优劣所在。汇编这种计算机语言需要直接在内存地址上进行操作。C语言是有编译器存在,算是对内存进行了一定程度上的封装。并且编程者在需要用到较多的内存时,就可以利用语言API(malloc free)来进行内存管理。C++语言是在C语言之上,对内存进一步的封装。可以用语言new来为目标对象进行内存分配,最后要记住用语言delete来释放目标对象占有的内存,否则会造成内存泄露。这两种语言在我们对程序的性能十分在乎时候,会有显著优势。Java/C#这两种计算机语言同过虚拟机的方式来管理内存,这时候编程者不需要自己承担忘记释放内存的后果。这两种语言在表层程序时有显著优势,即速度快。
我因为对于计算机算是初步接触,看起课程来有些吃力,需要更多的基础知识的学习和补充。
初接触内存知识的收获
标签:
冯诺依曼
变量
补充
出现
内存管理
直接
函数
情况下
刷新
原文地址:https://blog.51cto.com/14956029/2541182
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!