Java中对象与C++中对象的放置安排的对比
作者:lqh 时间:2022-05-31 15:07:18
Java中对象与C++中对象的放置安排的对比
概要:
Java中,所有的对象都存放在堆(Heap,一种通用的内存池)中;而对象的引用是存放在堆栈(Stack)中的。
我们可以通过String直接声明的字符串与new String声明出来的字符串使用equals()和"=="进行的比较,从而理解对象和引用的关系及它们的存储位置。
堆栈是一种快速有效的分配存储方法,仅次于寄存器。创建程序时,Java系统必须知道存储在堆栈内所有项的确切生命周期,以便上下移动堆栈指针。
堆不同于堆栈的好处是:编译器不需要知道存储的数据在堆里存活多长时间。所以,堆比堆栈更加灵活。
Java中的堆栈并不能简单理解为数据结构中的栈,虽然它们的英文都是Stack。Java中的堆栈是位于通用RAM(随机访问存储器)中,但通过堆栈指针可以从处理器那里获得直接支持。堆栈指针若向下移动,则分配新的内存;若向上移动,则释放那些内存。
具体的Java的内存分配请详见《Thinking in Java》P22页。
C++中:只要使用了new和malloc关键字声明的对象,都是存放在堆中的,而malloc关键字也是对堆内存进行操作的:
A a(1);//栈中分配
A b = A(1);//栈中分配
A *c = new A(1);//堆中分配内存空间,将在堆中所创建的对象存储地址赋值给c指针
A *d = (A*)malloc(sizeof(A));//堆中分配内存空间
delete c;
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
来源:http://blog.csdn.net/u012712087/article/details/46391233
标签:Java,C++,对象
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Spring Security 强制退出指定用户的方法
2022-10-04 18:13:04
解析spring加载bean流程的方法
2023-11-29 13:50:32
![](https://img.aspxhome.com/file/2023/2/60062_0s.png)
SpringBoot Security安装配置及Thymeleaf整合
2023-11-27 16:18:41
Java实战之在线租房系统的实现
2022-09-29 04:44:18
![](https://img.aspxhome.com/file/2023/8/60808_0s.jpg)
java GUI实现学生图书管理简单实例
2023-11-11 05:00:05
![](https://img.aspxhome.com/file/2023/9/58999_0s.png)
Spring实战之使用ClassPathResource加载xml资源示例
2023-11-28 23:00:30
Java NIO中四大核心组件的使用详解
2023-10-19 17:05:13
javaweb Servlet开发总结(二)
2023-10-31 11:51:48
![](https://img.aspxhome.com/file/2023/7/58567_0s.png)
java读写二进制文件的解决方法
2022-08-03 14:45:55
Java排序的那些事之sort方法的使用详解
2023-01-22 00:18:35
![](https://img.aspxhome.com/file/2023/4/61014_0s.png)
springboot 定时任务@Scheduled实现解析
2023-11-10 16:18:24
Swagger实现动态条件注入与全局拦截功能详细流程
2023-11-23 13:41:05
springboot常用注释的讲解
2023-11-03 02:53:15
springboot集成redis并使用redis生成全局唯一索引ID
2023-11-28 05:42:39
![](https://img.aspxhome.com/file/2023/0/59020_0s.jpg)
MyBatis-Plus 查询返回实体对象还是map
2023-11-28 03:20:19
Java语言读取配置文件config.properties的方法讲解
2023-09-29 14:45:51
![](https://img.aspxhome.com/file/2023/9/86759_0s.png)
Java常用类String的面试题汇总(java面试题)
2023-11-23 20:40:45
详解 Corba开发之Java实现Service与Client
2023-09-23 03:42:48
![](https://img.aspxhome.com/file/2023/3/60183_0s.png)
解决idea spring boot 修改html等不重启即时生效的问题
2023-11-13 18:37:47
![](https://img.aspxhome.com/file/2023/4/59034_0s.jpg)
如何把spring boot项目部署到tomcat容器中
2023-10-08 18:53:51