- 1. Java World Captulo 6 2http: // Gustavoal Benvenuti in una nuova edizione Javaworldb Forniamo benvenuto Di nuovo ai nostri amici del valore creativo Leo, benvenuto nella vita reale di nuovo!. ER In questa puntata parleremo un po ‘di aspettative nel settore dei computer. Molto fino a tutti coloro che sono a un passo o all’interno del mbito di entrepreneurs.l Ritorno alla certificazione, inizieremo ad entrare nell’API Java specializzato per l’input e l’output dei dati. Sì, ora puoi leggere che .txt con tutti i telfici con cui hai preso il Sbado e passarlo alla tua agenda sviluppata in Java. .B Intereremo a persistere i nostri oggetti con il modello di serializzazione che ci propone nativamente Java, un profitto L in linea di massima di principio per non dipendere da un database, ma che avrà un valore aggiunto quando lavoriamo invio di messaggi tramite Internet con questo stesso metodo 😉 G Siamo già nel conto alla rovescia nelle edizioni Javaworld, ci sono solo 4 capitoli. Approfitta di estrarre dubbi, inviando commenti o via e-mail (i dati possono essere ottenuti nei blog). PO prendiamo l’occasione per ringraziare il sostegno ricevuto dalla comunità e dalla buona ondata per andare avanti con questo progetto..c Grazie a tutto. Il personale del rivista Javaworldm
2. 3java world Captule 6 H La classe T String T Come abbiamo menzionato nelle catture precedenti, la classe di stringa non può essere modificata. Quindi, come possiamo associare diverse stringhe alla stessa variabile di tipo stringa? P String è un oggetto immutabile: / immutabile quella parola. E cosa significa? Semplice, esattamente che un oggetto stringa non può modificare il suo valore, ma in nessun momento è menzionato che una variabile stringa non può indicare un altro oggetto. V Vedremo alcuni esempi per capirlo meglio: a L Classe pubblica TestString_001 {Static Public Void principale (stringa args) {o string s1 = nuova stringa (“hello”); r string s2 = “javaworld”; c system.out.println (S1); R system.out.println (S2); E s1 = s1 + “-“; a s2 = s2.touprase (); // passa a Maysculas the t catena system.out.println (S1); I System.out.Println (S2); v system.out.println (s1.concat (S2)); // concatena due catene. È equivalente a S1 + S2 o. String S3 = S2; B}} l o ghola sjavaworld phola-javaworld ohola-javaworld t. Ora potresti chiederti ma non ha detto che una stringa era immutabile? Sì, è, ma ribadisce, nessuno dice che una variabile stringa c non può fare riferimento a un altro oggetto. O graficamente vedi la mappatura della memoria: M 3. Java World Capture 6 4h 0000 000b 001F0020 002C 002D – 00410042 – 0051 T 002C 002D – 00410042 – 0051 T ZIO JAVAWORLDHOLA-JAVAWORLD HI JAVAWORLD TP: S1 S2System.out.Println (S1.Concat (S2); / Ciao javaworld / g u1 = nuova stringa (“hello”); s1s2s3s s2 = “javaworld”; Ciao-javaworld javaworld t s1 = s1 + “-“; A s2 = s2.touprase (); V o ogni Carta all’interno di una stringa è in formato UFT-16. Le posizioni di memoria mostrate sopra sono Olola per esemplificare. Il comportamento dello storage è diretto dal JVM in combinazione con il sistema operativo. Quando le variabili vengono inizializzate, i valori vengono assegnati Ciao e Javaworld, qui è quando creiamo i nostri primi due oggetti della stringa di tipo. E Quindi, a S1 concateniamo – e salviamo il risultato nella stessa variabile, che fa generare un nuovo oggetto e rr che aggiorna il riferimento al punto a questo. O S2 trasformato in Mayscule. Ancora una volta viene generato un altro oggetto e memorizziamo il riferimento in S2. L e infine, generaremo un’uscita sullo schermo S1 + S2. In questo caso, è anche generato un nuovo oggetto, con l’eccezione che il riferimento non cattura nessuno. Una volta sullo schermo questa variabile è un candidato da rilasciare dalla spazzatura al collezionista. Come potrebbero aver notato, in nessun momento nessun oggetto viene modificato, ma se hanno cambiato i riferimenti B di S1 e S2. L Per LTIMO, quando creiamo un nuovo oggetto (S3), e assegniamo il valore di S2, non viene creato un nuovo oggetto, viene assegnata la stessa posizione di memoria. Tempo di generare una nuova catena, viene generato un nuovo oggetto stringa, sempre. Nessuna eccezione alimentare è Scuando assegnando il valore di una variabile stringa all’altra. In questo caso, entrambi puntano alla stessa posizione PDE Memory.O T. String and Memory C Poiché una catena è qualcosa di così comune, e per essere in grado di ottimizzare la memoria, il JVM si riserva un’area speciale di memoria o la cosiddetta piscina costante di stringa (stringa di costanti). Quando il compilatore trova un letterale di tipo stringa, verificamo sulla banca se c’è un’altra catena identica. Se uno è uno, riferito direttamente a questo, ma, viene creato un nuovo oggetto stringa. La classe stringa contiene il modificatore di non accesso. Ciò significa che non è possibile scrivere la classe.Creazione di catene C’è una sottile differenza tra la creazione di una stringa da un oggetto letterale e un oggetto: 4. 5Java World Captulo 6String S1 = “Javaworld” H crea una variabile di riferimento (S1) e un oggetto stringa, che viene memorizzato nella costante stringa banca e associata a S1. t string s2 = nuova stringa (“javaworld”) T viene creata una variabile di riferimento (S2). Mentre utilizziamo la nuova parola chiave, un oggetto String è stato creato al di fuori della banca di Contanti P Stringa e S2 Riferimenti. Quindi, il Javaworld Letterale è inserito nella banca. : MTS della classe stringa / stringa La MS MS utilizzata della classe String è denominata: / Tipo di mtdodesscripcin V Valore di ritorno L Charchart (Int Indice) Restituisce il carattere situato nell’indice specificato. o stringconcat (stringa str) aggiunge una stringa alla fine di un altro (equivalente all’utilizzo +). R Boolean EqualsignoreCase (stringa Altro Tring) Indica se due catene sono le stesse, senza prendere in considerazione Maysculas. C int Lunghezza () restituisce il numero di caratteri che la catena contiene. R stringreplace (char personaggio, charremplaza ogni caratteristica con la funzione. E FeatureNow) a StringSubbstring (Int HomeIndice, Int Ampleindice) restituisce una nuova stringa con i personaggi composti da T-Home a Finisti. I StringTolowercase () converte i personaggi in Minscula. v StringToString () restituisce il valore di una stringa (dato che è una stringa, viene restituita a S o stessi). . String Pouppercase () converte i caratteri in Mayscula. Trim String () Elimina gli spazi vuoti all’inizio e alla fine della catena. B Per SM Information può consultare API Java LHTTP: //java.sun.com/j2se/1.4.2/docs/api/java/lang/string.html OG Shay che evidenziando che il tipo di stringa ha un metodo Ltgth (), E gli array hanno un parametro lunghezza.pot stringbuffer e stringbuilder. Quando useremo molte catene che possiamo usare le classi java.lang.stringbuffer o java.lang.stringbuilder. A differenza della corda C, con la quale abbiamo generato diverse catene, saranno memorizzate nella banca costante delle stringhe, queste nuove classi non vengono memorizzate in questo ultimo, ma sfruttano lo stesso spazio di memoria. M stringbuffer vs. StringBuilder La classe StringBuffer è stata incorporata da Java versione 5. Ha esattamente la stessa API come Stringbuilder, a meno che non sia senza discussione (multi-telefono con sicurezza). In altre parole, i metodi non sono sincronizzati. Java consiglia quando possibile, utilizzare StringBuilder, poiché è molto più veloce della sua sorella StringBuffer. Solo Stringbuilder non è thread-safe.Stringbuffer se è thread-safe.ambes Condividi la stessa API.Quando è necessario essere al sicuro, useremo StringBuffer. 5. Java World Captulo 6 6 liutilizzando Stringbuffer e Stringbuilder HT String S1 = “Javaworld”; // Una stringa viene aggiunta alla stringa S1 + = “Bank. Andiamo da MS”; // viene generata una nuova stringa e il riferimento Il precedente è perso TP // A StringBuffer è stato creato (non va alla stringa costante banca) StringBuffer S1 = New StringBuffer (“Javaworld”) ;: S1.Append (“. Vieni da MS”); // È modificato dallo stesso oggetto (non viene creata nessuna nuova stringa) / Metodi importanti in Classi di StringBuffer e Stringbuilder / G Valore di ritorno MODOSORK (“Vuoi essere”); s s.Append (“A SCJP!”); (Non è necessario prendere il // Volevo essere un riferimento SCJP! T in modo che il cambiamento sia fatto). v StringBuffer / Elimina (Int Home, Noelimine Il sottocadeno all’interno di StringBuffer S = New StringBuffer (“Voglio essere un ENT StringBuirderint) della catena dell’oggetto SCJP!”); S.Delete (10, 13); // Voglio a partire dalla posizione di avviare lo SCJP! l positivo fine. StringBuffer / Insert (INDINDEX, se si inserisce una nuova stringa (S) StringBuffer S = newb StringBuffer (“I Want SCJP”); Stringbuilderstring s) da Posicin S.insert (7, “essere A”); E indicato dall’indice all’interno // Voglio essere uno SCJPR della catena dell’oggetto. o StringBuffer / Reverse () Ninoviet la catena. StringBuffer S = New StringBuffer (“PJCS”); l stringbuilder s.revert (); // SCJP a String Bastering () Nodevuelve una stringa con StringBuffer S = New StringBuffer (“SCJP”); . Valore dell’oggetto Stringa s1 = s.testring; // SCJP BL è possibile che siano sull’esame con metodi imperfetti, questi sono semplicemente risolti a destra a sinistra a sinistra, e il risultato di un metodo, è l’oggetto che il secondo.GS utilizza un esempio di equivalenze: P StringBuffer S = Nuovo StringBuffer (“A SCJP”); o s.reverse (). Elimina (4, 7) .Apppend (“… a uno che?”). Inserisci (0, “Voglio essere un”); t system.out.println (s); // Voglio essere un PJCS … uno? StringBuffer S2 = New StringBuffer (“A SCJP”); c s2.reverse (); o s2.Delete (4, 7); S2.append (“… uno che?”); M s2.insert (0, “Voglio essere un”); System.out.Println (S2); // Voglio essere un PJCS … uno?StringBuffer e Stringbuilder, proprio come la stringa, non richiedono alcuna importazione. 6. 7 Java World Capt