If you just want to develop in Android in the future, how deep do you need to know about JVM?
Asking this question is a bit superficial (not in a derogatory sense).
If you want to study JVM in depth, yes, it is worth encouraging.
As an industrial-grade operating platform, JVM is indeed excellent and worth studying. However, JVM is not everything. If you want to improve yourself, you cannot limit yourself.
You can study compilation principles, computer architecture, algorithms and data structures, computer graphics...
Expand your thinking.
The question now is not how deeply you need to understand the JVM, and if you only study the JVM, you will not study too deeply at all. Just like what you described, it is more difficult to understand after seeing the program compilation and code optimization, JMM, thread safety and lock optimization . It does not mean that you have not learned Java well, but that you are just too thin in other aspects. .
Secondly, it’s not about how much you learn, but how much you use it.
(PS: Advertising break, my new book "The Mystery of Code" will have many chapters introducing the unconventional use of code ideas)
Give me an example:
You are developing a network disk system or a picture bed system. In these systems, in order to improve efficiency, there will be a Miaozhuan function. That is: when a file already exists on the server, there is no need to upload it again.
When A uploads a file, such as XXX老师高清无码1080p.rmvb, this file is so popular that not only A, but also other otakus B C D have uploaded this file. However, B C D does not need to be re-uploaded again, just point to this file.
The above is all nonsense, even a programmer understands it.
Now the question comes, how to handle the user’s deletion operation?
Now we want to implement such a function. If A B C D all delete this file, then we will delete this file on the server. However, if no one among A B C D deletes the file, the file will remain on the server.
Read the above words a few times to see if they are particularly familiar to you.
Yes, it is GC. Therefore, we can figure out when this file is deleted, when it is retained, how to make it efficient, and how to achieve good concurrency by studying the JVM's GC algorithm.
The example is a little inappropriate, just to clarify the problem.
If you just want to develop in Android in the future, you may not need a particularly in-depth understanding.
However, as you deepen your use of Java, it will come naturally to you to understand parts such as program compilation and code optimization that you may still find difficult to understand.
Asking this question is a bit superficial (not in a derogatory sense).
If you want to study JVM in depth, yes, it is worth encouraging.
As an industrial-grade operating platform, JVM is indeed excellent and worth studying. However, JVM is not everything. If you want to improve yourself, you cannot limit yourself.
You can study compilation principles, computer architecture, algorithms and data structures, computer graphics...
Expand your thinking.
The question now is not how deeply you need to understand the JVM, and if you only study the JVM, you will not study too deeply at all. Just like what you described, it is more difficult to understand after seeing the program compilation and code optimization, JMM, thread safety and lock optimization . It does not mean that you have not learned Java well, but that you are just too thin in other aspects. .
Secondly, it’s not about how much you learn, but how much you use it.
(PS: Advertising break, my new book "The Mystery of Code" will have many chapters introducing the unconventional use of code ideas)
Give me an example:
You are developing a network disk system or a picture bed system. In these systems, in order to improve efficiency, there will be a Miaozhuan function. That is: when a file already exists on the server, there is no need to upload it again.
When A uploads a file, such as
XXX老师高清无码1080p.rmvb
, this file is so popular that not only A, but also other otakus B C D have uploaded this file. However, B C D does not need to be re-uploaded again, just point to this file.The above is all nonsense, even a programmer understands it.
Now the question comes, how to handle the user’s deletion operation?
Now we want to implement such a function. If A B C D all delete this file, then we will delete this file on the server. However, if no one among A B C D deletes the file, the file will remain on the server.
Read the above words a few times to see if they are particularly familiar to you.
Yes, it is GC. Therefore, we can figure out when this file is deleted, when it is retained, how to make it efficient, and how to achieve good concurrency by studying the JVM's GC algorithm.
The example is a little inappropriate, just to clarify the problem.
GC algorithm is not limited to GC.
Don’t let knowledge constrain your thinking.
If you just want to develop in Android in the future, you may not need a particularly in-depth understanding.
However, as you deepen your use of Java, it will come naturally to you to understand parts such as program compilation and code optimization that you may still find difficult to understand.