Per-Ake Minborg در مقالهٔ Inside Java نشان میدهد چطور میتوان ticker یک محصول مالی، مانند ORCL یا GOOGL، را با یک value class دارای تنها یک field از نوع int نمایش داد. طبق مقاله، value classها بخشی از JEP 401: Value Objects هستند که بهصورت preview در JDK 28 ارائه میشود؛ این classها identity ندارند.
نمونهٔ Ticker فقط رشتههای یک تا پنجکاراکتری شامل حروف بزرگ A تا Z، رقمهای 0 تا 9 و نقطه را میپذیرد. برای هر یک از این ۳۷ کاراکتر، شش bit در نظر گرفته میشود؛ بنابراین پنج کاراکتر در ۳۰ bit جا میگیرند و دو bit بالایی int صفر میمانند. constructor ورودی خالی، طول بیش از پنج و کاراکتر نامعتبر را رد میکند. مقدار صفر برای padding کنار گذاشته شده است تا پایان ticker بدون field جداگانه برای طول مشخص شود.
چیدمان کاراکترها ویژگی مهم دیگری هم دارد: ترتیب عددهای ذخیرهشده با ترتیب مقایسهٔ رشتهها یکسان است. نقطه پیش از رقمها و رقمها پیش از حروف بزرگ قرار میگیرند؛ اولین کاراکتر هم در بالاترین جایگاه ذخیره میشود. اگر یک ticker ابتدای دیگری باشد، padding صفر باعث میشود مورد کوتاهتر زودتر قرار بگیرد. در نتیجه، پیادهسازی Comparable میتواند مستقیماً از Integer.compare استفاده کند و نیازی به decode کردن رشته برای مقایسه ندارد.
پیادهسازی CharSequence نیز امکان خواندن طول و کاراکترهای منفرد را فراهم میکند. متد length حداکثر پنج جایگاه را بررسی میکند و charAt کاراکتر همان جایگاه را استخراج میکند؛ هیچکدام String نمیسازند. در مقابل، subSequence ابتدا کل مقدار را با toString به String تبدیل میکند. همچنین StringBuilder.append(CharSequence) میتواند کاراکترهای Ticker را بدون فراخوانی اولیهٔ toString بخواند.
مقاله تأکید میکند که JVM در بعضی شرایط میتواند این value class را scalarize کند؛ یعنی int آن را مستقیماً میان متغیرهای محلی، آرگومانها و مقدارهای بازگشتی جابهجا کند و از allocation یک شیء جداگانه بپرهیزد. این امکان همیشگی نیست. محدودیت پنجکاراکتری نیز فقط متعلق به این نمونه است: constructor قالب را بررسی میکند، نه حضور ticker در بورس، و نوع مورد استفاده در محیط عملیاتی باید با قواعد بورس یا data feed مربوط سازگار باشد.





