Initlialisierung, Vector, serialVersionUID . kleine Fragen

Status
Nicht offen für weitere Antworten.

Povlsen84

Mitglied
Hallo,

ist es egal ob man eine Variable in oder ausserhalb einer Schleife deklariert? Über die Sichtbarkeit bin ich mir im Klaren. Es geht um die Deklarierung. Jedes mal neu, oder einmalig und immer wieder reseten?

Code:
String blargh = "";
for(int i = 0; i < 10;i++){
// mache irgendwas mit blargh
}

oder

Code:
for(int i = 0; i < 10;i++){
String blargh = "";
// mache irgendwas mit blargh
}

Die zweite Frage bezieht sich auf die Erweiterung der Klasse Vector.

Code:
public class Vector extends java.util.Vector {
	
	private static final long serialVersionUID = -1826740680221131978L;

	public String toString(String symbol){
		String tmp = "";
		for(String e : this){
			tmp += e + symbol;
		}
		return tmp;		
	}
}

Mit this, kann ich nicht darauf zugreifen. Habe schließlich nicht eingeschränkt, dass es sich um einen String-Vector handelt. Muss man das einschränken? Geht das auch über ne zusätzliche if-Abfrage? Sprich: Mache das nur, wenn wirklich Strings drin sind.

Ein

Code:
public class Vector extends java.util.Vector<?>

funktioniert jedenfalls nicht.

Und zu guter Letzt. Was hat es mit dieser serialVersionUID auf sich?

lG aus Berlin,
Stephan
 

Landei

Top Contributor
1) die Zuweisung wird in jedem Schleifendurchlauf ausgeführt. Allerdings wird der Compiler in diesem Fall merken, dass sich da nichts ändert, und würde es "wegoptimieren".
2) Gleich 2 ganz schlechte Ideen:
- Klassen im DefaultPackage definieren (kann nämlich nicht von anderen Packages refernziert werden)
- Klasse genauso wie Papa-Klasse nennen (gibt nur Konfusion)
Schreib doch
Code:
public class StringVector extends java.util.Vector<String>
3) Wenn du eine serialisierte Klasse wieder deserialisierst, muss die Runtime-Umgebung wissen, dass diese Klasse auch mit der aktuell geladenen Klassen-Definition übereinstimmt. Dazu wird entweder eine serialVersionUID berechnet oder vom Nutzer vorgegeben. Eine vom Nutzer vorgegebene UID hat den Vorteil, dass man auch bei kleineren, für die Datenstruktur irrelevanten Änderungen, die gleiche UID vergeben kann (und ältere serialisierte Versionen damit "gültig" bleiben), während die berechnte UID abweichen und dei Runtime die ältere serialisierte Klasse ablehenen würde.
 

Povlsen84

Mitglied
Hallo,

vielen Dank für die Antworten :)

Zur ersten Frage habe ich vielleicht ein ungünstiges Beispiel gewählt. Zumindest verstehe ich die Antwort nicht :)

Dem Compiler ist es egal ob die Variable vor oder innerhalb der Schleife deklariert wird? Mit meiner naiven Weltsicht geh ich davon aus, dass bei einer Deklaration innerhalb der Schleife jedes mal ein neuer Speicherbereich belegt wird. Deklariert man die Variable außerhalb, müsste das also fixer gehen.

Klärt mich auf :)

lG aus Berlin,
Stephan
 
P

P

Gast
Theoretisch hast du natürlich recht ;)
Java ist schon eine relativ gut entwickelte Sprache und bringt beim Compilieren einige Optimierungsprozesse mit sich. Ob nun diese n-fache Zuweisung der Variable dazugehört, weiß ich dann auch nicht ;)

