《java编程思想》学习之对象的存储
2015-09-15 19:23
218 查看
开始看《java编程思想》,今天看了前三章,简单的做下总结。
而java中对象的引用在堆栈中,对象实际存储在堆空间中。这样可以在程序运行时自动创建对象以及自动回收,代价是在堆中分配空间远远大于在栈中分配空间的时间。
一、java与C++中对象的不同
由于C++的效率较高,为此程序员需要在编程时确定对象的存储空间和生命周期(手动分配空间以及释放空间)。所以C++中对象存储在堆栈或静态存储区中。而java中对象的引用在堆栈中,对象实际存储在堆空间中。这样可以在程序运行时自动创建对象以及自动回收,代价是在堆中分配空间远远大于在栈中分配空间的时间。
二、数据存储的位置
1、寄存器
寄存器是最快的存储区,java中不能对寄存器直接控制。2、堆栈
位于RAM中,通过堆栈指针获取值。速度仅次于寄存器,创建程序时系统必须知道存储在堆栈内所有数据的生命周期,因此限制了灵活性。3、堆
灵活性高,代价是花费的时间远多于堆栈。4、常量存储
5、非RAM存储
常见的是流对象,存储在磁盘上,网络上的数据等等相关文章推荐
- java 自定义对话框
- spring注解
- Spring批量更新JdbcTemplate.batchUpdate()
- Cookie的主要属性及Java实现
- Java写文件时文件名00截断BUG导致的文件上传漏洞及修复
- Java 浅拷贝和深拷贝
- SpringMvc[学习手记]-框架搭建
- Java中堆内存与栈内存分配浅析
- spring+hibernate+junit 单元测试 实例
- Eclipse 开发 Android 卡死
- Java学习笔记(六)使用对象
- 设计和程序中必须做的事情!!!
- Spring实现动态数据源切换
- 使用Java正则表达式去掉Double类型的数据后面多余的0
- 使用Java正则表达式去掉Double类型的数据后面多余的0
- 简单发送邮件工具类
- java获取项目路径,url路径
- 查找AndroidStudio对应Eclipse的快捷键
- struts中的findForward()和getinputforward()
- java异常的异常类型