- Elmossa a Samsung a valóság és az AI-fantázia határát
- Búcsúkönnyek a Galaxy S21 utolsó fellépésén
- Okosóra és okoskiegészítő topik
- Milyen okostelefont vegyek?
- Android alkalmazások - szoftver kibeszélő topik
- Samsung Galaxy A26 - csak a szokásos
- Android szakmai topik
- Xiaomi 14 - párátlanul jó lehetne
- Telekom mobilszolgáltatások
- Apple Watch Sport - ez is csak egy okosóra
Ú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?:))
- Borderlands 4
- BMW topik
- Battlefield 6
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Elden Ring
- Építő/felújító topik
- Épített vízhűtés (nem kompakt) topic
- Elmossa a Samsung a valóság és az AI-fantázia határát
- Víz- gáz- és fűtésszerelés
- Elképesztő lemaradásban van az aktuális Loongson CPU-család
- További aktív témák...
- iKing.hu Apple iPhone 17 Pro 256GB Silver használt újszerű 100% akku 72 ciklus garanciás 2026.11.24
- Roborock S5 Max
- Apple iPhone 16 Pro 128GB Gold használt karcmentes 97% akku 293 ciklus Apple garancia 2027.02.28-ig
- Acer Predator Helios Neo 16 i9-13900HX, RTX 4070 (140W), QHD+ 165Hz brutális teljesítmény!
- BeQuite! System Power 9 700W 80 Plus Bronze
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- iPhone 14 Pro Max 256GB Space Black -1 ÉV GARANCIA -Kártyafüggetlen
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RTX 5070 Ti 16GB GAMER PC termékbeszámítással
- Új könyv: Harrari: Sapiens Rajzolt történelem
- AZONNAL KÉSZLETRŐL! Intel Core i5 14600K 32GB 6000MHz RAM 2TB Gen4 SSD RTX 5060 8GB FSP 750W
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest


