是的,如果没有开启标量替换,即使开启了逃逸分析,对象的数据仍然会被分配在堆中。逃逸分析只是尽可能地将对象的引用分配在栈帧中,以减少堆的使用,但对象的数据仍然需要在堆中分配空间。只有开启了标量替换,对象的数据才能被拆分成基本类型数据,分配在栈帧中,从而完全避免了在堆中分配对象。
是的,如果没有开启标量替换,即使开启了逃逸分析,对象的数据仍然会被分配在堆中。逃逸分析只是尽可能地将对象的引用分配在栈帧中,以减少堆的使用,但对象的数据仍然需要在堆中分配空间。只有开启了标量替换,对象的数据才能被拆分成基本类型数据,分配在栈帧中,从而完全避免了在堆中分配对象。