Hirdetés
- OLED TV topic
- Kormányok / autós szimulátorok topikja
- Mégis meglepi egy új GeForce-szal a rajongókat az NVIDIA?
- Mindenféle könyves (és olvasós) Off topic
- Milyen TV-t vegyek?
- Szünetmentes tápegységek (UPS)
- Dell notebook topic
- Apple MacBook
- Fejhallgató erősítő és DAC topik
- Először beszélt bővebben az új Xbox konzolról a Microsoft
Ú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?:))
- Azonnali fáradt gőzös kérdések órája
- Világ Ninjái és Kódfejtői, egyesüljetek!
- Facebook és Messenger
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Milyen okostelefont vegyek?
- Allegro vélemények - tapasztalatok
- OLED TV topic
- Nintendo Switch 2
- gerner1
- Szívós, szép és kitartó az új OnePlus óra
- További aktív témák...
- PlayStation 5 Slim 1TB, makulátlan állapotban, 6 hó gyári garanciával, Bp-i üzletből eladó!
- BESZÁMÍTÁS! Gigabyte Z790 i7 14700KF 64GB DDR5 1TB SSD RTX 5070Ti 16GB LIAN LI LANCOOL 207 850W
- BESZÁMÍTÁS! Asus B650M R5 7600X 32GB DDR5 1TB SSD RTX 5060Ti 16GB Lian Li Vector V100R RGB TG 650W
- BESZÁMÍTÁS! Gigabyte B650M R7 8700F 64GB DDR5 1TB SSD RX 7800 XT 16GB LianLi VectorV100R RGB TG 750W
- PC Játékok
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RTX 5070Ti 16GB GAMER PC termékbeszámítással
- Új Acer Nitro V15 FHD IPS 144Hz Ryzen7 7735HS 16GB DDR5 512GB SSD Nvidia RTX 4060 8GB Win11 Garancia
- Beszámítás! Asus TUF A17 FA707RR FHD Gamer notebook - R7 6800H 16GB DDR5 512GB SSD RTX 3070 8GB W11
- LG 32GS95UV - 32" OLED / UHD 4K / 240Hz - 480Hz & 0.03ms / 1300 Nits / NVIDIA G-Sync / AMD FreeSync
- ÚJ/BONTATLAN Microsoft Surface Laptop 7 X Elite 16GB 512GB
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

