Newsgroup: it.comp.java
Titolo: Curiosità sulla classe STRING

Ciao a tutti,
qualcuno di voi sa quanti dati può contenere un oggetto string?
-- 
Posted from  [213.140.22.154] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 qualcuno di voi sa quanti dati può contenere un oggetto string?
credo che dipenda dall'implementazione del JDK...
Kali

 wrote in message
news:3C18AD17...@email.com...

String ha un metodo length() che ritorna un int. Per cui presumo che la
lunghezza massima sia il massimo valore di int ossia: 
2147483647
;
Comunque vale la pena di darsi un occhiata al sorgente della classe String.
Lo trovi nella JDK. Se usi JBuilder puoi navigare la classe String e
raggiungere il sorgente.
Bye Marco

 lunghezza massima sia il massimo valore di int ossia: 
2147483647
;
questo presuppone che una Stringa in memoria occupi circa 2 giga...... 
direi che è impossibile.... ripeto, dipende dall'implementazione del JDK
Kali

 lunghezza massima sia il massimo valore di int ossia: 
2147483647
;
Si', e' il limite teorico. Nella maggior parte dei casi, avrai un
OutOfMemoryError molto prima. ;-) 
-- 
Life's something u don't get out alive..
ObjectZone - 
http://space.tin.it/computer/csadun

 wrote in message news:3C19C9B8...@email.com...



 del sistema)
sicuramente, pero' in un altro thread su i.c.j. veniva anche detto che 
la VM (probabilmente proprio per decisione di implementazione) non 
lasciava che la memoria venisse occupata tutta da un oggetto... per cui 
come dice anche Cristiano, l'OutOfMemory ti arriverà mooolto prima di 
riempire la ram...
Kali

 OutOfMemoryError molto prima. ;-)
Perché? In String.java si legge
    private char value[];
Un array ha un numero massimo di elementi?
Ritornare un int sembra comunque sensato :), ma vorrei sapere se è
_esattamente_ il numero massimo di elementi di un array, oppure se è
solamente sembrato _sensato_ restituire un int come lunghezza di una
stringa.
ciao
tityrus

OutOfMemoryError molto prima. ;-) 
Come pura curiosità, ho fatto un test molto (veramente molto) grezzo e 
sono arrivato a valori dell'ordine di 2^24 caratteri.
-- 
Ciao
	Fabrizio C.

 Kali


 direi che è impossibile.... ripeto, dipende dall'implementazione del JDK
Una stringa, in quanto classe è limitata solo dal suo indice. Per me Marco
ha perfettamente ragione.
Ciò che è impossibile oggi è possibile domani.

Jigi wrote:

cio' che e' impossibile oggi lo descriviamo in teoria come un qualcosa 
che sarà possibile domani. La piccola prova di Fabrizio Camera lo dimostra.
Kali

 
E' il numero massimo (e, occhio, solo interi _positivi_). Cfr JLS 2ed.,
"10.4 Array access". 


 ..si, la JLS specifica il tipo dell'indice come intero, di conseguenza
Grazie per la risposta. In effetti la JLS non è tra le mie letture
preferite, anche se in questo caso era la prima cosa da guardare.
Tempo fa avevo posto un quesito (Soggetto:Package senza classi
(JBuilder vs javac)) che non ha avuto risposte. Confido sempre in te
per una risposta ;-)
Ripropongo qui sotto il testo del mio messaggio (del 19 ottobre):
 ------------------------------------------------------- 
Un package che non contiene né classi né interfacce, è un package?
Ovvero, al di la del fatto che non ha senso farlo, è lecito scrivere:
import mypackage.*;  // mypackage contiene solo sottopackages
?
La domanda nasce dal fatto che JBuilder (sia 4 che 5) consente di
compilare, mentre il javac no (da l'errore di compilazione "package
mypackage does not exist").
Chiaramente sarei portato a considerare il compilatore ufficiale come
riferimento, però non ho trovato nessun documento chiaro a riguardo, e
anzi in "The Java Language Specification" si legge:
If a package name is of the form Q.Id, then Q must also be a package
name (sezione 6.5.3.2).
Questo farebbe pensare che ha ragione JBuilder.
Il problema sembra irrilevante, in quanto importare un package che
contiene  solo sottopackages non ha senso, ma in realtà possiamo
vederla così: JBuilder consente di lavorare su sorgenti che possono
essere compilati solo con JBuilder, il suo compilatore non è standard.
Ad esempio mi sono trovato a lavorare su un'applicazione scritta da
altri, e mi tocca eliminare questi import inutili per renderla
compilabile con altri strumenti (ad es. Forte).
Chi può darmi delucidazioni a riguardo (possibilmente fornendo
riferimenti ufficiali chiari)?
Grazie
tityrus

 mypackage does not exist").
secondo me se crei la sottodir mypackage lui la vede e compila.... non 
ho provato...... ma penso sia quello che fa piu' o meno JBuilder...
Kali