Rumah >Java >javaTutorial >Adakah Ungkapan Lambda Sentiasa Mencipta Overhed Timbunan Ketara di Jawa?
Heap Space dan Penilaian Ungkapan Lambda
Membalas koleksi menggunakan sintaks lambda Java 8 menimbulkan kebimbangan tentang potensi overhed memori berbanding dengan sintaks gelung tradisional . Dalam kes ini:
myStream.forEach(item -> { // do something useful }); // Equivalent Old Syntax: myStream.forEach(new Consumer<Item>() { @Override public void accept(Item item) { // do something useful } });
Adakah Ungkapan Lambda Mencipta Objek Timbunan pada Setiap Seruan?
Ya, ungkapan lambda berpotensi mencipta tika kelas tanpa nama. Walau bagaimanapun, tingkah laku adalah khusus pelaksanaan. JVM Oracle biasanya mencipta singleton untuk ekspresi lambda yang tidak menangkap nilai.
Penggunaan dan Prestasi Memori
Mencipta objek timbunan boleh memberi kesan kepada prestasi dan penggunaan memori, terutamanya apabila berurusan dengan struktur data yang besar dan kompleks. Walau bagaimanapun, tahap overhed ini bergantung kepada beberapa faktor:
Sekiranya Anda Lebih Suka Tradisional Gelung?
Menggunakan gelung tradisional untuk lelaran ke atas struktur data berbilang peringkat yang besar mungkin masih diutamakan dalam sesetengah kes, terutamanya jika ungkapan lambda menangkap objek kompleks atau besar. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa:
Atas ialah kandungan terperinci Adakah Ungkapan Lambda Sentiasa Mencipta Overhed Timbunan Ketara di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!