This article is transferred from ： Happy bytes
The article mainly explains ：Java The core technology
For more Java The official account is available for relevant information. 《 Happy bytes 》 send out ：999
After so many years Java Development , And combined with the usual interview Java Some experience of developers , I think that JavaSE The main thing is to master some of the following .
1. JVM relevant
For just touching Java For people who ,JVM Relevant knowledge doesn’t need to be well understood , There are some simple understandings of the concepts in this regard .
But for one there is 3 In the above Java For experienced senior developers , Can’t JVM It’s almost unacceptable .
JVM As java Foundation of operation , It’s hard to believe in JVM People who don’t know at all can put java The language is very thorough .
I have more than 3 year Java When experienced developers , JVM It’s almost a question to ask .
Of course JVM It’s not the only interview question that determines the quality of technical ability , But you can prove java The level of development ability .
stay JVM In this category , I think the knowledge that needs to be mastered is ：
2. Java Operation of
This one may look simple ,java Who can’t run the program ？
But a lot of times , We just go through IDE To carry out java Program , Bottom IDE How to execute java The procedure ？ Many people don’t understand .
This knowledge point is the most basic java What developers need to master , The first is definitely to teach you how to execute on the command line java Program , But many people once put java learned ,IDE Using the , Just forget about it .
Why is it important to know this , got it java After the purest way to start , You’re going to be able to , To analyze how many directories were started at that time , How to perform naming , How about the parameters , Is there any missing, etc .
This will help you to solve the strange and possibly environment related problems in real development .
The knowledge we need to master here is ：
3. data type
There’s nothing to say about this one , does Java Master the basic types and object types in .
You can learn more about JDK How to automatically convert knowledge , Including packing and unpacking , Also pay attention to avoid the judgment of type equality after packing .
Main knowledge points ：
4. Objects and examples
In this regard , Developers need to understand class and instance The concept and the difference between , This is a java One of the foundations of object-oriented features .
The main points of knowledge are ：
Class and Instance The concept of
Instance Creation process ：
Something to watch out for ：
5. Access control
This is also java One of the foundations of encapsulation features , What needs to be mastered is ：public protected default private about class, method, field The embellishment of .
6. Process control
Java The basis of process control , Although some grammars are not necessarily very common , But we all need to understand , And use them in the right place .
What needs to be mastered is ：if, switch, loop, for, while Wait for process control Syntax .
7. The concept of object-oriented programming
This is a java Core concept of , For any java Developers need to be proficient in .
Java Many of the features or knowledge points are related to java The concept of object-oriented programming is related to .
In my understanding , A good developer doesn’t just need to understand these features （ Knowledge point ） In itself .
We need to know more about these objects java How is the concept of object-oriented programming embodied in , This is better for developers to master java This development language , And other object-oriented programming languages .
It’s just a simple list here , The main points of knowledge include ：
The static properties are java It is often used in daily development , Need to understand and static Keyword related usage , There are other keywords used with , If you can and abstract, final And other keywords .
The main things to master are ：
9. Basic knowledge points
Here are some scattered , There is no systematic classification of some java Knowledge point .
In the daily development, there are many . There’s a lot more to this , At present, I just summarized these for the time being ：
It includes ：
10. Collections framework
This is a part that needs to be mastered , do java Development , It can be said that there is no need to go to the collection framework , It’s important , It’s sorted out here Java You must be clear about the interview questions and answers .
But the knowledge here is not difficult , But for collections, it’s best to understand the internal implementation , Because this will help you choose the right framework to solve the problem in different scenarios , Such as the 1W Collection of elements , It is often necessary to carry out contains Judgment operation , Knowing the features or internal implementation of a collection , It’s easy to make the right choice .
This includes the following ( Concurrency correlation is not included )：
The system of aggregation framework ： Basics Collection ,Map
The content of concrete collection implementation , List ,Set ,Map Concrete implementation , internal structure , Special method , Applicable scenarios, etc
Collection related tool classes Collections Use of etc
11. Exception framework
Abnormal in java May not be so valued in the development of , The best practice of exception handling details .
In general, there are exceptions , Throw it straight up , Or whatever catch After processing, it has no great impact on the overall operation of the program . But in enterprise design and development , The design and handling of exceptions , It is often related to the overall robustness of the system .
A good system exception for developers , The treatment should be unified , Avoid scattering a lot of exception handling logic everywhere ; For the system , Exceptions should be controllable , And it’s easy to operate , After some exceptions , There should be a way to deal with it , Know how to deal with operation and maintenance , So while the exception framework is simple , But for the whole enterprise application development , Exception handling is very important , To handle exceptions, you need to understand Java The abnormal system in .
There is not much knowledge in this part , Mainly ：
An abnormal system ：
Throwable Exception RuntimeException Error RuntimeException and commonly Exception The difference between , Specific treatment methods, etc
12. Java IO
IO stay java It’s not just about reading and writing files , It also includes socket Network reading and writing and all other input and output operations . for instance standard HTTP In request Post Reading the content of is also an output process , wait …
about IO,Java Not only provides the basics Input、Output dependent api, There are also some simplified Reader、Writer etc. api, In some development （ It involves a lot of IO Operational items ） It’s also very important , General daily development will also involve （ journal , Reading and writing of temporary documents, etc ）.
The main points of knowledge here are ：
basic IO The system includes InputStream , OutputStream, Reader/Writer, File read , Various stream reads, etc ,NIO The concept of , Specific usage and usage scenarios .
13. Multithreaded concurrency
Multithreading is Java One of the more difficult parts that is generally considered .
Multithreading can effectively improve cpu Usage rate , Improve overall system efficiency , Especially when there are a lot of IO When the operation is blocked ; It’s sorted out here Java Multithreaded interview questions and answers must be clear to you .
But it’s also a double-edged sword , If it doesn’t work well , Not only has the system improved a little , Or no promotion , And it will also bring problems such as debugging between multiple threads .
There’s a lot of content in multithreading , Just to make a brief statement Java In the initial use of multi-threaded knowledge points to master , In the future, I have the opportunity to introduce some advanced features in detail .
14. The Internet
Java It also provides direct operation TCP agreement 、UDP Agreed API.
When network performance needs to be emphasized , You can use it directly TCP/UDP To communicate .
In the view Tomcat Etc , So you can see the correlation API Usage situation .
However, it is seldom used directly TCP, Can use things like MINA、Netty Such a framework to deal with , Because this aspect of development involves little , So there is no more detailed list .
15. Time and date processing
For almost every application , The processing of time and date can’t go around , however JDK8 The previous time is related to API Usage is not friendly .
At that time , You can choose Joda Wait for the time frame . here we are JDK8 After the release , New time API It basically integrates the advantages of other frameworks , It can be used directly .
about Java For developers , Need to use skillfully API To deal with time and date .
Specific knowledge points will not be listed , I will write a special article in the future to summarize JDK8 Medium time date API Usage of .
16. XML analysis /JSON analysis
In fact, neither of these two parts is J2SE What’s in it , But in everyday development , Interact with other programs , Interact with the configuration file , More and more inseparable from the analysis of these two formats .
But for a developer , Be able to understand some of XML/JSON The principle and method of specific analysis , It helps you to choose the right way to make your program more efficient and robust in each specific scenario .
XML： Need to know DOM Analytic and SAX The basic principles of analysis and their respective applicable scenarios
JSON： Need to know some common JSON Frame usage , Such as Jackson, FastJson, Gson etc. .
17. Maven Use
Maven Neither Java What’s in it , however maven It’s revolutionary , to java Development brings great convenience , this 30 individual Maven Command you to be familiar with .
From the introduction and management of dependency , Update and release output of development process , Even the update of the version , Use maven Can greatly simplify the complexity of the development process , This saves a lot of time .
so to speak ,maven Has become a java Developer’s standard configuration . So I put maven As a java The basic knowledge for developers .
This is a JDK5 A new concept that began to be introduced , It’s actually a grammar sugar .
Writing java There’s a little convenience in code , General application or business development , Simply use , You don’t have to use operations like defining generics .
But developing some basic common components will use , You can take a closer look at this section when you need it , In general, as long as it can be used simply .
It’s also jdk5 And then introduced , You must understand .
spring It’s an excellent framework , From the very beginning xml As a standard profile .
But here we are. Spring3 after , In especial spring-boot After the rise , The use of labels to simplify xml Profile , For developers , Can save a lot of xml Configured time .
But the disadvantage is that labels are scattered in various categories , Unlike xml, You can have a global understanding and management of all configurations , So there’s no way to replace all of them xml.
For the average developer , Can use the mark , Some public build developers may need to understand the definition and implementation of annotations , You can take a closer look at it when you need it .
RemoteMethodInvocation ,Java Language specific remote call interface , It’s easy to use , Click here to learn about RMI And RPC Details of the differences .
But when it comes to cross language , You need to use webservice Wait for other ways to support .
Generally speaking , No program needs to use RMI, But it can be used in certain situations , I’m in a project , Use RMI To control the remote start and stop of the program .
Java Native Interface, It is permissible to Java The local interface method is called , Commonly used in C/C++ Code calls .
It is important to note that in java Load in so/dll File path problem , Calling the interface itself is not complicated , But it often takes more time to load the required local interface library .
The above is just a brief introduction to these java Some views and introductions of basic knowledge and Technology .
Thank you for your approval and support , Xiaobian will continue to forward 《 Happy bytes 》 High quality articles