With @interface you're defining annotations, with interface you're defining interfaces.
From Oracle docs: "Annotations do not directly affect program semantics, but they do affect the way programs are treated by tools and libraries, which can in turn affect the semantics of the running program. Annotations can be read from source files, class files, or reflectively at run time."
Annotations usually have 2 major uses: They help to define programming contracts (like @Nonnull annotation), which means they actually do nothing, but serve to programmers and IDES to detect potential error codes, and there are runtime annotations, which are usually used by frameworks for configuration (like the @Service annotation in spring): The core detects clases in yous scope with specific annotations and applies logic to them (any example you can think of, like defining Java Servlers, creating singletons, etc)
Generally speaking, a junior programmer doing some normal basic stuff, will rarely need to define Annotations, but the definitioon and using of interfaces is something basic any new developer should learn if their lenguaje allows it: Good practices USUALLY recommend the usage of interfaces in your code for maintainability.
In my personal experience, I've been defining and using Java interfaces almost since the day I learned Java, but I didn't need to DEFINE an annotation (tagging things with existing annotations is another story) until my 5th-6th year working proffesionally with Java, and it was a very specific project, a code autro-generator, something like Lombok but much more specific for a client.
I guess it depends on the nature of your work, but to day, I can't count how many interfaces I've defined, but annotations could be counted with the fingers of both hands. I beet there are good chances that a Java developer can start and end their entire career without defining a single interface (unless you use swagger's annotation based documentation generation xD)