不是1 就是0 ,删除是把他们全变成0吗。
比如数组,int[] a = {1,2,3,4,5}
你所谓的删除很不明确。
只要涉及到内存使用,那么都取决于内存管理策略。
不管是否有操作系统,举个例,你使用int a,这篇区域多半曾经使用过了(因为假设你的程序是第二天开始运行的),但是你拿的值并不是曾经用过的脏数据 —— 如果要达到a=0,那么策略可以有很多种——比如1:直接把这篇区域先归0,创建任何变量都不给值;2:区域不归零,创建变量进行赋值...自己推想。
很明显里面有的方式更省时间,但实现者不一定就是那种方式。
数据在内存中 是以 0 或 1 来存储的吧,删除 就比如java GC , 把 a 给回收 ,那么a 所在内存 中010101
是会全部 变为00000 还是11111 还是其他额
mark,删除表示这个内存地址不被引用吧,至于里面的计数不知道了
从C开始学吧.如果是别的语言.就别想这些问题了.
如果对这些基础知识有兴趣.那就买本程序员考试大纲.
然后一行一行百度搜名次.花个1-2年就不会有这些问题了.
学的java 突然有点 好奇
不同的语言处理方式不一样, c的话,删除就是把 a 变量指向改为空, 还要手动释放a之前用到的内存。 c#之类的把a变量指向改为空, 原来用到的内存等待垃圾回收。
那么 想问下 手动释放a 之前用到的 内存 ,指向空之后 那片内存的数据 应该没有改变 ,如果要再次使用怎么办