Compile time constants and variables
http://www.jianshu.com/p/c7f47de2ee80
http://www.journaldev.com/797/what-is-java-string-pool
http://java67.blogspot.com/2014/08/difference-between-string-literal-and-new-String-object-Java.html
http://www.journaldev.com/4098/java-heap-memory-vs-stack-memory-difference
http://www.journaldev.com/797/what-is-java-string-pool
http://www.journaldev.com/3884/java-is-pass-by-value-and-not-pass-by-reference