- Geri Bátyó: Megint tahó voltam – SZEMÉLYISÉGFEJLŐDÉS
- eBay-es kütyük kis pénzért
- GoodSpeed: AMD Ryzen 9 9900X (100-100000662WOF)+ Samsung 990 PRO 2TB MZ-V9P2T0BW
- sziku69: Szólánc.
- gban: Ingyen kellene, de tegnapra
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- btz: Internet fejlesztés országosan!
- votlage71: Kábel menedzsment
- D1Rect: Nagy "hülyétkapokazapróktól" topik
Hirdetés
Ú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
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Hobby elektronika
- Ingyenes magyar EPG szerver észrevételek
- Vezetékes FEJhallgatók
- Azonnali fotós kérdések órája
- Milyen monitort vegyek?
- Újabb videón a Mafia: The Old Country
- Tesla topik
- Yettel topik
- EA Sports WRC '23
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- További aktív témák...
- Lenovo T480 i7- 8650u / HU bill! / 8Gb DDR4 / 256Gb Nvme SSD / IPS full HD/ újszerű állapot / Win11
- Dell Latitude 5590 / i5 8350u / IPS FHD 15,6" / 8GB DDR4 / 256Gb SSD / Win11
- Micron 1100 256GB 2,5" SSD-k
- DJI Avata 2 Fly More Combo (szinte új, 3 év garival)
- Új,bontatlan,dobozos, számlás,garanciás 7800X3D CPu.
- Akciós Windows 10 pro + Office 2019 professional plus csomag AZONNALI SZÁLLÍTÁS
- Bomba ár! Dell Latitude 5320 - i5-11GEN I 16GB I 256SSD I HDMI I 13,3" FHD Touch I Cam I W11 I Gari!
- Eladó karcmentes Realme 8 4/64GB / 12 hó jótállással
- Samsung Galaxy Tab A9+ 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- iKing.Hu - Samsung Galaxy S25 Edge Használt, újszerű állapotban 12 GB RAM / 512 GB tárhely
Állásajánlatok
Cég: FOTC
Város: Budapest