With the Java SE8 we have the java type annotations introduced.
Do you look at these type annotations as a replacement for the code level validations we have been doing so far?
Were these created with performance enhancement in mind too?
Type annotations can be used as an alternative to code level validation. In many cases they will be easier to use once they have been setup properly. I believe we will see tools start using these more often. With regard to performance, EnerJ (http://spectrum.ieee.org/computing/software/enerj-the-language-of-goodenough-computing) illustrates how to make tradeoffs between performance and energy usage on mobile devices. Other types of tradeoffs are possible.