Aus der Optimierungssicht ist so eine Variablenzuweisung auch eher von geringerer Bedeutung (dank der heutigen CPU/Speichermonster). Eher würde ich mir über die Programmierlogik mehr gedanken machen, z.B. ob ich die Variable später oder in der Schleife noch brauche...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Erste Schritte Alle möglichen ausgaben von 5 Zahlen als Vector Java Basics - Anfänger-Themen 7
C Werte im Vector in zufällige Reihenfolge bringen Java Basics - Anfänger-Themen 14
C Vector-Inhalt in zufällige Reihenfolge bringen Java Basics - Anfänger-Themen 6
J Compiler-Fehler Fehler bei Vektor (E extends Object declared in class Vector) Java Basics - Anfänger-Themen 9
J Reihenfolge im Vector lässt sich nicht drehen Java Basics - Anfänger-Themen 9
M Klassen Gesamt speicherbare Elemente in Vector? Java Basics - Anfänger-Themen 3
P Vector durchsuchen und Elemente löschen Java Basics - Anfänger-Themen 4
Z Vector in jTextField/jLabel darstellen Java Basics - Anfänger-Themen 4
P Objekte in Vector werden überschrieben Java Basics - Anfänger-Themen 4
P Array in Vector speichern Java Basics - Anfänger-Themen 2
E Methoden new Vector().add(x).add(x); ? Java Basics - Anfänger-Themen 5
F Vector istGeordnet Java Basics - Anfänger-Themen 15
R Vector-Filterfunktion Java Basics - Anfänger-Themen 4
Todesbote Map (Key=String; Value = Vector) Value/Vector sortieren Java Basics - Anfänger-Themen 13
J Vector Manipulieren.. Wie? Java Basics - Anfänger-Themen 16
M Vector eines Vectors einzeln ausgeben Java Basics - Anfänger-Themen 9
K String kommt schon in Vector vor? Java Basics - Anfänger-Themen 36
J Erzeugung eines Vector-Objekts - Frage zum Typ Java Basics - Anfänger-Themen 3
H Zugriff auf Vector Element Java Basics - Anfänger-Themen 2
C Vector erzeugt neue Indizes nach Input Java Basics - Anfänger-Themen 2
A Author in Vector Java Basics - Anfänger-Themen 22
M Vector überschreibt Elemente bei add()-Methode Java Basics - Anfänger-Themen 10
T Elemente im Vector werden einfach überschrieben! Java Basics - Anfänger-Themen 3
K Collections Vector zu String casten Java Basics - Anfänger-Themen 4
U Wozu dient ein Vector in Java? Java Basics - Anfänger-Themen 6
S Vector mit beliebigen Klassen an Funktion übergeben Java Basics - Anfänger-Themen 20
B Globale vector? Java Basics - Anfänger-Themen 7
E 2 Dimensionaler Vector Java Basics - Anfänger-Themen 5
T Map<String, Vector>? Java Basics - Anfänger-Themen 11
P Collections Vector füllen in for-Schleife Java Basics - Anfänger-Themen 3
J Vector Addition Java Basics - Anfänger-Themen 5
M 2D Vector Java Basics - Anfänger-Themen 2
N IndexOutOfBoundsException: Source does not fit in dest beim Kopieren von ArrayList in Vector Java Basics - Anfänger-Themen 4
M Umwandlung von Array in Vector und umgekehrt Java Basics - Anfänger-Themen 6
E Datentypen Klasse Vector aus der Standard-API anwenden Java Basics - Anfänger-Themen 7
D Klasse Vector entwerfen Java Basics - Anfänger-Themen 7
A Arrays vs Liste vs Vector Java Basics - Anfänger-Themen 30
H in for Schleife über Vector iterieren Java Basics - Anfänger-Themen 2
S Datentypen Vector auslesen Java Basics - Anfänger-Themen 12
yampi Objektsammlung - Hashtable, Vector, Arrays Java Basics - Anfänger-Themen 8
T Vector-Positin anzeigen Java Basics - Anfänger-Themen 3
C Vector - obsolete collection Java Basics - Anfänger-Themen 1
C Vector<Object> Probleme Java Basics - Anfänger-Themen 38
C Datentypen Probleme mit Vector.contains() Java Basics - Anfänger-Themen 10
M Datentypen function(Vector<SuperClass>), Vector<Subclass> Java Basics - Anfänger-Themen 6
L Vector Sortieren Java Basics - Anfänger-Themen 8
B Vector in Table ersetzen Java Basics - Anfänger-Themen 4
B Werte einer Spalte aus DB in einen Vector schreiben Java Basics - Anfänger-Themen 15
kitz Telefonbuch (Vector) Java Basics - Anfänger-Themen 17
E Arraylist mit Daten aus Vector füllen Java Basics - Anfänger-Themen 7
S Vector -> String JComboBox Java Basics - Anfänger-Themen 11
F Vector wird überschrieben Java Basics - Anfänger-Themen 8
T Vector sortiern Java Basics - Anfänger-Themen 7
C Frage zu Vector und muliplizieren des Inhaltes Java Basics - Anfänger-Themen 2
S Vector von eigenen Klassen Java Basics - Anfänger-Themen 2
J Collection Vector Java Basics - Anfänger-Themen 8
Streeber ArrayList/Vector, mehrdimensional Java Basics - Anfänger-Themen 11
N Was ist der Unterschied zwischen ArrayList und Vector? Java Basics - Anfänger-Themen 3
babel Einen Vector/Liste mit Daten prüfen Java Basics - Anfänger-Themen 31
B Hilfe zum einem Problem mit Vector Java Basics - Anfänger-Themen 8
H Vector - Fehler? Java Basics - Anfänger-Themen 2
babel einen Vector nach Datum sortieren Java Basics - Anfänger-Themen 21
T Array-Vector Problem Java Basics - Anfänger-Themen 18
P Vector und Exception Java Basics - Anfänger-Themen 7
K Vector Java Basics - Anfänger-Themen 3
K Vector Java Basics - Anfänger-Themen 10
babel ein Vector mit verschiedenen Werten auslesen und berechnen Java Basics - Anfänger-Themen 34
T Object aus Vector übergeben Java Basics - Anfänger-Themen 2
B Vector<Point> als Rückgabewert Java Basics - Anfänger-Themen 23
L Vector einem Array hinzufügen Java Basics - Anfänger-Themen 14
P Vector mit double Java Basics - Anfänger-Themen 3
P Vector Elemente auslesen Java Basics - Anfänger-Themen 9
N Anfängerfrage richtige Syntax und Frage zu Vector Java Basics - Anfänger-Themen 7
C Unterschied zwischen ArrayList und Vector Java Basics - Anfänger-Themen 2
W Vector mit String[] auslesen Java Basics - Anfänger-Themen 4
Q Vector verändert trotz final seine Größe Java Basics - Anfänger-Themen 5
B Dopplete aus Vector entfernen Java Basics - Anfänger-Themen 8
E Vector Fehler bei allen Methoden von Vector Java Basics - Anfänger-Themen 2
K Vector zu Array machen Java Basics - Anfänger-Themen 10
1 JList Problem : Synchronisation mit Vector klappt nicht :( Java Basics - Anfänger-Themen 6
L Multidimensional Vector - Recordset Java Basics - Anfänger-Themen 5
K Objektklasse mit leerem Vector füllen Java Basics - Anfänger-Themen 6
K Vector wird überschrieben Java Basics - Anfänger-Themen 7
G Vector Strijng parsen Java Basics - Anfänger-Themen 6
K vector cannot be resolved Java Basics - Anfänger-Themen 3
G Zeichenkette suchen in Vector-Klasse Java Basics - Anfänger-Themen 11
R fehler beim incrementellen schreiben in einen vector Java Basics - Anfänger-Themen 11
M ObjectInputStream, Object und Vector<Object> Java Basics - Anfänger-Themen 4
G Vector, equal & Casts Java Basics - Anfänger-Themen 5
N Objekte in einen Vector packen oder nicht? Java Basics - Anfänger-Themen 3
D Frage zu Vector Java Basics - Anfänger-Themen 7
S Problem mit Vector Java Basics - Anfänger-Themen 2
G Object[] [] nach vector casten. Java Basics - Anfänger-Themen 3
G 2D vector zugriff auf elementinterne elemente wie Java Basics - Anfänger-Themen 3
G vector in neuem vector sortieren Java Basics - Anfänger-Themen 3
G jede 2te zeile in vector leer einfügen, wie? Java Basics - Anfänger-Themen 4
G vector füllt sich immer weiter. wo muss ich ihn leeren? Java Basics - Anfänger-Themen 3
V Vector/Arraylist hat nur gleiche Einträge Java Basics - Anfänger-Themen 3
G Vector eigenen Typs mit Daten füllen Java Basics - Anfänger-Themen 20
H Vector und Dateien Java Basics - Anfänger-Themen 27

Ähnliche Java Themen

Neue Themen


Oben