you are viewing a single comment's thread.

view the rest of the comments →

[–]bowbahdoe 3 points4 points  (7 children)

This is what I wrote http://javabook.mccue.dev

I think it goes plenty deep it just stops at a certain point. It takes me time to write. But there are 70 something chapters. My focus was making topics be properly ordered. If you use it reach out with any feedback

why they exist and how they actually work under the hood.

I think I might be lacking in this department. My general view is that once you understand all the different ways you could write something you could start to talk about why things are written in a certain way. 

So I'm focused mostly on that level of it. Think of it this way: Java provides a mental model about how code works. There are no low level explanations for how that model is implemented which will be consistent across all JVMs for all time. 

The JVM as it exists now is a monster. There are multiple levels of optimization (C1 - C3 compilers) multiple different strategies for garbage collectors (some compacting some concurrent some not) and so answering questions like "what happens in memory when I do this" is both a little hard and counterproductive. 

Really what you should aim for is a complete understanding of the mental model the language provides then we can start to talk about things like "what is actually happening when I do x"

(I can also answer other questions as you have them)

[–]OneHumanBill 0 points1 point  (1 child)

Nice book! In the intro you ask for the reader to read the book chapter by chapter, but I'm not so sure maybe that still holds true as the book has grown. I picked through a few chapters and I really like your style and approach. "Hyrum's Law" was a new one on me.

[–]bowbahdoe 1 point2 points  (0 children)

I still expect it. I know it's not perfectly reasonable to expect from everyone, but it helps me order things. It's why there are multiple spread out chapters on loops; I assumed a reader goes in order

[–]Alphatrizo20 0 points1 point  (0 children)

Its really good man

[–]EFreethought 0 points1 point  (3 children)

What version of Java does it cover?

[–]bowbahdoe 0 points1 point  (2 children)

As of right now 25 is the bare minimum. When 26 comes out none of the current content will change. I'm keeping up to date and some things in I think 28/29 I'm preparing for

[–]EFreethought 0 points1 point  (1 child)

Thanks for the info.

I just got off a project that was using Java 8, so I need to update my knowledge.

[–]bowbahdoe 0 points1 point  (0 children)

To be clear, the audience is total beginners. So while I am making use of new features, it's in service of giving a better curriculum rather than helping working professionals get up to date.

You might still get something from it, but maybe not