1. الغرض من القيام بهذا:
1. الكفاءة (الأهم)
2. قابلية القراءة ، من السهل الحفاظ عليها في المرحلة اللاحقة. (مهم أيضا)
2. متطلبات تحسين الكود:
1. تقليل حجم الكود.
2. تحسين كفاءة الجري للرمز.
3. تحسين الكود الشائع:
1. حاول إعادة استخدام الأشياء:
خاصة إعادة استخدام كائنات السلسلة. الربط السلسلة الأكثر شيوعًا:
عند مواجهة المسح المتكرر للسلسلة. تذكر استخدام StringBuilder/StringBuffer
على سبيل المثال:
قائمة ArrayList <String> ؛ StringBuilder Builder = new StringBuilder () ؛
السبب: لا تحتاج أجهزة Java Virtual فقط إلى قضاء وقت في توليد الكائنات ، ولكن أيضًا تحتاج إلى قضاء وقت في معالجة الكائنات وإعادة التدوير.
2. استخدم المتغيرات المحلية حيثما أمكن:
يتم إنشاء المتغيرات المحلية في المكدس ، ويتم إنشاؤها بسرعة وتختفي تلقائيًا بعد الاستخدام ، دون جمع القمامة الإضافي.
يتم إنشاء المتغيرات الثابتة ، ومتغيرات المثيل ، وما إلى ذلك في الكومة ، وسرعة الإنشاء بطيئة ، وتعتمد أيضًا على آلية جمع القمامة Java للمعالجة.
3. أغلق التدفق في الوقت المناسب:
في تطوير برنامج Java ، بعد اكتمال عمليات الإدخال/الإخراج وقاعدة البيانات ، يجب أن تتذكر إغلاق التدفق.
السبب: عدم إغلاق التدفق يمكن أن يسبب النفقات العامة الكبيرة للنظام وقد يكون له عواقب وخيمة على البيانات.
4. استخدم التحميل كسول
التحميل كسول: قم بإنشاء هذا الكائن فقط عند استخدامه.
على سبيل المثال:
بادئة السلسلة = "GEBI" ؛
استبدال:
if ("laowang" .equals (name)) {String prefix = "GEBI" ؛5. تجنب استخدام المحاولة ... التقاط الحلقات ، استخدم المحاولة ... التقاط الحلقة خارج الحلقة
6. BRAY ... يجب ألا يكون الصيد كبيرًا جدًا.
لا تضع كل الرمز غير المجدي ، أي أن الاستثناء لن يتم إلقاؤه في المحاولة ... Catch Block ، وتقليل حجم المحاولة ... Catch Code Block.
ضمان قابلية القراءة والصيانة والمتانة للرمز.
7. حاول تجنب إنشاء إشارات إلى الكائنات داخل الحلقة.
خاصة عندما يكون حجم الدورة الدموية كبيرة.
بينما (I <1000) {Object = new Object () ؛يوصى بتعديله إلى:
Object = NULL ؛
في كل مرة يكون الكائن الجديد () جديدًا ، يشير مرجع كائن كائن إلى كائن الكائن.
عندما يكون هناك العديد من الحلقات ، على سبيل المثال ، النوع الأول ، فإن JVM سيقوم بإنشاء 1000 إشارة إلى الكائنات ، في حين أن النوع الثاني يحتوي فقط على مرجع كائن واحد في الذاكرة. هذا يحفظ مساحة الذاكرة بشكل كبير.
8. لا تستخدم المتغيرات الثابتة في الإرادة.
عندما تتم الرجوع إلى كائن بواسطة متغير ثابت ثابت ، فإن جامع القمامة Java لن يقوم بتنظيف ذاكرة الكومة التي يشغلها الكائن.
لا يتم إصدار ذاكرة الكومة التي يشغلها المتغير الثابت حتى يوجد البرنامج الذي يوجد فيه المتغير. وهذا هو ، دورة الحياة المتغيرة ثابتة = دورة حياة الطبقة.
9. لا تنشئ بعض الكائنات غير المستخدمة ، ولا تستورد بعض الفصول غير المستخدمة.
10. استخدم تدفقات I/O المخزنة:
يمكن أن تحسن تدفقات الإدخال/الإخراج المخزنة بشكل كبير كفاءة الإدخال/الإخراج. BufferedWriter ، BufferredReader ، BufferedInputStream ، BufferedOutputStream.
11. تحويل بيانات التفاف إلى سلاسل لاستخدامها: tostring
عدد صحيح i = 1 ؛
تحويل بيانات التغليف إلى ترتيب سرعة طريقة السلسلة:
i.toString> string.valueof (i)> "" + i
12. خريطة التبادل الكفاءة: إدخال> مفاتيح
// entrySet () لـ (الإدخال <string ، string> intrad: entryset ()) {string key = entry.getKey () : " + قيمة) ؛}13. حول اجتياز مجموعة ITerator و Foreach ().
مقدمة في الخوارزمية تقول: تهدف الخوارزميات إلى تحسين كفاءة المساحة وكفاءة الوقت. ولكن في كثير من الأحيان لا يمكن أن يتعايش الزمان والفضاء.
كفاءة الوقت: ايتراتور> foreach ()
قابلية قراءة الكود: foreach ()> ايتراتور
// مجموعة ITerator <interning ، string >> entrySet = map.entryset () ؛ string> entry = iter.next () ؛
مقابلة:
// foreach () لـ (الإدخال <string ، string> الإدخال: entryset ()) {string key = entry.getKey () : " + قيمة) ؛}أنا شخصياً أعتقد أنه من المستحسن استخدام Iterator لاجتياز المجموعة عند معالجة البيانات الكبيرة.
ومع ذلك ، بالنسبة لمعالجة البيانات الصغيرة ، لا يزال يستخدم foreach () لقابلية القراءة والصيانة لاحقًا.
يجب أن يتقن كلاهما عند استخدامها مجتمعة.