Ein Objekt ist keine Variable und eine Variable ist kein Objekt und sie werden auch nicht so genannt [...]
Das hattest Du jetzt schon mehrfach in diesem Thread wiederholt. Ursprünglich ging es ja um "Stack vs. Heap". Um dem Nebenzweig "Objekt vs. Variable" etwas mehr Leben einzuhauchen, würde ich vorschlagen, dass Du hier mal präzise postest, was Du als Variable und was Du als Objekt bezeichnest.
[...] oder würdest du in dieser Zeile
int x = 5;"5" als Variable bezeichnen.
An dieser Stelle würde ich die "5" eher als Literal oder als Token bezeichnen. Das "x" wäre ebenfalls ein als Variablenname interpretierbares Token, dies hat aber nur für den Betrachter des Quellcodes oder für den Compiler Relevanz. Im Binary gibt es nur noch den Variablen-Inhalt, d. h. die (inzwischen binärcodierte) "5" sowie Speicheradressen oder Stack-Offsets. Schreibt man dagegen eine Zeile
new x(5);
wird die Speicheradresse nicht mit ins Binary codiert und ist zunächst nicht leicht zugänglich. Der Speicherplatz existiert aber trotzdem, wenn man irgendwie die Speicheradresse erraten könnte, würde man wieder auf den Inhalt "5" zugreifen können.
Eine Google- und Wikipedia-Suche nach "Objekt" führt mal wieder auf eine ISO-Norm:
**object**
region of data storage in the execution environment, the contents of which can represent values
Note: When referenced, an object may be interpreted as having a particular type; see 6.3.2.1
– ISO/IEC 9899:1999: §3.14 (siehe Wikipedia-Seite über "Objekt")
Jetzt würde ich gerne von Dir lesen, inwiefern sich "Variablen" von diesem Konzept maßgeblich unterscheiden.
Viele Grüße
Andreas