数据存储原理和高级语言的垃圾回收优化

*为指针符号
1.不管是JS还是JAVA所有高级语言的变量存储或数组存储或集合等存储结构均是将数据存储于内存当中
2.内存所对应的数据被外界访问必须有内存地址
3.指针的作用就是获取这个数据的内存地址,使变量可以通过指针找到对应的内存地址及内存地址所对应的内存所存储的数据并调用。
比如:

 int array[10]={0,1,2,3,4,5,6,7,8,9},value; 
value=*(array+3);
value变量用*指针 指向数组中的索引为3的元素的内存地址

内存空间四大块

栈:由编译器自动分配并在内存中的数据使用完毕后释放内存
作用:存放函数的参数值和函数内部所声明的局部变量的值和变量的指针

静态区:程序执行结束后系统释放

作用:存储全局变量 静态变量,js中的典型 const,java中典型static

文字常量区:程序执行结束后释放
作用:字符类型的值或字符串类型的值存储在这个内存

堆空间:由程序员手动释放 注:java js的垃圾回收器已帮我们释放
作用:存储function或object

js和java及php的垃圾回收优化

变量指向的object或function在未使用时,需要及时将变量指针指向null空内存地址,通知垃圾回收器及时回收并释放内存中的这个已使用完的object或function,从而节省内存使用率 
C语言博文
https://blog.csdn.net/constantin_/article/details/79575638
http://c.biancheng.net/view/211.html
https://www.cnblogs.com/edisonchou/p/4669098.html
 

猜你喜欢

转载自blog.csdn.net/qq_38603437/article/details/89304684