اشیاء در نقاط مختلف حافظه قرار میگیرند و الزاما برابر بودن مقدار دو رشته به معنی این نیست که هر دو رشته در یک مکان از حافظه قرار دارند. به عبارت دیگر ممکن است Reference Equal نباشند.
Symbol رشتهها را اصطلاحا Intern مینماید و به این ترتیب همیشه دو شی Symbol با محتوی یکسان از نظر Reference هم یکی هستند و در یک نقطه از حافظه قرار دارند. به طور کلی استفاده از Symbol به جای String تضمین میکند که هر نوع مقایسهای نتیجه یکسان خواهد داشت (Equals، RefrenceEquals، ==).
اما فایده آن چیست؟ بررسی اینکه دو String با هم برابر هستند شامل بررسی تک تک بایتهای آن است ولی برای بررسی اینکه دو Symbol با هم برابر هستند کافیست Reference آنها با هم مقایسه شوند، که سریعتر از مقایسه String است. در عوض معمولا ایجاد یک شی Symbol زمان بیشتری از ایجاد یک String میبرد.