RxJava: for wrangling UI interactions in a declarative fashion. https://github.com/ReactiveX/RxJava
Java is still a compiled language. You have to first compile it before you can run it. Perhaps, we can have a shell script wrapper that automate the compile step. When I was stuck with JDK 1.4, this means that I had to restart the container (Tomcat or WebLogic) every time I made change to a class file. Later JDK version may allow a class to be dynamically re-compiled / re-loaded without restarting the container.
NIO - http://tutorials.jenkov.com/java-nio/overview.html
Cheatsheet - Fundamental
Fundamentals / Miscellaneous
The equals and hashCode methods
Basic data types
Data structures / Collections
Libraries and Frameworks
How to run a Java program in the background
GUI / AWT / Swing
Static code analysis tools
How to debug Java application
How can we avoid the "GC Overhead Limit Exceeded" error message?
This exception is thrown by the garbage collector when it is spending way too much time collecting garbage. This error essentially means that you need to add more memory, or reconfigure your garbage collection arguments. You can suppress this error by adding -XX:-UseGCOverheadLimit to your JVM startup arguments.