Java developers have to master the core technology of the 20, you grasp how much? JVM is the key!

点关注,不迷路;持续更新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)
Here Insert Picture Description

Welcome into the group exchange

  1. 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.)

  1. 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

  1. 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

  1. 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.

  1. 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

  1. 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

  1. 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.

  1. 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

Guess you like

Origin blog.csdn.net/XingXing_Java/article/details/90579295
Recommended