PDA

View Full Version : String & StringBuffer



webdeveloper
پنج شنبه 25 تیر 1383, 20:02 عصر
سلام
فرق بین String و StringBuffer چیه؟ من درست نفهمیدم...
:?:

Inprise
جمعه 26 تیر 1383, 01:19 صبح
عزیز برادر ، محفظهء اشیائی از نوع String نمیتونه از جریانها یا کنسول یا فایل ، ورودی های قابل پردازش دریافت کنه ، در حالیکه StringBuffer میتونه . String ابزاری برای نگهداری رشته ها است و StringBuffer ابزاری برای فرآیندهای پردازش رشته ای ؛ راهنمای SDK به تفصیل در این مورد توضیح داده .

موفق باشی

webdeveloper
جمعه 26 تیر 1383, 08:51 صبح
ببینید مگه نه اینکه طول String باید ثابت باشه و نشه روش پردازش کرد. پس چرا عبارت زیر به خوبی انجام میشه؟


String test = "This is a test";
test = test + "This is the new test";

Inprise
جمعه 26 تیر 1383, 12:31 عصر
اولا" چه کسی گفته قراره طول String ثابت باشه ؟ مفهوم constant اینجا با مفهوم ثابت در بقیه حوزه های برنامه نویسی فرق میکنه ! کلاس String خودش ابزاری برای پردازش نداره . عملگر +ی که تو مثال بالات آوردی در واقع یک StringBuffer.Append هست که توسط کامپایلر جایگزین میشه . اگر کمی دقت کنی به این نتیجه میرسی که : String کلاسی نیست که برای انجام وظایف پردازشی توسعه داده شده باشه ، بلکه باید صرفا" ازش به عنوان یک محفظه String استفاده کرد . کلاسی که باید وظایف پردازشی رو انجام بده StringBuffer هست . هر جا که برای افزایش راحتی توسعه ، تو میتونی یک نسخه از String رو پردازش بکنی ، در واقع بدون اینکه بدونی داری از یک StringBuffer استفاده میکنی

نکته : حالا با توجه به این توضیح خیلی واضحه که اگر تو یک وظیفهء پردازشی داری ، بهتره از Stringbuffer استفاده کنی و نه یک String ؛ چون در این صورت در حین تولید یک String بصورت ضمنی یک StringBuffer هم تولید میشه که جز افزایش بار و حافظه اختصاص یافته ، محصول دیگه ای نداره ؛ و بالعکس اگر صرفا" میخاهی از یک رشته تو حافظه نگهداری کنی بهترین انتخاب String است نه StringBuffer چون میزان حافظه منتسب شده به یک StringBuffer بیشتر از یک String است ( چون کلاس فوق العاده بزرگ و قدرتمندی است )

webdeveloper
جمعه 26 تیر 1383, 13:06 عصر
پس اینجوریاس :idea: حالا با عقل جور در میاد. از پاسخ کاملتون ممنون. :lol:

vip_on_the_web
جمعه 30 مرداد 1383, 00:33 صبح
age farghe muttable va immutable ro midooni baayad begam ke mohemtarin farghe String va String Buffer eeneke String Immutable hastesh va StringBuffer Mutable