مقدمة
لقد كتبت مؤخرًا شيئًا قد يكون قد فكر في الربط الوطني وفكرت في عدة طرق ، لكن الأداء غير معروف ، لذلك دعونا نختبره أدناه. دعونا نلقي نظرة على المقدمة التفصيلية معًا.
نموذج الرمز
اختبار الفئة العامة {list <string> list = new ArrayList <> () ؛ before public void init () {intstream.range (0 ، 100000). foreach ((index) -> {list.add ("str" + index) ؛}) ؛ } @org.junit.test public void test1 () {string ss = "" ؛ وقت بدء طويل = system.currentTimeMillis () ؛ لـ (String s: list) {ss += s ؛ } system.out.println (System.CurrentTimeMillis () - time) ؛ } @org.junit.test public void test2 () {string ss = "" ؛ وقت بدء طويل = system.currentTimeMillis () ؛ لـ (String s: list) {ss = ss.concat (s) ؛ } system.out.println (System.CurrentTimeMillis () - time) ؛ } @org.junit.test public void test3 () {StringBuilder ss = new StringBuilder () ؛ وقت بدء طويل = system.currentTimeMillis () ؛ لـ (String s: list) {ss.append (s) ؛ } system.out.println (System.CurrentTimeMillis () - time) ؛ } @org.junit.test public void test4 () {long startTime = system.currentTimeMillis () ؛ StringUtils.join (قائمة) ؛ System.out.println (System.CurrentTimeMillis () - TimeTime) ؛ } @org.junit.test public void test5 () {StringBuffer ss = new StringBuffer () ؛ وقت بدء طويل = system.currentTimeMillis () ؛ لـ (String s: list) {ss.append (s) ؛ } system.out.println (System.CurrentTimeMillis () - time) ؛ }}النوع الأول: 33809
النوع الثاني: 8851
النوع الثالث: 6
النوع الرابع: 12
النوع الخامس: 7
الأداء: StringBuilder>StringBuffer>StringUtils.join>concat>+
ثم قم بتحليله من مستوى الكود المصدر
StringBuilder:
تقوم كل سلسلة الربط بتوسيع صفيف Char الداخلي وينتج فقط سلسلة نهائية ، لذلك هذا هو الأكثر كفاءة
StringBuffer:
بالمقارنة مع StringBuilder ، لا يوجد سوى واحد أكثر متزامنة ، وبالتالي فإن الفرق ليس كبيرًا في حالة واحدة ملولبة.
StringUtils.oin:
يمكنك أن ترى أنه لا يزال يتم تنفيذه داخليًا مع StringBuilder ، لكن كل حلقة لديها فاصل إضافي للحكم ، لذلك فهو أبطأ قليلاً ، ولكن ليس كثيرًا ، وهو أمر يحجم في الوقت المناسب.
Concat:
يمكن ملاحظة أن كل اتصال سيولد سلسلة ، وبالتالي فإن الكفاءة منخفضة للغاية
+:
نظرًا لأنه عامل محمّل ، لا يمكن العثور على الرمز المصدر ، ولكن الكفاءة هي أدنى نسبة وفقًا للنتائج
لخص
ما سبق هو المحتوى الكامل لهذه المقالة. آمل أن يكون لمحتوى هذه المقالة قيمة مرجعية معينة لدراسة أو عمل الجميع. إذا كان لديك أي أسئلة ، فيمكنك ترك رسالة للتواصل. شكرا لك على دعمك إلى wulin.com.