Java / Lombok Interview questions
What is the difference between @Getter(lazy = true) and a normal @Getter?
A normal @Getter just returns the field's current value directly. @Getter(lazy = true)
is meant for a field whose value is expensive to compute: it generates a getter that computes the value only
the first time it's called, caches the result, and returns the cached value on every subsequent call.
public class Config { @Getter(lazy = true) private final List<String> expensiveData = computeExpensiveData(); } // computeExpensiveData() only actually runs the first time getExpensiveData() is called
This requires the field to be final and assigned via an initializer expression, since Lombok
implements the caching using a specific double-checked-locking pattern under the hood, generating thread-safe
lazy initialization without you having to hand-write that pattern yourself — a genuinely tricky pattern
to get right manually.
Invest now in Acorns!!! 🚀
Join Acorns and get your $5 bonus!
Acorns is a micro-investing app that automatically invests your "spare change" from daily purchases into diversified, expert-built portfolios of ETFs. It is designed for beginners, allowing you to start investing with as little as $5. The service automates saving and investing. Disclosure: I may receive a referral bonus.
Invest now!!! Get Free equity stock (US, UK only)!
Use Robinhood app to invest in stocks. It is safe and secure. Use the Referral link to claim your free stock when you sign up!.
The Robinhood app makes it easy to trade stocks, crypto and more.
Webull! Receive free stock by signing up using the link: Webull signup.
More Related questions...
