java存储数据的几种方式
2010-11-24 14:20
405 查看
1,寄存器,这个无疑是计算机上面存取数据最快的地方,但他的空间是有限的,所以由编译器来分配,我们不能直接控制存储器。
2,栈,位于“常规内存器”。处理器可以通过栈指针来对他进行直接访问,栈指针向上移动就释放了空间,向下移动就分配了内存空间,他是仅仅次于寄存器的存储方式。因为java编译器必须生成栈指针要移动的代码,所以编译器必须要知道了存储在栈内对象的生命周期。这样对灵活性就大大的打了折扣。所以java只把对象的引用放在栈里面,而对象放在堆里面。
3,堆,是一段“多用途的内存池”,所有java的对象都存储在这里,和栈不同,在堆中创建对象的时候是不需要让编译器知道对象的生命周期和大小,所以在堆中创建对象有一定的灵活性,当然他也是有缺点的,那就是效率不如在栈中创建对象的快,还有就是要用垃圾回收器才能自动释放内存。
4,静态存储,静态存储就是在固定的位置,他能保证在整个程序中都能访问到里面的东西,在java中可以用static来指定一个变量就是静态变量,但是java不会把对象放到静态存储里面。
5,固定存储,常量一般放在这里,因为这样他就不会被改动了,也就更安全了。
6,非内存的存储,如果数据完全独立也程序,那么即使程序不运行了,那么他应该在,如果程序对数据失去控制了,那么他也应该在。流对象和序列化对象就是此类的存储。
2,栈,位于“常规内存器”。处理器可以通过栈指针来对他进行直接访问,栈指针向上移动就释放了空间,向下移动就分配了内存空间,他是仅仅次于寄存器的存储方式。因为java编译器必须生成栈指针要移动的代码,所以编译器必须要知道了存储在栈内对象的生命周期。这样对灵活性就大大的打了折扣。所以java只把对象的引用放在栈里面,而对象放在堆里面。
3,堆,是一段“多用途的内存池”,所有java的对象都存储在这里,和栈不同,在堆中创建对象的时候是不需要让编译器知道对象的生命周期和大小,所以在堆中创建对象有一定的灵活性,当然他也是有缺点的,那就是效率不如在栈中创建对象的快,还有就是要用垃圾回收器才能自动释放内存。
4,静态存储,静态存储就是在固定的位置,他能保证在整个程序中都能访问到里面的东西,在java中可以用static来指定一个变量就是静态变量,但是java不会把对象放到静态存储里面。
5,固定存储,常量一般放在这里,因为这样他就不会被改动了,也就更安全了。
6,非内存的存储,如果数据完全独立也程序,那么即使程序不运行了,那么他应该在,如果程序对数据失去控制了,那么他也应该在。流对象和序列化对象就是此类的存储。
相关文章推荐
- android的数据存储方式有哪几种
- 存储图片类型数据有以下几种方式
- Android几种数据存储方式的应用场景
- IOS开发数据存储篇—IOS中的几种数据存储方式
- java中的各种数据类型在内存中存储的方式
- Android几种数据存储方式的应用场景
- java数据类型在内存中存储方式
- cocos2d-x中几种存储数据的方式
- java中的各种数据类型在内存中存储的方式
- java 数据绑定的几种方式及相关注意事项-持续更新
- android的几种数据存储方式
- java不同数据类型在内存中的存储方式
- Android几种数据存储的方式
- Android存储数据的几种方式
- Java基础之各种数据类型在内存中的存储方式
- Android为数据存储提供几种方式
- iOS开发 实现本地数据存储的几种方式一
- python相关的几种数据类型的存储读取方式
- Android几种数据存储方式的应用场景
- Android存储数据的几种方式--Shared preference和files