Stack, Heap

PeterPan400

Mitglied
Es liegen im...
Stack: Methoden und lokale Variablen
Heap: Objekte und Instanzvariablen


Meine Frage zum Stack:
Sind in folgendem Beispiel beide Variablen lokale Variablen?
Wie erkenne ich nicht lokale Variablen?
-------
Java:
public class Test{
static int a1=4;

public void methode1(){
int a2 = 5;
}
}
-------
 

Dimax

Top Contributor
Heißen die lokale Variablen in Java nicht Methoden Variablen? ,weil es gibt ja auch schleifen Variablen die eigentlich auch lokal sind aber sichtbar nur innerhalb einer Schleife,und die classen Variablen(Global?Instanz?).
static a1 ist ja eine Variable die kein Objekt der classe Test braucht um da drauf zugreifen zu können.
Wäre die Variable nicht static sollte mein ein Objekt der Klasse erstellen um da drauf zugreifen zu können.
 

mrBrown

Super-Moderator
Mitarbeiter
Heißen die lokale Variablen in Java nicht Methoden Variablen?
Nein, sie heißen lokale Variablen. Gibt aber sicher einige, die sie Methoden Variablen nennen.

weil es gibt ja auch schleifen Variablen die eigentlich auch lokal sind aber sichtbar nur innerhalb einer Schleife,
Ja, die Schliefen Variablen sind auch lokale Variablen, wie alle innerhalb eines Blocks deklarierte.
Sichtbar sind sie jeweils lokal in ihrem Block.

und die classen Variablen(Global?Instanz?).
static a1 ist ja eine Variable die kein Objekt der classe Test braucht um da drauf zugreifen zu können.
Klassen oder statische Variable werden die üblicherweise genannt (bzw Feld oder sonstige Begriffe je nach Kontext), global sind die nicht, und Instanzvariablen auch nicht.
 

ocsme

Top Contributor
Hey,
finde das Thema interessant und habe auch noch eine Frage.

Sagen wir mal ein Programm sieht so aus:

Code:
public class Clown {
public static int pi = 3; //statische Variable
int clowncar; //gloabale Variable?
Clown c //Instanzvariable
public static void main(String[] args) {
int n=4; //lokale Variable
for(int i=0;i<n;i++)
System.out.println(i);
}
}

ist eine globale Variable nicht auch eine statische Variable? Klar kann man die Statische Variable auch über Clown.pi von einer anderen Klasse aus aufrufen oder ist das der grund zwischen "statischer" Variable und "globaler" Variable?

LG
 

Robat

Top Contributor
Das kommt auf deine Definition von global an. Per se gibt es in Java das Konzept von globalen Variablen nicht. Es gibt Klassenvariablen (static) und Instanzvariablen - also die Attribute einer Instanz/Objekt - (das was du hier als global bezeichnest).
 

ocsme

Top Contributor
Hab mal schnell gegooglet also unter C gibt es globale Variablen. Dort gibt es ja keine Klassen so sieht eine Globale Variable dort aus:
C:
#include<stdio.h>

// globale Variable
int counter = 0;

void zaehlen() {
    counter += 1;
}

int main() {
    zaehlen();
    printf("Zaehler: %d\n", counter);
    return 0;
}

Ist eine Variable global, so kann man von jedem Ort aus auf sie zugreifen. Eine Variable wird global, indem man sie nicht in einem Block, sondern außerhalb der Hauptfunktion deklariert.

Könnte man dann sagen das eine Variable
Code:
public static int counter = 0;
in einer Klasse nicht auch eine "Globale" Variable ist? Natürlich ist mir bewusst durch die Klasse nennen wir sie mal Test müsste man dann schreiben Test.counter doch durch public static sollte man von überall drauf zugreifen können. Oder ist das jetzt wieder nur Definitionssache das man es anders nennt FERTIG?

LG
 

ocsme

Top Contributor
Das Thema sollte zwar erledigt sein aber hier nochmal:
  • Klassenvariablen - sind innerhalb einer ganzen Klasse sichtbar. Eine Klassenvariable wird innerhalb einer Klasse mit Hilfe des Schlüsselworts static deklariert:
    static Typname Variablenname;
    Eine solche Variable ist dann auch in jedem Objekt dieser Klasse verfügbar und hat somit insbesondere unabhängig von dem jeweiligen Objekt immer den gleichen Wert;

  • Objektvariablen - sind innerhalb eines Objektes sichtbar. Eine Objektvariable wird wie eine Klassenvariable innerhalb einer Klasse deklariert:
    Typname Variablenname;
    Eine solche Variable kann in jedem Objekt dieser Klasse einen anderen Wert haben. Genau genommen wird für jedes neue Objekt eine neue Variable mit dem gleichen Namen erzeugt;

  • Lokale Variablen - sind innerhalb von Blöcken sichtbar in denen sie deklariert wurden. Ein Block wird dabei durch geschweifte Klammern definiert, d.h. etwa eine Methode;
 

