استفاده جاوا از String pool چند تا دلیل مهم میتونه داشته بhai
برای اینکه جاوا از میزان حافظه ی کمتری استفاده کنه و در واقع زمانی که آبجکتی از قبل ایجاد شده و در string pool جایگذاری شده باشه جاوا پس از پیدا کردن آن در این محفظه دوباره همان آبجکت را تولید نمی کند و حافظه ی اضافی اشغال نمی نماید و ارجاعی (reference) به همان آبجکت را برمی گرداند.
دلیل دیگه افزایش کارایی برنامه و در نتیجه سرعت برنامه است.
ولی در موقعی که شما new استفاده می کنید هر بار آبجکت جدیدی توی قسمتی از Heap که جزو String pool هم نیست ایجاد میکنه و هیچ کدوم از این اشیاء با یکدیگر برابر نیستند(==)