Once again, or to be precise, I finished reading "Java Programming Thoughts" for the third time. I closed the book and fell into deep thought. Why is this book worth reading again and again? Moreover, it seems that every time I reread it, I always gain something new. I've done my best to explain why, and hopefully by the end of this article, we'll all have a satisfactory answer.
Why is this book worth reading?
Why this book and not other books? Let me give you a hint first. There was a strange phenomenon in middle school. Some teachers did not find it difficult when they listened to his lectures. However, after listening, they found that they had already solved a very difficult problem without even realizing it. Got it. Thinking about it now, this is actually the ability of a master. He can reduce complexity into simplicity and explain complex problems clearly in simple language. The author of this book, Bruce Eckel, is a well-deserved master. He has rich experience in teaching Java, has unique insights into Java, and has raised questions and suggestions on many Java designs.
The uniqueness of this book can be attributed to the following aspects:
One step at a time. Only introduce one knowledge point at a time, and then introduce new knowledge points after ensuring that readers can master it. In this way, readers can understand more easily and have a greater sense of accomplishment, and at the same time, they will not be confused by many entangled knowledge points. This is why the Chinese version of this book is 880 pages thick.
Each knowledge point has a corresponding code example that can be compiled and executed. Readers can run it themselves to deepen their understanding. When in doubt, you can also modify the code, self-verify, and improve unknowingly.
Use a testing framework to display program output. It has the following advantages:
Cultivate readers to pay attention to testing. In actual work, many beginners tend to ignore the importance of testing.
Train readers to write testable code, such as tight coupling, etc., which will make the program difficult to test.
Train readers on how to write a test framework, which is very helpful for writing unit tests and other tests at work.
When you want to modify the program, such as refactoring, you can use the testing framework to ensure the correctness of the program.
Many design patterns are used in the examples. Regarding the importance of design patterns, I believe everyone knows that they are just the basic skills of object-oriented design. Learning them through practical examples can be said to kill two birds with one stone.
Some functions are discussed in depth. For example, generics, through comparison with C, introduces the design ideas, advantages and disadvantages.
The learning process
At the beginning of Java Performance, the author believes that to successfully tune Java performance, you need to go through three stages:
I don't know what I want to know. In other words, when solving a problem, you don't know what knowledge and methods you need to know to solve the problem.
I know what I need to know. You know the important things you need to know to solve the problem, but you haven't delved into the details of those important things.
I already know what I need to know. In short, you know and understand all the details.
I think there is another stage to add:
I question and improve what I already know. With the knowledge and details I have, I will be skeptical and ask myself, why and what should I do to solve the problem? What are the advantages and disadvantages of how to do it? Is there any other way, a better way?
You will find that my experience of reading "Java Programming Thoughts" completely reproduces these four stages:
Before reading, I didn’t know what I needed to know. To use Java well.
After doing it again, I know that I need to understand object-oriented, exceptions, concurrency, generics, IO, etc. to use Java well.
After two passes, I understood all the technical details.
After the third time, I started to evaluate and reflect on all the technical details, where they came from, why they are what they are now, and where they will go in the future.
The above is the detailed content of How about java programming ideas. For more information, please follow other related articles on the PHP Chinese website!