2010-12-05 24 views
2

mögliche Dubletten:
Does Java have a limit on the class name length?
Max name length of variable or method in Java
Java.Variable name length.Java. Instanz variabler Länge

i dumm, ich weiß, sorry ...

ich diese Frage Java.Variable name length erstellt, aber hier sehr schlechtes Beispiel ... so versuche ich, neue Frage erstellen, ich diese Klasse haben:

class Test 
{ 
int i=10; 

public static void main(String args[]) 
{ 
System.out.println(new Test()); 
}} 

wo Variablenname nicht 'i' ist aber 'iiiiiii ....' mit einer Länge von 65.535 Zeichen (IIIIIIIIII ...)

.class-Datei haben die gleiche Größe wie .java-Datei. Kompilieren - Erfolg.

aber, wenn i> 65535chars - Exception: UTF8 representation for string "iiiiiiiiiiiiiiiiiiii..." is too long for the constant pool

Bingo!

Welche Schlussfolgerung können wir machen?

unbegrenzte Länge - nicht 100% richtig.

Aber ich finde einige Informationen, dass sein Problem nicht Java-Sprache - einige Probleme mit classfile, so jemand weiß: Wessen Problem?

+3

Ich glaube, er meinte, dass der Variablenname nicht 'ich', sondern'iiiiiiii .... 'mit 65535 Zeichen Länge ist. –

+0

@Vladimir Ivanov, спасибо, дружище – user471011

+0

Also, was ist die Frage? Warum glauben Sie, dass die Länge von Variablennamen unbegrenzt ist? – khachik

Antwort

7

Es scheint, dass diese Frage zumindest ein paar Mal gefragt wurde („Max name length of variable or method in Java“, „Does Java have a limit on the class name length?“).

Die beste Antwort scheint zu sein, dass, während die Java Language Specification keine Beschränkung für Konstanten-, Klassen- oder Variablennamen vorsieht, die Java Virtual Machine Specification (speziell das Classfile-Format) ein Limit von 65535 Zeichen festlegt. Siehe section 4.10 der JVM-Spezifikation, letzter Punkt.

+0

danke, nette Antwort! – user471011

2

Ok. Wir können keine Variablen mit mehr als 65534 Zeichen benennen. Aber wen interessiert das schon?

+1

Nun, sicher, * Sie * können Kommentare verwenden, aber * my * Code Dokumente selbst ... und alles andere. –

+0

niemand, aber .... – user471011

+0

@Reese Moore, benötigen Sie mehr als 65535 Zeichen pro Variablenname? –

Verwandte Themen