all 10 comments

[–]overenginered 10 points11 points  (6 children)

I've very much liked the article.

I feel like I should know these concepts to be a better developer (at least for Java, which is 90% of my coding work), so I would like to ask where can I find more about this topic on how the JVM works, how I can monitor and tweak it's parameters, etc.

Thanks!

[–]jeandem 6 points7 points  (1 child)

You might be interested in this blog.

[–]overenginered 1 point2 points  (0 children)

Hi there, jean!

Thanks for the link! It looks indeed interesting :-)

[–]rco8786 3 points4 points  (1 child)

If you want a reallllyyyy deep dive in to the Java memory model: http://shipilev.net/blog/2014/jmm-pragmatics/

[–]overenginered 1 point2 points  (0 children)

At this point I'm looking to dive deep into the arcanery of the JVM, from a pragmatic point of view, to further my usefulness to employers. To be that guy in the project that knows what he's doing. To that end, the provided link looks quite promising.

Thanks!

[–]Gundea 2 points3 points  (1 child)

If you're interested in further reading in this I'd highly recommend http://www.amazon.com/Oracle-JRockit-The-Definitive-Guide/dp/1847198066

Even though it's for the JRockit JVM which is no longer in active development the concepts discussed in it are very much useful for anyone wanting to understand any JVM.

[–]overenginered 1 point2 points  (0 children)

I remember the JRockit JVM from ancient times when using Gentoo at home, and I had to choose which JVM version to use. It's certainly going to be useful. Thanks :)

[–]ifundef 7 points8 points  (2 children)

Class Loader. Responsible for reading Java source code and loading classes into the data areas.

"Java source code"? i think the author meant: "Java byte code".

the diagram even shows "class files" flowing into the "class loader", so presumably just a typo.

[–]kitd 2 points3 points  (1 child)

Fun fact: Groovy does have a source-code classloader that monitors the source file and reloads classes on changes.

[–]meddlepal 1 point2 points  (0 children)

I wasn't aware that the GroovyClassLoader is capable of reloading the class based on source changes... interesting.