تفاوت بین StringBuffer و StringBuilder

تفاوت بین StringBuffer و StringBuilder
تفاوت بین StringBuffer و StringBuilder

تصویری: تفاوت بین StringBuffer و StringBuilder

تصویری: تفاوت بین StringBuffer و StringBuilder
تصویری: روش تشخیص جنس مو | انواع مو 2024, نوامبر
Anonim

StringBuffer در مقابل StringBuilder

جاوا یک زبان شی گرا بسیار محبوب است. در جاوا، کلاس String برای نگهداری دنباله ای از کاراکترها ارائه می شود که نمی توان آنها را تغییر داد (یک بار مقداردهی اولیه). متناوبا، زبان برنامه نویسی جاوا دو نوع توالی قابل تغییر از کاراکترها را فراهم می کند. یعنی زمانی که برنامه نویسان نیاز به تغییر رشته خاصی دارند (پس از مقداردهی اولیه)، باید از کلاس StringBuffer یا کلاس StringBuilder به جای کلاس String استفاده کنند. StringBuffer در JDK 1.0 و کلاس StringBuilder در JDK 1.5 معرفی شدند، در واقع به عنوان جایگزینی برای کلاس StringBuffer (برای محیط های تک رشته ای).

StringBuffer چیست؟

کلاس StringBuffer در JDK 1.0 معرفی شد. کلاس StringBuffer متعلق به بسته java.lang است و از java.lang.object عمومی به ارث رسیده است. برنامه نویسان نمی توانند آن را بیشتر گسترش دهند زیرا کلاس نهایی است. کلاس StringBuffer رابط های Serializable، Appendable و CharSequience را پیاده سازی می کند. یک شی از کلاس StringBuffer می تواند دنباله ای از کاراکترها را در خود جای دهد که قابل تغییر و thread-safe هستند. این بدان معناست که بسیار شبیه به یک شی String است، اما دنباله کاراکترها (طول و محتوا) را می توان در هر زمان پس از مقداردهی اولیه شی StringBuffer تغییر داد. با این حال، این کار باید با استفاده از روش های خاص ارائه شده توسط کلاس StringBuffer انجام شود. دو عملیات اصلی در کلاس StringBuffer وجود دارد. آنها توسط متدهای append() و insert() ارائه می شوند. این روش ها بیش از حد بارگذاری می شوند، بنابراین قادر به پذیرش داده ها از هر نوع مانند عدد صحیح و طولانی هستند. هر دو روش ابتدا هر ورودی را به یک رشته تبدیل می‌کنند، و سپس کاراکترهای رشته مربوطه را به شی Stribbuffer موجود اضافه می‌کنند (ضمیمه یا درج می‌کنند).متد append() رشته تبدیل شده را به انتهای شی StringBuffer موجود اضافه می کند، در حالی که متد insert() کاراکترهای ورودی را به نقطه درج مشخص شده اضافه می کند.

StringBuilder چیست؟

کلاس StringBuilder در JDK 1.5 معرفی شد. StringBuilder API بسیار شبیه به StringBuffer API است. در واقع کلاس StringBuilder در واقع به عنوان جایگزینی برای کلاس StringBuffer (برای برنامه های تک رشته ای) معرفی شد. کلاس StringBuilder متعلق به بسته java.lang است و از java.lang.object عمومی به ارث رسیده است. این یک کلاس نهایی است و بنابراین برنامه نویسان نمی توانند آن را گسترش دهند. کلاس StringBuilder رابط های Serializable، Appendable و CharSequience را پیاده سازی می کند. یک شی از کلاس StringBuilder می‌تواند دنباله‌ای از کاراکترها را در خود جای دهد که قابل تغییر هستند اما از نظر thread ایمن نیستند. این بدان معناست که بسیار شبیه به یک شی String است، اما رشته را می توان در هر زمان تغییر داد. اما کلاس StringBuilder همگام سازی را ارائه نمی دهد، بنابراین ادعا می شود که سریعتر از کلاس StringBuffer است.کلاس StringBuilder متدهای append() و insert() را با عملکردی دقیقا مشابه کلاس StringBuffer ارائه می دهد.

تفاوت بین StringBuffer و StringBuilder چیست؟

اگرچه کلاس های StringBuilder و StringBuffer را می توان برای دنباله های قابل تغییر کاراکترها در جاوا استفاده کرد، اما آنها یک تفاوت کلیدی دارند. برخلاف کلاس StringBuffer، کلاس StringBuilder امن نیست و هیچ هماهنگی را ارائه نمی دهد. بنابراین، توصیه می شود که کلاس StringBuilder به جای کلاس StringBuffer در برنامه های تک رشته ای استفاده شود، زیرا ادعا می شود که کلاس StringBuilder بسیار سریعتر از کلاس StringBuffer (در شرایط عادی) خواهد بود.

توصیه شده: