10 cose che ogni programmatore Java dovrebbe conoscere sullo String su Infocampus

Dato l'uso intensivo di Java String in quasi tutti i tipi di progetti, diventa ancora più importante conoscere i dettagli sottili di String. Sebbene io abbia condiviso molti articoli relativi alle stringhe già qui in Javarevisited, questo è uno sforzo per mettere insieme alcune funzionalità di String. In questo tutorial vedremo alcuni punti importanti su Java, che vale la pena ricordare. È anche possibile consultare le mie domande precedenti Java avanzate post 10 per saperne di più su String.

Anche se ho cercato di coprire molte cose, ci sono sicuramente poche cose che potrei aver perso; per favore fatemi sapere se avete qualche domanda o dubbio sulla funzionalità java.lang.String e cercherò di risolverli qui.

1) Le stringhe non sono terminate con null in Java.

A differenza di C e C ++, in Java non termina con carattere null. Invece sono Object in Java e supportati dall'array di caratteri. È possibile ottenere l'array di caratteri utilizzato per rappresentare in Java chiamando al metodo Charharray () della classe java.lang.String di JDK.

2) Le stringhe sono immutabili e definitive in Java

Le stringhe sono immutabili in Java, significa che una volta creato non è possibile modificare il contenuto di String. Se lo modifichi usando toLowerCase (), toUpperCase () o qualsiasi altro metodo, risulta sempre nuovo. Dato che è definitivo, non c'è modo che nessuno possa estendere o sovrascrivere alcuna funzionalità. Ora, se sei perplesso, perché String è immutabile o definitivo in Java. controlla il link.

3) Le stringhe sono mantenute in String Pool

Come ho detto in precedenza, la classe speciale in Java e tutti i letterali, ad es. "abc" (tutto ciò che è racchiuso tra virgolette sono letterali in Java) viene mantenuto in un pool String separato, una posizione di memoria speciale all'interno della memoria Java, più precisamente all'interno di PermGen Space. Ogni volta che crei un nuovo oggetto utilizzando il letterale, JVM controlla prima il pool di stringhe e se un oggetto con contenuto simile è disponibile, che lo restituisce e non crea un nuovo oggetto. JVM non esegue il controllo del pool di stringhe se si crea un oggetto utilizzando un nuovo operatore.

4) Utilizzare i metodi Uguali per confrontare String in Java

La classe di stringhe esegue l'override equivale al metodo e fornisce un'uguaglianza di contenuto, basata su caratteri, caso e ordine. Quindi, se vuoi confrontare due oggetti, per verificare se sono uguali o meno, usa sempre il metodo equals () invece dell'operatore di uguaglianza. Come nell'esempio precedente, se usiamo il metodo equals per confrontare gli oggetti, saranno uguali tra loro perché contengono tutti gli stessi contenuti.

5) Usa il metodo indexOf () e lastIndexOf () o matches (String regex) per cercare all'interno di String

la classe in Java fornisce un metodo conveniente per vedere se un carattere o un sotto- o un modello esiste nell'oggetto corrente. Puoi usare indexOf () che restituirà la posizione del carattere o, se esiste nell'oggetto corrente o -1 se il carattere non esiste in. lastIndexOf è simile ma cerca dalla fine. .match (regex) è ancora più potente, che ti permette di cercare all'interno di un pattern di espressioni regolari.

6) Usa Sub per ottenere una parte di in Java

Java fornisce un altro utile metodo chiamato sub (), che può essere usato per ottenere parti di. in pratica si specifica l'inizio e l'indice finale e il metodo substring () restituisce il carattere da quell'intervallo. L'indice parte da 0 e passa a 1. A proposito .length () restituisce il numero di caratteri in String, inclusi spazi bianchi come tabulazione, spazio. Un punto che vale la pena ricordare qui è che il sottotitolo è anch'esso supportato dall'array di caratteri, che viene usato dall'originale. Questo può essere pericoloso se l'oggetto originale è molto grande ed è molto piccolo, perché anche una piccola frazione può mantenere il riferimento dell'array completo e impedisce che venga trucchiata dalla garbage collection anche se non vi sono altri riferimenti per quel particolare.

7) "+" è sovraccarico per la concatenazione di stringhe

Java non supporta l'overloading dell'operatore, ma è possibile utilizzare l'operatore speciale e + per concatenarne due. Può anche essere usato per convertire int, char, long o double per convertirli semplicemente concatenando con vuoto ". Internamente + è implementato usando StringBuffer prima di Java 5 e StringBuilder da Java 5. In poi porta anche l'uso di StringBuffer o StringBuilder per manipolando.

8) Usa trim () per rimuovere gli spazi bianchi da

Java fornisce il metodo trim () per rimuovere lo spazio bianco da entrambe le estremità. Se trim () rimuove gli spazi bianchi, restituisce un nuovo, altrimenti restituisce lo stesso. Insieme a trim () fornisce anche replace () e replaceAll () metodo per la sostituzione di caratteri da. Il metodo replaceAll supporta anche le espressioni regolari.

9) Usa split () per la divisione usando l'espressione regolare

Java è ricco di funzionalità. ha metodi come split (regex) che possono assumere qualsiasi forma di espressione regolare e dividere il basato su quello. particolarmente utile se si ha a che fare con file separati da virgola (CSV) e si desidera avere una parte individuale in una matrice.

10) Non memorizzare dati sensibili

pongono rischi per la sicurezza se utilizzati per la memorizzazione di dati sensibili come password, SSN o altre informazioni sensibili. Dato che è immutabile in Java, non è possibile cancellare i contenuti e poiché sono mantenuti in pool (in caso di stringhe letterali) rimangono più a lungo nell'heap Java, il che espone il rischio di essere visti da chiunque abbia accesso alla memoria Java, come leggere dalla memoria discarica.