ocsme

Top Contributor
Genau von dort ich wollte gestern Abend da eigentlich noch das Beispiel von unten mit rein Kopieren und dann noch den Link. Dazu bin ich aber nicht mehr gekommen um 21 Uhr war Schluss :D
Denke damit ist das Thema hier auch durch :)

hab das nur nachträglich gemacht als "Zusammenfassung" denn so was finde ich immer gut wenn man dann ein Thema durchschaut muss man nicht jedes Kommentar durchlesen!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
V Ist Off-Heap-Speicher dasselbe wie Stack-Speicher? Java Basics - Anfänger-Themen 2
KogoroMori21 Stack und Heap Speicher Java Basics - Anfänger-Themen 1
F speicherort stack oder heap Java Basics - Anfänger-Themen 1
J Array von Objekten, wie schauts im Heap / Stack aus ? Java Basics - Anfänger-Themen 7
M Frage zu Stack und Heap Java Basics - Anfänger-Themen 1
B Stack/Heap Frage Java Basics - Anfänger-Themen 36
J Morgen Java-Klausur. Stack, Heap, Method-Area Java Basics - Anfänger-Themen 2
A stack Java Basics - Anfänger-Themen 14
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
izoards Stack... Java Basics - Anfänger-Themen 17
Csircc Rekursive Methode Stack Overflow Java Basics - Anfänger-Themen 10
B Zahlenfolge von Queue in Stack Java Basics - Anfänger-Themen 29
L Stack bilden, push und pop Java Basics - Anfänger-Themen 16
G Stack und Queue Arbeitsblatt Java Basics - Anfänger-Themen 3
G Stack programmieren Java Basics - Anfänger-Themen 6
Z Datentypen Stack based calculator Java Basics - Anfänger-Themen 8
S Rekursiven Stack Java Basics - Anfänger-Themen 6
Curtis_MC Collections Zufälliges Element aus Stack Java Basics - Anfänger-Themen 2
D Queue vs. Stack Java Basics - Anfänger-Themen 6
D Erste Schritte Stack im Rollenspiel Java Basics - Anfänger-Themen 76
J Stack mit Benutzereingabe Java Basics - Anfänger-Themen 17
J Liste,Queue,Stack sortieren Java Basics - Anfänger-Themen 2
C Stack und Queue in Aktion (Bitte Hilfe für die Klausur) Java Basics - Anfänger-Themen 7
S Sequenz von Zahlen bei einem Stack möglich oder nicht möglich? Java Basics - Anfänger-Themen 5
E Stack vs Queue - Gemeinsamkeiten / Unterschiede Java Basics - Anfänger-Themen 7
C Laufzeit von Stack Operation Java Basics - Anfänger-Themen 5
4 Stack over flow bei rekursiver Tiefensuche Java Basics - Anfänger-Themen 5
J Quicksort mit Stack Java Basics - Anfänger-Themen 4
A Anzahl der Elemente in einem Stack wiedergeben Java Basics - Anfänger-Themen 3
T Stack Overflow - Rekursive Fibonacci Java Basics - Anfänger-Themen 10
K Tiefen- und Breitensuche beim Baum durch Stack und Warteschlange Java Basics - Anfänger-Themen 1
L Liste mittels Stack implementieren Java Basics - Anfänger-Themen 0
A Stack programmieren -> Unklarheiten Java Basics - Anfänger-Themen 1
C Stack - listenbasierte Implementierung Java Basics - Anfänger-Themen 4
L Mit rekursiven Aufrufen einen Stack emulieren Java Basics - Anfänger-Themen 1
T Frage zu Java Stack Java Basics - Anfänger-Themen 5
D Stack-Objekt - LIFO - wait(); notify(); Java Basics - Anfänger-Themen 0
Farbenfroh Suche Übungsaufgaben: BinaryTree, Stack Java Basics - Anfänger-Themen 0
D Aufgabe: Stack mit Iterator Java Basics - Anfänger-Themen 8
X Stack mit Oberklasse, wieso funktioniert es nicht? Java Basics - Anfänger-Themen 8
K Probleme mit stack Java Basics - Anfänger-Themen 7
K Wofür wird heute noch die Stack Klasse in Java genutzt Java Basics - Anfänger-Themen 4
F Rekursion Tiefensuch-Problem - Stack Overflow Java Basics - Anfänger-Themen 9
P LinkedList - Stack ... grundlegende Frage Java Basics - Anfänger-Themen 5
B Stack in eine verkettete Liste pushen Java Basics - Anfänger-Themen 4
J OOP Warum braucht man den Stack Java Basics - Anfänger-Themen 3
B Queue mit Daten aus einem Stack füllen Java Basics - Anfänger-Themen 21
G Stack invertieren Java Basics - Anfänger-Themen 3
H Pseudo-Stack (char[] stackArray) mit Zeichen aus einer .txt-Datei befüllen Java Basics - Anfänger-Themen 5
S Stack Problem mit Objekt Java Basics - Anfänger-Themen 2
X String mit String von Objekt im Stack vergleichen? Java Basics - Anfänger-Themen 14
D Stack auslesen mit pop Java Basics - Anfänger-Themen 2
S Stack als verkettete liste/ toString methode Java Basics - Anfänger-Themen 3
S Exceptions bei push/pop in Stack Java Basics - Anfänger-Themen 8
S Eigene Stack Klasse Java Basics - Anfänger-Themen 26
S Stack: Klasseninvariante Java Basics - Anfänger-Themen 4
L OOP Wrapper Klassen - Stack-Aufgabe Java Basics - Anfänger-Themen 2
M Frage zu Stack Java Basics - Anfänger-Themen 3
D Problem mit Set, Stack und Random Java Basics - Anfänger-Themen 2
O Stack Implementierung als verkettete Liste Java Basics - Anfänger-Themen 8
T Probleme bei einen Stack der über drei Dateien funktionieren soll Java Basics - Anfänger-Themen 5
V java.util.Stack Java Basics - Anfänger-Themen 9
K Stack und immer gleiches Objekt Java Basics - Anfänger-Themen 11
kulturfenster Stack / Queue Implementationen Java Basics - Anfänger-Themen 11
S Stack einlesen. Java Basics - Anfänger-Themen 2
E Stack kann nicht implimentiert werden Java Basics - Anfänger-Themen 11
E Eigene Stack Klasse schreiben Java Basics - Anfänger-Themen 12
J Stack Java Basics - Anfänger-Themen 3
K min-int-Wert in'nem Stack Java Basics - Anfänger-Themen 8
L Stack UpnRechner Java Basics - Anfänger-Themen 4
B Stack mit Bildern füllen Java Basics - Anfänger-Themen 2
B Stack mit Strings in zufälliger Reihenfolge füllen Java Basics - Anfänger-Themen 4
J Stack, der Integer-Zahlen enthält Java Basics - Anfänger-Themen 3
K Array Stack Java Basics - Anfänger-Themen 6
O Stack-Klasse Java Basics - Anfänger-Themen 7
S Stack mit Arrays Java Basics - Anfänger-Themen 3
T generischer stack Java Basics - Anfänger-Themen 3
Z Keller/Stack Problem Java Basics - Anfänger-Themen 11
H Stack und Queue Java Basics - Anfänger-Themen 6
M Stack SetValTop Java Basics - Anfänger-Themen 6
G Die Klasse Stack selber schreiben. Java Basics - Anfänger-Themen 2
F Klammertest mit Stack implementieren Java Basics - Anfänger-Themen 5
X Stack Java Basics - Anfänger-Themen 14
H Unterschied zwischen Stack und Array Java Basics - Anfänger-Themen 3
F MergeSort iterativ mit Hilfe von Stack Java Basics - Anfänger-Themen 5
S stack Java Basics - Anfänger-Themen 3
S Stack invertieren Java Basics - Anfänger-Themen 14
S Stack-Operationen Java Basics - Anfänger-Themen 59
S Stack.pop() wie genau funktioniert das? Java Basics - Anfänger-Themen 3
A Stack, Frage zur Methode push Java Basics - Anfänger-Themen 4
C Anzahl der Elemente auf einem Stack Java Basics - Anfänger-Themen 4
D Stack chaos Java Basics - Anfänger-Themen 2
megachucky kleines problem mit nem STACK Java Basics - Anfänger-Themen 8
I Stack ist auf einmal empty Java Basics - Anfänger-Themen 3
R Beispiele für Stack & Visualisierung Java Basics - Anfänger-Themen 2
R Stack: Wieso funktioiert das? Java Basics - Anfänger-Themen 2
B eine kleine leichte aufgabe mit einem stack programmieren Java Basics - Anfänger-Themen 2
N Stack-Probleme Java Basics - Anfänger-Themen 2
K Stack Overflow Java Basics - Anfänger-Themen 2
S Java Client-je nach Heap Size Größe startet Applikation oder nicht Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben