JavaにおけるオブジェクトとC++におけるオブジェクトの配置配置の比較


JavaにおけるオブジェクトとC++におけるオブジェクトの配置配置の比較
概要:
Javaでは、すべてのオブジェクトがヒープに保存されます。オブジェクトの参照はスタックに保存されます。
String直接声明の文字列とnew String声明の文字列とのequals()と「=」の比較によって、対象と引用の関係とそれらの格納場所を理解することができます。
スタックは、レジスタに次ぐ迅速かつ効率的な分配記憶方法である。プログラムを作成する時、Javaシステムはスタック内に記憶されているすべての項目の正確なライフサイクルを知っていなければなりません。
スタックとは違って、コンパイラはデータが蓄積されてどれぐらいの時間が生きているかを知る必要がありません。だから、スタックよりもっと柔軟です。
Javaのスタックはデータ構造のスタックとして簡単には理解できません。英語は全部Stckですが。Javaのスタックは汎用RAM(ランダムアクセスメモリ)に位置するが、スタックポインタによってプロセッサから直接的なサポートが得られる。スタックポインタが下に移動すると、新しいメモリが割り当てられます。上に移動すると、それらのメモリが解放されます。
具体的なJavaのメモリ割り当ては「Thinking in Java」P 22ページを参照してください。
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;
疑問があれば、メッセージをお願いします。あるいは、当駅のコミュニティで交流して討論してください。ありがとうございます。