点关注,不迷路;持续更新Java相关技术及资讯!!!
For people who are new to Java, JVM-related knowledge does not necessarily need to understand the deep, this concept there are some simple to understand.
But for a senior developer with more than 3 years experience in Java, the JVM will not nearly be unacceptable.
JVM to run java as a basis, it is hard to believe that for the JVM is not know who can eat the java language very thoroughly.
Interview developers have more than three years Java experience when, JVM is almost a must-ask questions.
Of course, the decision is good or bad is not the only JVM technical capability interview question, but the level of evidence java development capabilities.
In the JVM in this category, I think there is need to have knowledge of:
JVM memory model and structure
GC principle, performance tuning
Tuning: Thread Dump, memory structure analysis
byte code class binary structure, class Loader system, class loading process, the instance creation process
The method of execution
Java every major version update new features provided by (need a simple understanding)
Welcome into the group exchange
- Java runtime
This may be a very simple look, run java program who would not be?
But many times, we just simply to execute java program by IDE, IDE is the underlying java program how to implement it? Many people do not understand.
This is the most basic knowledge of java developers need to know, the first is definitely teach you how to perform a java program on the command line, but a lot of people once the java finished school, IDE spend, put this forgot a.
Why stressed the need to know it, know java purest way to start later, you can go wrong when you start, then start to analyze how much of the directory, naming how to perform, how parameters, such as whether there is missing.
This will help you to solve the real development of those weird and possible problems related to the environment.
Here knowledge required are:
javac compiler java file class file
Use the command java, java class with a package of how to start the command line
java program related to the respective path (classpath, java.library.path, java run home directory, etc.)
- Data Types (focus)
This nothing left to say, nothing more than the Java primitive types and object types to master.
You can then understand how some of the JDK automatically convert knowledge, including boxing and unboxing etc., but also pay attention to avoid the equivalent type of packing after the judgment.
Main points:
Basic types: int, long, float, double, boolean. . .
Corresponding object type: Integer other types of conversion to a basic type, boxing and unboxing
Object type: equals, hashcode
String type features
- Objects and instances
In this context, developers need to understand the difference between the concept and class and instance, which is a foundation java object-oriented features.
Main points are:
The concept of Class and Instance
Instance creation process:
No Inheritance: allocating memory space, variable initialization, the constructor is called
Inheritance: the processing operation statically allocated memory space, defined as the initial variable value, from the base class -> subclasses, defined at initialization process, the constructor is executed
Need some attention:
Static attributes from the base class - initialized> subclass
The default constructor with no arguments related features
- Access control
It is also a foundation java package characteristics need to know are: public protected default private modification for the class, method, field of.
Java developers have to master the core technology of the 20, you get the number? JVM is the key!
6. Process Control
Java foundation process control, although some grammar may not be very popular, but need to understand and use them in the right place.
Need to know are: grammar if, switch, loop, for, while other processes control.
- The concept of object-oriented programming (focus)
This is the core concept of java, java for any developer needs to master.
Many features in Java or knowledge is relevant and java object-oriented programming concepts.
In my understanding, a good developer not only needs to understand these characteristics (knowledge) itself.
Also need to know these objects in object-oriented programming concepts of java is how reflected, so more conducive to developers to master this door java programming language, and other object-oriented programming language.
Here simply list a bit, the main point of knowledge include:
Object-oriented three properties: encapsulation, inheritance, polymorphism;
Their definition of the concept, which reflected the characteristics, their usage scenarios
Multiple dispatch static and dynamic assignment of a single concept
Overloaded concept and use
Inheritance: interface to achieve multiple, single base class inheritance
Abstract, abstract classes, interfaces
Polymorphism: The method covers the use of the concepts and
Callback Interface
- static
Static property is also frequently used in daily java development, we need to understand and use the static keyword relevant, and also use other match, whether as can be abstract, final and other key combination.
The main need to know are:
Define a static property, use, and how to initialize class loading
Definition and use static methods
Defining and using static class
Define a static code block and the initialization timing
Fundamentals point where the main list of some scattered, java without some knowledge of the classification system.
In daily use a lot of development. There are many piece of content, and are only summarized these in here:
They include:
equals
hashcode
tring/stringbuffer
final
finally
finalize
9. The frame set (focus)
This is a need to pay more to grasp the part, do java development, can not say no to the collection framework, it is very important to organize a collection of Java where you have to face questions and answers should be clear.
But here's knowledge is not difficult, but for a collection of the best ways to understand the internal implementation, as this will help you select the appropriate framework in various scenarios to solve the problem, such as a collection of 1W elements, often contains perform determination operation, or set of characteristics to know internal implementation, it is easy to make the right choice.
This includes the following (concurrent related not included):
System Collections Framework: Basic Collection, Map
Content specific collection implementations, List, Set, Map specific implementation, internal structure, special methods for scenes, etc.
The use of a set of related tools such as Collections
10. The abnormal frame
An exception may not be so valued in the development of java, the Best Practices exception handling details.
General exception is encountered, directly on the throw, or just catch it after processing is also no major impact on the overall operation of the program. But in the enterprise design and development, quality of design and unusual treatment, often bearing on the overall robustness of the system.
A good system exception for developers, treatment should be unified, to avoid scattered throughout many of exception handling logic; for the system, exceptions should be controlled, and is easy to operation and maintenance, after some anomalies, there should be ways to cope, know as He Yunwei process, so although abnormal frame is very simple, but for the entire enterprise application development, it is very important exception handling, you need to know to deal with abnormal Java exception in the system.
This part requires knowledge points are few, mainly:
Abnormal system:
Throwable
Exception
RuntimeException
Error
Exception RuntimeException difference between the general and specific methods of treatment
- Java IO
IO read and write files in the java is not only simple, but also the read and write socket network so all of the input and output operations. For example, read the contents of the Post's standard HTTP request is an output of the process, and so on ...
For IO, Java not only provides the basic Input, Output related api, also provides some simplify the operation of the Reader, Writer and other api, (the project involves a large number of IO operations) is also very important in the development of some general daily development It will be involved (logs, temporary files to read and write, etc.).
At this point in knowledge are:
Basic IO system comprises InputStream, OutputStream, Reader / Writer, file read, read, etc. the various streams, the concepts NIO, the specific use and usage scenarios.
Java developers have to master the core technology of the 20, you get the number? JVM is the key!
11. multithreading (focus)
Multithreading in Java generally considered more difficult one.
Multithreading can improve with a good cpu utilization, improve overall system efficiency, especially in a large number of blocking IO operation case; this sort of multi-threaded Java interview questions and answers you have to be clear.
But it is also a double-edged sword, if not good, not only to enhance the system has little or no promotion, but also cause problems when debugging between multithreading.
Contents in a multithreaded many, simply explain the initial use of multi-threading in Java need to master the knowledge, have the opportunity to separate and then detail some advanced features usage scenarios. Reply "multithreading" in Java technology stack available number of public multithreaded tutorial series.
Multi-threaded implementation and start (Key)
callable and runable difference
syncrhoized, reentrantLock their own characteristics and comparison
12. The thread pool (focus)
future asynchronous way to get the results
concurrent 包
lock
13. Network
Java is also provided that can directly manipulate the TCP protocol, API UDP protocols.
In the case of network performance needs to be emphasized, you can directly use TCP / UDP communication.
In view source Tomcat, etc., you can see the use of these related API.
But generally less directly use TCP, use words like MINA, Netty such a framework to deal with, because the development of this aspect involves much, so I will not detail lists.
14. The date and time processing (focus)
For almost every application, the processing time and date is not around the past, but before JDK8 time related API usage is not friendly.
At that time, you can choose such as Joda time frame. To JDK8 after the release, the new time API combines the advantages of other basic framework has been well used directly.
For Java developers, we need to skillfully use the API to do the relevant processing time and date.
Specific knowledge is no longer listed, he would later write a special article to summarize usage JDK8 the date and time API.
- XML parsing / JSON parsing (focus)
In fact, these two are not content J2SE content inside, but in the daily development, and other programs interact, and configuration files interact, become increasingly dependent on resolution of two formats.
But for a developer, able to understand some of the principles and methods of XML / JSON specific analysis helps you better in each particular scene you choose the right way to make your programs more efficient and more robust .
XML: DOM parsing and need to understand the basic principles of SAX parsing and respective application scenarios
JSON: JSON framework need to understand some common usage, such as Jackson, FastJson, Gson and so on.
Java developers have to master the core technology of the 20, you get the number? JVM is the key!
16. Maven use
Maven is not the content of Java inside, but maven is revolutionary for java development has brought great convenience, this 30 Maven command you must be familiar with.
From the introduction and management of dependent development process of updating and publishing output, as well as versions of the update, use maven can greatly simplify the complexity of the development process, thus saving a lot of time.
It can be said, maven has become a standard java developers. So I put maven java developer and as a basis for knowledge necessary.
Reply to "Maven" in Java technology stack available number of public Maven tutorial series, some of the future will be put on some of my experience and skills to use maven, there will not elaborate.
17. Generics
This is a new concept introduced by the beginning of JDK5, in fact, is a syntax sugar.
There was a little convenient, the general application or development of business in the preparation of java code, simply use will not necessarily use the generic definition of such operations.
But the development of some basic common components will be used to, you can then take a closer look at this part when needed, under normal circumstances would be simple to use as long as you can.
18. Notes
Also introduced after jdk5, meta-annotation you have to understand.
spring is a good framework, beginning with the most as a standard xml configuration file.
But to Spring3 after, especially after the rise of the spring-boot, more and more respected annotations to simplify the use of xml configuration file, and for developers, it can save a lot of time xml configuration.
But the disadvantage is that the label scattered in every class, unlike xml, can have a global understanding and management of all configurations, so there is no way to say it completely replace all xml.
For general developers will use annotations to some form of public developers may need to understand the definition and implementation of tagging, you can then take a closer look at the specific needs of the time.
19.RMI
RemoteMethodInvocation, Java language-specific remote call interface, it is quite easy to use.
However, in the case of cross-language needs, we need to use other means to webservice and other support.
In general, the program does not require the use of RMI, but can be used in a particular situation, I was in a project, using the RMI program to remotely start and stop control.
20.JNI
Java Native Interface, calls may be allowed in Java native interface method for invoking a general C / C ++ code.
Note that the path to load problem so / dll file in java, call interface itself is not complicated, but often spend more time on whether to load the required local interface library.
Concerns, comments java share knowledge every day, giving Spring source code analysis, Dubbo, Redis, Netty, zookeeper, Spring cloud, distributed data