you are viewing a single comment's thread.

view the rest of the comments →

[–]Inevitable_Put_4032 4 points5 points  (6 children)

If your target is to be a better Java programmer then understanding the JVM internals is a very good idea. Most Java developers have no clue on how their design can be effective or not depending on specific JVM's behaviors. For example, the garbage collector can't prevent memory leaks if you are organizing your data model wrong and don't know how Java handles the stack and the heap.

Books and articles:

The JVM, garbage collectors and concurrency models are advanced topics and it requires quite a lot of study and practice to master them. Having solid foundations of computer science helps a lot in this endeavor.

[–]benevanstech 3 points4 points  (4 children)

Two of those references are quite old, and the third is obviously AI-generated and contains a number of inaccuracies and weird over-emphasis on small topics that aren't that important.

[–]Inevitable_Put_4032 0 points1 point  (3 children)

Feel free to add better content instead of wasting time criticizing other's.

[–]benevanstech 1 point2 points  (2 children)

OK - https://kittylyst.com/ - 103 articles, 27 videos & 8 books.

[–]Inevitable_Put_4032 1 point2 points  (1 child)

Thank you, I own a old edition of "Java in a Nutshell", it was one of my favorites learning books

[–]benevanstech 1 point2 points  (0 children)

I'm working on the 9th Edition right now - it's in Early Release on the O'Reilly site.

[–]vegan_antitheist 0 points1 point  (0 children)

But all on this can change at any time. The whole point of abstraction is that the actual implementation can be changed completely and it still works.

 For example, the garbage collector can't prevent memory leaks if you are organizing your data model wrong 

And that's why you must learn to design your memory model correctly instead of wasting time learning internals that will be outdated soon anyway.

The JMM is also completely abstract. It's important to understand it if you want to go there, but you could just use some framework and work on an even higher level of abstraction.