Avatar ·

كفاءة التهيئة المزدوجة (Double Brace Initialization) في Java: هل تستحق الاستخدام؟

مرحبًا بالجميع! أنا مطور Java مبتدئ وقد صادفت مؤخرًا بناء جملة مثيرًا للاهتمام — التهيئة المزدوجة (Double Brace Initialization). تبدو موجزة جدًا، خاصة عندما تحتاج إلى إنشاء مجموعة وتعبئتها بسرعة. إليك مثال أراه كثيرًا في الأمثلة التعليمية: ```java Map map = new HashMap<>() {{ put("key1", "value1"); put("key2", "value2"); put("key3", "value3"); }}; ``` من ناحية، هذا مريح جدًا — لا حاجة لإنشاء كتلة كود منفصلة، أو تعريف متغير، ثم تعبئته باستخدام `put()`. كل شيء يتم في تعبير واحد. لكن السؤال الذي يقلقني: ما مدى كفاءة هذا؟ هنا يتم إنشاء فئة داخلية مجهولة (anonymous inner class)، وهذا يسبب تكاليف إضافية. قرأت على Stack Overflow أن هذا الأسلوب قد يكون ضارًا بالأداء وقد يؤدي حتى إلى تسرب الذاكرة (memory leaks) إذا تم استخدامه في مشاريع كبيرة. لكن كانت هناك تعليقات متناقضة كثيرة. البعض يقول إنه "سكر نحوي