- protected is also package protected
- Java 5′s type erasure
- Java 8′s lambdas with -> instead of => like all other languages up to that moment
- Java 8′s half-baked monads
- Java 9′s modules monstrosity instead of just an internal access modifier like C#
- Java 10′s final var instead of val
- this::method syntax
- private not being very private
- being sold to Oracle instead of being handed over to Eclipse Foundation or Apache Foundation
- poor generics inference
- JavaBeans spec
- JavaBeans spec
- JavaBeans spec
- JavaBeans spec
- JavaBeans spec
- JavaBeans spec
- JavaBeans spec x10