جاوا میں "+" آپریٹر اور اسٹرنگ بلڈر کے استعمال کے درمیان کارکردگی کا فرق ہے؟


جواب 1:

جاوا میں "+" آپریٹر اور اسٹرنگ بلڈر کے استعمال کے درمیان کارکردگی کا فرق ہے؟

کسی ایک لائن پر جیسے:

سٹرنگ سٹرنگ 1 = "ایک" + "دو"؛
سٹرنگ سٹرنگ 2 = نیا اسٹرنگ بلڈر ("ایک")۔ ضمیمہ ("دو"). ٹاسٹرنگ ()؛

کارکردگی میں کوئی فرق نہیں ہونا چاہئے۔ در حقیقت ، جاوا کے جدید ماحولیاتی نظام میں ، مرتب کے وقت پہلا درجہ بہتر ہوتا ہے۔ اس کو عملی شکل میں دیکھنے کے ل your ، اپنے پسندیدہ ڈیبگر کا استعمال کرتے ہوئے پہلے قدم کی کوشش کریں۔

تاہم ، اگر آپ کے الگ الگ خطوط پر تار لگانے والے تاروں یا ، کہتے ہیں تو ، لوپ میں:

سٹرنگ سٹرنگ 1 = ""؛
سٹرنگ بلڈر sb = نیا اسٹرنگ بلڈر ()؛

کے لئے (عددی i = 0؛ i <5؛ i ++) {
  سٹرنگ 1 = سٹرنگ 1 + آئ.ٹرک ()؛
  sb.append (i.tostring ())؛
}

سٹرنگ سٹرنگ 2 = sb.toString ()؛

پھر اسٹرنگ بلڈر کا استعمال زیادہ "موثر" ہوتا ہے اور بعض اوقات زیادہ پیچیدہ تار تیار کرنے کا ترجیحی طریقہ ہوتا ہے۔ جہاں تک میں جانتا ہوں ، فی الحال کوئی جاوا مرتب سٹرنگ بلڈر کو دہرانے کو بہتر نہیں بنائے گا۔


جواب 2:

مختصر جواب: ہوسکتا ہے ، لیکن زیادہ تر وقت اس کے بارے میں فکر کرنے کے قابل نہیں ہوتا ہے۔ قبل از وقت اصلاح سے زیادہ واضح کوڈ کو پسند کریں۔

جدید جے وی ایمز "+" کے ساتھ سٹرنگ کنٹینٹیشن کو بہتر بناسکتے ہیں اور اسے اسٹرنگ بلڈر میں تبدیل کرسکتے ہیں ، اور چونکہ وہ دیکھ سکتے ہیں کہ نتیجہ اخذ کرنے والا سٹرنگ کتنا لمبا ہوتا جارہا ہے ، وہ شروع میں ہی سٹرنگ بلڈر کو صحیح سائز مختص کرسکتے ہیں۔ اگر آپ پہلے سے طے شدہ سرنی والے سائز کا استعمال کرکے خود ہی ایک سٹرنگ بلڈر تیار کرتے ہیں تو ، بعد میں چاروں سرنی کو بڑھایا جانا پڑسکتا ہے ، جس میں ایک سرے کی کاپی بھی شامل ہوتی ہے ، لہذا یہ حقیقت میں زیادہ آہستہ ہوسکتی ہے۔

جاوا 9 کے بعد سے ، رن ٹائم کے وقت طے شدہ حکمت عملی کے ساتھ ، سٹرنگ کنٹریکشن بہت زیادہ بہتر ہے۔

اگر آپ بار بار کسی لوپ میں اسٹرنگ میں شامل ہورہے ہیں تو ، پھر شاید آپ سٹرنگ بلڈر کا استعمال کرکے غلطی نہیں کرسکتے ہیں ، لیکن اگر معلوم ہو تو اسے صحیح سائز پہلے سے مختص کردیں۔ لوپس کے باہر ، جب بھی زیادہ پڑھنے میں آسانی ہوگی تو "+" کے ساتھ چپکی رہیں؛ اور بھروسہ کریں کہ جے وی ایم ، یا جلد ہی آپ سے اصلاح کرنے میں بہتر ہوگا۔