Hirdetés
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Házimozi haladó szinten
- Canon MILC: EOS R és M topik
- Egyre inkább szoftverrel segítene a Core CPU-k teljesítményén az Intel
- HiFi műszaki szemmel - sztereó hangrendszerek
- Nem tetszik a PC-gyártóknak az Xbox új iránya?
- LG LCD és LED TV-k
- Apple MacBook
- Nos igen, ilyen is lehet egy notebook…
- Apple asztali gépek
Ú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?:))
- Formula-1 humoros
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Házimozi haladó szinten
- Canon MILC: EOS R és M topik
- Google Pixel topik
- Egyre inkább szoftverrel segítene a Core CPU-k teljesítményén az Intel
- E-roller topik
- Eredeti játékok OFF topik
- HiFi műszaki szemmel - sztereó hangrendszerek
- iPhone topik
- További aktív témák...
- Garmin Epix Pro (Gen 2) Sapphire Edition 51mm
- Xiaomi 15 Ultra 16/512GB Újszerű,Kártyafüggetlen,Dobozos,Tartozékaival. 1 év Garanciával!
- MacSzerez.com - 2021 MacBook Pro 16" Retina / M1 Max / 32GB RAM / 1TB SSD / Asztro
- SteelSeries Arctis Nova 7 Wireless Bolti ár:75k INGYEN FOXPOST
- Újszerű SteelSeries Arctis 7 2019 Edition Wireless Bolti ár:55k INGYEN FOXPOST
- BESZÁMÍTÁS! MSI X570 R5 5600X 32GB DDR4 512GB SSD RX 6800 16GB Kolink Unity Lateral ARG 750W
- Apple MacBook Air 13" M3 (2024) 16GB / 256GB asztroszürke
- Azonnali készpénzes Sony Playstation 5 lemezes és digitális felvásárlás személyesen/csomagküldéssel
- Windows 10 / 11 Pro Retail aktiváló kulcs Azonnal szállítással, számlával, garanciával!
- AKCIÓ! Lenovo Ideapad Gaming 3 15ACH6 notebook - R7 5800HS 16GB DDR4 1012GB SSD RTX 3050 4GB
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

