当创建对象并调用构造函数时,构造函数调用的存储位置是什么?它是堆栈还是堆?构造函数调用的存储位置在哪里?堆栈还是堆?
4
A
回答
1
堆仅用于存储对象。没有办法在堆上调用构造函数。
它的调用是在堆栈上完成的。
堆栈用于方法调用。它用于创建方法堆栈。尽管构造函数不是一种方法。但是,您总是可以按照任何方法编写任何逻辑或赋值。所以它像任何其他方法一样在一个堆栈中实现。
4
构造函数调用的参数和局部变量存储在堆栈中,直到构造函数返回。
构造函数创建的对象存储在堆中。
1 - ...除非你有“逃脱分析”启用,JIT编译器可以判断该对象可以在堆栈上安全地分配为止。
1
在JVM对堆栈和堆
运行时数据区为如下,
1)堆:存储区域为对象(一个每JVM实例)
2)Java堆栈:Storage是用于本地变量,中间操作结果(每个线程一个)
相关问题
- 1. 堆栈函数的实现在哪里?
- 2. 创建线程对象在哪里?堆栈还是堆?
- 3. 哪里(正好)是调用堆栈?
- 4. 类的字段,它们是存储在堆栈还是堆?
- 5. 堆栈上的构造函数
- 6. 存储在堆栈或堆
- 7. 成员函数内存分配堆栈还是堆?
- 8. cin是堆栈还是堆栈?
- 9. 堆栈拷贝构造函数
- 10. 在函数中创建的对象,是保存在堆栈还是堆上?
- 11. const char *值将存储在哪里。什么是堆栈崩溃和堆崩溃?
- 12. 在递归函数中存储堆栈
- 13. 调用堆栈上大对象的构造函数
- 14. 堆vs堆栈存储
- 15. 将堆栈结构存储在堆vs栈上
- 16. 函数调用,堆栈
- 17. 堆栈内存位置
- 18. 在堆或堆栈中创建构造函数的区别是什么?
- 19. 如何获取函数在调用堆栈中的位置?
- 20. VISA在OSI堆栈上的位置在哪里?
- 21. 哪种数据结构是堆栈?
- 22. C++是堆栈还是堆分配?
- 23. 全局声明是堆栈还是堆?
- 24. 了解Haskell的`map` - 堆栈还是堆?
- 25. 功能调用时的堆栈存储
- 26. 这个内存在哪里分配 - 堆或堆栈?
- 27. 将函数的参数传递给堆栈还是寄存器?
- 28. Java-变量名称或标识符在哪里存储,堆栈或堆?
- 29. 堆栈上的C++存储保存在堆栈上
- 30. 构造函数调用了错误的“this”指针。这是堆栈腐败?
有用读:https://stackoverflow.com/questions/2826222/jvm-heap-and-stack/7597480#7597480 – Dez
调用构造函数就像调用一个称为特殊方法''它使用堆栈像任何其他方法。 –