@Singleton is part of the JSR 330 standard and is indeed for dependency injection only. It tells your DI framework to create only one instance of the given class and use that single instance across your application. From the docs:
New instances are created every time a component is needed. If a component is used more than once, then, by default, multiple instances of the component will be created. If you only want a single instance of a component then you need to mark it as a singleton.
You can think of it as a directive to your DI framework to create only one instance. Nothing holds you back from creating multiple @Singleton annotated classes by hand using new.
Singleton objects in scala in contrast are true singletons and cannot be instantiated by hand.