首页 新闻 搜索 专区 学院

数据在内存中以二进制表示,那么删除意味着什么。

0
[已解决问题] 解决于 2018-01-15 17:50

不是1 就是0 ,删除是把他们全变成0吗。

比如数组,int[] a = {1,2,3,4,5}

publicmain的主页 publicmain | 初学一级 | 园豆:10
提问于:2017-12-01 16:01
< >
分享
最佳答案
0

你所谓的删除很不明确。

只要涉及到内存使用,那么都取决于内存管理策略。

不管是否有操作系统,举个例,你使用int a,这篇区域多半曾经使用过了(因为假设你的程序是第二天开始运行的),但是你拿的值并不是曾经用过的脏数据 —— 如果要达到a=0,那么策略可以有很多种——比如1:直接把这篇区域先归0,创建任何变量都不给值;2:区域不归零,创建变量进行赋值...自己推想。

很明显里面有的方式更省时间,但实现者不一定就是那种方式。

奖励园豆:5
花飘水流兮 | 专家六级 |园豆:12547 | 2017-12-01 16:34

数据在内存中 是以 0 或 1 来存储的吧,删除 就比如java GC , 把 a 给回收 ,那么a 所在内存 中010101

是会全部 变为00000  还是11111 还是其他额

publicmain | 园豆:10 (初学一级) | 2018-01-15 16:00
其他回答(3)
0

mark,删除表示这个内存地址不被引用吧,至于里面的计数不知道了

猝不及防 | 园豆:2207 (老鸟四级) | 2017-12-01 16:35
0

从C开始学吧.如果是别的语言.就别想这些问题了.

如果对这些基础知识有兴趣.那就买本程序员考试大纲.

然后一行一行百度搜名次.花个1-2年就不会有这些问题了.

吴瑞祥 | 园豆:28937 (高人七级) | 2017-12-01 17:48

学的java  突然有点 好奇

支持(0) 反对(0) publicmain | 园豆:10 (初学一级) | 2018-01-15 16:01
0

不同的语言处理方式不一样, c的话,删除就是把 a 变量指向改为空, 还要手动释放a之前用到的内存。 c#之类的把a变量指向改为空, 原来用到的内存等待垃圾回收。

乁卬杨 | 园豆:187 (初学一级) | 2017-12-03 08:37

那么 想问下 手动释放a 之前用到的 内存 ,指向空之后 那片内存的数据 应该没有改变 ,如果要再次使用怎么办

支持(0) 反对(0) publicmain | 园豆:10 (初学一级) | 2018-01-15 16:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册