I am the guy who writes java controllers (mvc), who does tests with junit, who writes jdbc, who uses maven …
basically, how do I know when is this Java EE and when is not? I don’t write servlets or jsps (which are part of Java EE) but I do use API and so …
What am I? Java EE programmer? Java SE programmer?
If you were Spring/Hibernate developer, what you are? Java EE or Java SE?
Maybe this is stupid question (if so then I am sorry), but what’s the “thin line” between Java SE and Java EE?
More importantly, does it matter?
The only purpose for having these labels is as a shortcut for bundling technologies together. I share your view that these are exceptionally handwavy terms, and consequently no-one is going to use them for anything of consequence.
Sure, companies might advertise for a "J2EE developer". But they’ll always mention in the description/interview that they mean e.g. JBoss and JPA, for instance, rather than simply saying "are you J2EE" and assuming you both know exactly what that means.
And outside of that specific example, I very rarely come across the terms used (because they’re not very useful). Asking if you have experience with Java is useful, at a more precise level asking if you have experience with Tomcat or Hibernate is useful, but asking if someone has experience with J2EE is unlikely to yield a usable answer.
Is there some specific circumstance that’s prompted you to ask this question?