- Vezetékes FÜLhallgatók
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Apple MacBook
- Nagyon nem szokványos módon ment tönkre egy ASML gép Kínában…
- Kutyának sem kellenek a 8 GB-os VGA-k?
- Házimozi belépő szinten
- Hardverkiállítás a hónap vége felé közeledve
- Fujifilm X
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- Dell notebook topic
Ú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?:))
- Vezetékes FÜLhallgatók
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Apple MacBook
- One otthoni szolgáltatások (TV, internet, telefon)
- Nagyon nem szokványos módon ment tönkre egy ASML gép Kínában…
- Nintendo Switch
- Kutyának sem kellenek a 8 GB-os VGA-k?
- Garmin topik
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- Huawei Watch GT 6 és GT 6 Pro duplateszt
- További aktív témák...
- MSI Katana GF76 - 17.3"FHD 144Hz - i5-11400H - 8GB - 512GB - Win11 - RTX 3050 Ti - MAGYAR
- 2027ig GYÁRI garancia Lenovo V14 / Ryzen3-7320 / 8gb DDR4 ram / 500gb NvMe SSD / WIN11
- Moza R5 bundle +brake kit + formula es wheel eladó
- i5 9600K GEFORCE RTX 2060 6GB DDR6 16GB RAM Gamer PC
- Xiaomi Redmi Note 12 Pro 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- DELL Thunderbolt TB16 Dock
- HIBÁTLAN Apple Watch Ultra 2 Natural Titanium 49mm -1 ÉV GARANCIA - 100% Akkumulátor, MS3220
- Dell D6000 univerzális dokkoló USB-C/ USB-A, DisplayLink & Dell WD15 (K17A) USB-C + 130-180W töltő
- BESZÁMÍTÁS! ASUS ROG STRIX RTX 3080 10GB videokártya garanciával hibátlan működéssel
- BESZÁMÍTÁS! 32GB (2x16) ADATA XPG Lancer RGB 7200MHz DDR5 memória garanciával hibátlan működéssel
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest



