- स्ट्रिंग क्लास ऑब्जेक्ट्स अपरिवर्तनीय हैं जबकि स्ट्रिंगबफर और स्ट्रिंगबिल्डर ऑब्जेक्ट्स परिवर्तनीय हैं।
- एक स्ट्रिंगबफ़र सिंक्रनाइज़ किया जाता है जबकि एक स्ट्रिंगबिल्डर सिंक्रनाइज़ नहीं होता है।
- एक संयोजन ऑपरेटर "+" आंतरिक रूप से StringBuffer या StringBuilder का उपयोग करके कार्यान्वित किया जाता है।
- यदि ऑब्जेक्ट मान बदलने वाला नहीं है, तो स्ट्रिंग क्लास का उपयोग करें क्योंकि स्ट्रिंग ऑब्जेक्ट अपरिवर्तनीय है।
- यदि ऑब्जेक्ट मान बदल सकता है और केवल एक थ्रेड से एक्सेस किया जा सकता है, तो StringBuilder का उपयोग करें क्योंकि StringBuilder अनसिंक्रनाइज़ है।
- यदि ऑब्जेक्ट मान बदल सकता है और कई थ्रेड्स द्वारा संशोधित किया जाएगा, तो StringBuffer का उपयोग करें क्योंकि StringBuffer सिंक्रनाइज़ है।