- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Videón mutatják meg a Nothing tervezői a Phone (4a) külső újdonságait
- MWC 2026: telefonból kivehető akciókamerát hoz az Ulefone RugOne
- Megkaptuk az első hivatalos fotókat a Honor Magic V6-ról
- Tényleg kicsit más lesz a Xiaomi 17 Ultra európai különkiadása
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- One mobilszolgáltatások
- Xiaomi 15T Pro - a téma nincs lezárva
- Sötétvörös iPhone 18 Pro, ezüst-fekete iFold?
- MWC 2026: telefonból kivehető akciókamerát hoz az Ulefone RugOne
- Hivatalos a OnePlus 13 startdátuma
- Android alkalmazások - szoftver kibeszélő topik
- Megerősítést kapott a kompakt csúcsmobil OnePlus 15T érkezése
- EarFun Air Pro 4+ – érdemi plusz
- Mobil flották
Új hozzászólás Aktív témák
-
modder
aktív tag
válasz
MrSealRD
#4239
üzenetére
Esküszöm, nem értem, mit akarsz mondani Superhun válaszára.
De pár tény:
1) A JVM k*rva okos és tele van optimalizációval. Memória allokációnak alig van költsége, persze sok kis objektum lassíthatja a GC-t. Megoldás: arra az objektumra ne veszítsük el a referenciát, amit újra fogunk használni. Ennek megkönnyítésére szoktak memory poolokat implementálni Javában úgy, ahogy C++-ban is. De ezeket elég speckó esetekben szokták használni, amikor a sebesség van mindenek felett.
2) literálokra referencia mindig ugyanarra a memóriaterületre mutat. for() { String s = "nyorr"; } nem fog új objektumot létrehozni minden egyes iterációban
3) Olyan mikro-optimalizációról beszélünk, aminél egy adatbázis lekérdezés nagyságrendekkel lassabb: semmi értelme gondolkodni rajtaCiklusban String összefűzést StringBuilderrel, mert azt a compiler tudtommal nem ismeri fel, ellenben a "egy" + "ketto" + $valami.toString; kóddal, amit StringBuilderre cserél (vagy StringBuffer, most hirtelen nem emlékszem, melyik a thread-safe)
Nem látom értelmét String helyett StringBufferben tárolni a stringet.
Szerk.:
Közben rájöttem, mit akartál mondani, de elég veszélyes. Ha Stringbuilderben tárolod a stringeket, akkor a StringBuilder mutable, és olyan helyen is megváltoztathatod a String értékét, ahol nem akarod. pl.:StringBuilder strTime = getTimeInString();
page1.setLastVisited(strTime);majd később:
StringBuilder strTime = getTimeInString();
page2.setLastVisited(strTime);no shit, lastVisited szintén frissült page1-re, mert ugyanaz az objektum. Nem hiába találták ki, hogy a String immutable.
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Gamer PC-Számítógép! Csere-Beszámítás! R7 5700 / RTX 2080Ti 11GB / 16GB DDR4 / 1TB Nvme SSD
- DOKKOLÓ BAZÁR! Lenovo, HP, DELL és egyéb más dokkolók (TELJES SZETTEK)
- 220 - Lenovo LOQ (15ARP9) - AMD Ryzen 7 7435HS, RTX 4070
- Dobozos Új Dell Xps 15 9530 i7 13620h 16gb ram 1tb ssd intel uhd graphics+ Intel Arc A370M
- HIBÁTLAN iPhone 12 64GB White-1 ÉV GARANCIA -Kártyafüggetlen, MS4604, 100% AKKSI
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

