What is your most intuitive impression of Java from the time you touch Java development? Is he propaganda "write once, run anywhere" or is there some formalism already in the grammar? What exactly do you know about the Java platform? Please stop and think for a moment.
The question I want to ask you today is, what's your understanding of the Java platform? is Java interpreted as "the right sentence?"
Typical answer.
Java itself is an object-oriented language, the most notable features are two aspects, one is called "write once, run everywhere." Write Once,run Anywhere "can be very easy to get cross-platform capabilities, but also garbage collection, Java through the garbage collector, recycling allocated memory, In most cases, programmers do not need to worry about the allocation and recycling of memory. Our daily exposure to the JRE or JDK,JRE is the Java runtime Environment, including: JVM and Java class libraries, and some modules. The JDK can be seen as a superset of the JRE, providing more tools, such as: compilers, Various diagnostic tools.
For "Java is interpreted execution" is not accurate, we developed the Java source code, first compiled into bytecode through Javac, and then run, through the Java Virtual Machine (JVM) embedded in the interpreter to convert the bytecode into the final machine code, but the common JVM, For example, the hotspot JVM provided by ORACLEJDK, which we use most of the time, provides a JIT compiler, which is what is often said to be a dynamic compiler, in which the JIT can compile hot-spot code into machine code at runtime, in which case some hot-spot code is compiled and not interpreted as execution.
Analysis of the test centers;
In fact, the question is a little general. The topic itself is very open, often examine a number of aspects, such as whether the basic knowledge understanding is clear, whether Master Java platform main modules and operating principles, many interviewers will suffer in this problem, a little nervous, I do not know where to start.
For this kind of general problem, you need to show your own depth of thinking and systematic understanding, and Java knowledge should be comprehensive. Avoid making the interviewer feel that it is "know it", after all understand the basic composition and mechanism, is the daily work of the problem diagnosis or performance tuning the basis of many things, Believe that no one will dislike the interviewer who loves learning and thinking.
Even if you feel that your answer is not very perfect, do not worry, I personally feel that this general problem, the one-sided writing is normal, most experienced interviewers, not because of a problem easy to judge the interviewer. Will try to guide the interviewer to show his true level. The problem is the opening warm-up, Then expand the question according to your answer.
Knowledge development
Back to the point, the understanding of the Java platform can be discussed concisely in many ways, such as Java language Features include generics, Lambda and other language features. base Class library, including collection, Io\nio, network, concurrency, security and other basic class libraries. For our daily work, we use a lot of class libraries, Pre-interview can be summarized in the system, to help on-the-spot play.
or some basic concepts and mechanisms of the JVM, such as the Java class loading mechanism, common version of the JDK embedded class-loader, such as bootstrap,application, and extension class-loader, class loading approximate process; Load, verify, connect, Initialize (Zhou Zhiming < in-depth understanding of Java Virtual machines > Good JVM Getting Started books) custom Class-loader etc. there is also the basic principle of garbage collection, the most common garbage collector, such as CMS, G1 and so on for what kind of workload also have to have a number of psychological, these are can expand the field, in the later column for more systematic introduction.
Tools such as the JDK or Java domain, such as compilers, runtime environments, security tools, diagnostic and monitoring tools. These basic tools are the guarantee of daily daily work efficiency. And for other language platforms, it is comprehend by analogy.
Java face question (Yang Xiaofeng)---talk about your understanding of the Java platform