- MWC 2026: Meglepően jó áron jön a kicsi, de erős, illetve a nagy és fotós Xiaomi
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Android szakmai topik
- Samsung Galaxy A55 - új év, régi stratégia
- Hatodik bétánál jár a Galaxy S25
- Apple iPhone 17 - alap
- Fotók, videók mobillal
- Realme GT Master Edition - mestermunka
Új hozzászólás Aktív témák
-
disy68
aktív tag
válasz
Csaby25
#10908
üzenetére
Írnak többmindent is, de ez a válasz, ahol a generált kódot megnézte a válaszoló.
A String osztály java alatt immutable, azaz értékadás után az objektum értéke nem változtatható. E miatt a String összefűzés
String concat = "first" + " " + "last";
4 String objektum létrejöttét jelentené.Erre rakták bele java 8 óta a fordítóba, hogy ahol ilyen található, azt optimalizálja. A String összefűzéseket helyettesíti StringBuilder-rel, ezért nem fog létrejönni annyi String objektum.
Vannak még egyéb String-ekkel kapcsolatos optimalizációk, amiket a fordító/futtató környezet csinál/alkalmaz, pl. a válaszokban említett internal pool, ahol kvázi cache-elve vannak String objektum példányok, java 8-as updattel jött a G1 GC-be, hogy tud deduplikálni String-eket. Java 9-ben pedig jött egy olyan, hogy azokat a szövegeket, amiket lehet, ISO-8859-1/Latin-1 kódolással tárolja a JVM UTF-16 helyett (1 vs 2 byte/karakter).
>javap -c Test Compiled from "Test.java" public java.lang.String makinStrings(); Code: 0: ldc #5; //String Fred 2: astore_1 3: new #6; //class java/lang/StringBuilder 6: dup 7: invokespecial #7; //Method java/lang/StringBuilder."<init>":()V 10: aload_1 11: invokevirtual #8; //Method java/lang/StringBuilder.append: (Ljava/lang/String;)Ljava/lang/StringBuilder; 14: ldc #9; //String 47 16: invokevirtual #8; //Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder; 19: invokevirtual #10; //Method java/lang/StringBuilder.toString:()Ljava/lang/String; 22: astore_1 23: aload_1 24: iconst_2 25: iconst_5 26: invokevirtual #11; //Method java/lang/String.substring:(II)Ljava/lang/String; 29: astore_1 30: aload_1 31: invokevirtual #12; //Method java/lang/String.toUpperCase:()Ljava/lang/String; 34: astore_1 35: aload_1 36: invokevirtual #13; //Method java/lang/String.toString:()Ljava/lang/String; 39: areturn
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- PlayStation 5
- Hosszú premier előzetest kapott az Arknights: Endfield
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- MWC 2026: Meglepően jó áron jön a kicsi, de erős, illetve a nagy és fotós Xiaomi
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Fejhallgató erősítő és DAC topik
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Klaus Duran: RCS
- Assetto Corsa Rally
- Építő/felújító topik
- További aktív témák...
- Apple iPhone 14 Pro Max 256GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! Gigabyte B660M i5 12400F 32GB DDR4 512GB SSD RTX 3070 8GB Kolink Observatory HF 750W
- ASUS RTX 5070 12GB GDDR7 PRIME OC - Új, 3 év garancia - Eladó!
- BESZÁMÍTÁS! ASRock B550 R5 5600 16GB DDR4 512GB SSD RX 6600 XT 8GB Zalman i3 Edge FSP 700W
- BESZÁMÍTÁS! ASRock B450M R5 5600 16GB DDR4 512GB SSD RTX 3070 8GB SilentiumPC Signum SG1 750W
- 222 - Lenovo LOQ (15IRX10) - Intel Core i5-13450HX, RTX 5050
- Dell XPS 13 9300 i7-1065G7 8GB 1000GB FHD+ 500nit! 1 év garancia
- BESZÁMÍTÁS! Gigabyte B760M i5 14600KF 32GB DDR4 512GB SSD RTX 3070 8GB Lian LI LANCOOL 207 750W
- BESZÁMÍTÁS! ASRock B450M R5 5600X 16GB DDR4 512GB SSD RTX 4060 8GB Zalman S2 TG Corsair 550W
- LENOVO ThinkCentre M93p (SFF)i5-4570,4GB DDR3,500GB SATA3 HDD,DVD,WIN10
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

