- Xiaomi 17 Ultra - jó az optikája
- Samsung Galaxy S25 - végre van kicsi!
- A belépőszintre érkezett a Xiaomi Redmi A7 Pro
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Apple iPhone 17 Pro Max – fennsík
- Olcsón ad sokat, de a minősége... Kukirin G2 Ultra teszt
- VoLTE/VoWiFi
- Tok buktatta le az iPad (2026) legfőbb újítását
- Milyen okostelefont vegyek?
- A Honor profi iPhone másolásban
Ú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.
-
TBG
senior tag
válasz
MrSealRD
#4239
üzenetére
Ez csak abban az esetben jelenthet gondot, ha több tízezres/százezres nagyságrendben "kallódnak" az objektumok. Ergó, a felhasználástól is függ, hogy az ember hogyan hegyezi ki a kódot. Illetve érdemes-e nagyon kihegyzeni. Mindenesetre ökölszabály, hogy ha tökmind1, akkor is a szebb, takarékosabb megoldást használjuk.
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Véleményes teszt bizonygatja mennyit ér a Macbook Neo 8 GB RAM-ja
- Horgász topik
- Milyen billentyűzetet vegyek?
- Komolyan odacsapna készülő AI gyorsítóival a Meta
- HDD probléma (nem adatmentés)
- Gyúrósok ide!
- Háztartási gépek
- sziku69: Szólánc.
- Motoros topic
- Luck Dragon: Asszociációs játék. :)
- További aktív témák...
- Honor 400 Pro 12/512GB Újszerű,Kártyafüggetlen,Dobozos,Tartozékaival. 1 Év Garanciával!
- ASUS GeForce RTX 4070 DUAL 12GB GDDR6X OC
- ASUS TUF A14 (2024) Ryzen AI 9 370HX / RTX 4060 / 32GB / 1TB / dobozos, megkímélt
- XPS 9530 15.6" FHD+ IPS i7-13700H RTX 4050 16GB 512GB NVMe ujjlolv IR kam gar
- Asus Zenbook 14-OLED-,2.8K - Ultra 7 155H,16GB/1TB SSD-Garancia!
- Honor Pad X9a 128GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! Asus B560M i5 11400 16GB DDR4 512GB SSD RTX 3060 12GB Formula Air Mesh G3 Adata 600W
- LENOVO GAMER BAZÁR - új lista (2026.03.14) - Legion Pro 7 (16IAX10H) RTX 5080
- AKCIÓ! KÉSZLETRŐL! Intel Core i5 14600K 64GB 6000MHz RAM 2TB Gen4 SSD RTX 5060 8GB FSP 750W
- Új és újszerű 17-18 Gamer, irodai, üzleti készülékek nagyon kedvező alkalmi áron Garanciával!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


