In addition to Weibo, there is also WeChat
Please pay attention
WeChat public account
Shulou
2025-01-19 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >
Share
Shulou(Shulou.com)06/03 Report--
This article focuses on "what are the core technologies of Java". Interested friends may wish to take a look. The method introduced in this paper is simple, fast and practical. Let's let the editor take you to learn what are the core technologies of Java.
1. JVM correlation
For those who are new to Java, the knowledge related to JVM does not necessarily need to be understood deeply, so you can have some simple understanding of the concepts in it.
However, for a senior developer with more than 3 years of Java experience, not JVM is almost unacceptable.
JVM is the foundation on which java runs, and it's hard to believe that people who don't know anything about JVM can get a good understanding of java.
When I interview developers with more than 3 years of Java experience, JVM is almost a must-ask question.
Of course, JVM is not the only interview question that determines the quality of technical skills, but it can prove the level of java development ability.
In the big category of JVM, I think the knowledge that needs to be mastered are:
JVM memory model and structure
GC principle, performance tuning
Tuning: Thread Dump, analyzing memory structure
Class binary bytecode structure, class loader architecture, class loading process, instance creation process
Method execution process
New features provided by updates to major versions of Java (simple understanding is required)
2. Operation of Java
This may seem simple, but who can't run a java program?
But most of the time, we simply execute java programs through IDE. How does the underlying IDE execute java programs? A lot of people don't understand.
This knowledge is the most basic java developers need to master, the first is to teach you how to execute java programs on the command line, but many people once they have finished learning java and using IDE, they forget all about it.
Why is it important to know this? after knowing the purest startup mode of java, you can analyze the number of directories started at that time, how to name the execution, how to name the parameters, and whether there are any defects when something goes wrong with the startup.
This will help you to solve strange and possibly environment-related problems in your real development.
The knowledge that needs to be mastered here are:
Javac compiles java files to class files
The use of the java command and how to start the java class with package on the command line
The various paths (classpath, java) involved in the java program. Library . Path, home directory where java is running, etc.)
3. Data type
There is not much to say about this, but the mastery of basic types and object types in Java.
You can learn more about how JDK converts automatically, including packing and unpacking, and pay attention to avoiding the judgment of type equality after packing.
Main knowledge points:
Basic types: int, long, float, double, boolean.
Corresponding object types: conversion from Integer type to basic type, boxing and unboxing
Object type: equals, hashcode
Characteristics of String type
4. Objects and Instanc
In this respect, developers need to understand the concepts and differences between class and instance, which is a foundation of java's object-oriented features.
The main knowledge points are:
The concept of Class and Instance
The process of creating Instance:
No inheritance: allocate memory space, initialize variables, call constructors
There is inheritance: handle static actions, allocate memory space, define variables as initial values, from base class-> subclasses, handle initialization at definitions, execute constructors
Points to pay attention to:
Static properties are initialized from the base class-> subclass
Properties related to the default no-parameter construction method
5. access control
This is also a basis of java packaging features, need to master: public protected default private for class, method, field modification.
6. Process control
The basics of Java process control, although some grammars are not necessarily very common, need to be understood and used where appropriate.
Need to master: if, switch, loop, for, while and other process control syntax.
7. The concept of object-oriented programming
This is a core concept of java and needs to be mastered by any java developer.
Many features or knowledge points in Java are related to java object-oriented programming concepts.
As far as I understand it, a good developer needs to know more than these features (knowledge points) themselves.
It is also necessary to know how these objects are reflected in the object-oriented programming concept of java, which is more helpful for developers to master the development language java, as well as other object-oriented programming languages.
Here is just a brief list, the main knowledge points include:
Three object-oriented features: encapsulation, inheritance, and polymorphism
Their respective definition concepts, what characteristics are reflected, and their respective use scenarios
The concept of static multi-dispatch and dynamic single dispatch
The concept and use of overloading
Inheritance: multiple implementations of interfaces and single inheritance of base classes
Abstract, abstract classes, interfaces
Polymorphism: the concept and use of method coverage
API callback
8. Static
Static attributes are also often used in java daily development, and you need to know the usage related to the static keyword, as well as the use with other keywords, such as whether it can be used in conjunction with abstract, final and other keywords.
The main things you need to master are:
The definition and use of static properties, and how to initialize when the class is loaded
Definition and use of static methods
Definition and use of static classes
Definition and initialization timing of static code blocks
9. Basic knowledge points
Here is a list of some scattered, no systematic classification of some java knowledge points.
It is also used a lot in daily development. As a matter of fact, there is still a lot of content in this piece. At present, it is only summarized here for the time being:
These include:
Equals
Hashcode
Tring/stringbuffer
Final
Finally
Finalize
10. Collection framework
This is a need to master the part, to do java development, it can be said that there is no need to collect the framework, this is very important, here to sort out the Java collection interview questions and answers you must be clear.
But the knowledge here is not difficult, but for the collection is best to understand the internal implementation, because this will help you in different scenarios to choose the appropriate framework to solve the problem, for example, there are 1W elements of the collection, often need to contains judgment operation, know the characteristics of the set or internal implementation, it is easy to make the right choice.
The following is included here (concurrency correlation is not included):
Architecture of Collective Framework: basic Collection, Map
Content of specific set implementation, specific implementation of List, Set, Map, internal structure, special methods, applicable scenarios, etc.
The usage of the collection-related tool class Collections, etc.
11. Exception framework
Exceptions may not be taken seriously in java development, and the best practices for exception handling are described in detail.
Generally, if you encounter an exception, it will not have a big impact on the overall operation of the program after it is thrown directly or handled casually by catch. However, in enterprise design and development, the quality of exception design and handling is often related to the robustness of the system as a whole.
For developers, the handling of exceptions in a good system should be unified to avoid scattered exception handling logic everywhere. For the system, exceptions should be controllable and easy to operate and maintain. After some exceptions appear, there should be ways to deal with them and know how to handle them. So although the exception framework is very simple, for the whole enterprise application development, exception handling is very important. To handle exceptions well, you need to understand the exception system in Java.
There are not many knowledge points that need to be mastered in this part, mainly as follows:
Abnormal system:
The difference between ThrowableExceptionRuntimeExceptionErrorRuntimeException and general Exception, specific processing methods, etc.
12. Java IO
IO is not only simple to read and write files in java, but also includes all the input and output operations such as reading and writing of socket network. For example, reading the contents of Post in a standard HTTP request is also an output process, and so on.
For IO,Java, it not only provides basic Input and Output related api, but also provides some simplified operation of Reader, Writer and other api, which is also very important in some development (projects involving a large number of IO operations). It is also involved in daily development (log, temporary file reading and writing, etc.).
The main points of knowledge in this are:
The basic IO system includes InputStream, OutputStream, Reader/Writer, file reading, various stream reading, etc., the concept of NIO, specific usage and usage scenarios.
13. Multithreading
Multithreading is generally considered to be a difficult part of Java.
Multithreading can effectively improve cpu utilization and overall system efficiency, especially when there are a large number of IO operations blocked; you must know the Java multithreaded interview questions and answers here.
But it is also a double-edged sword, if not used well, the system not only does not improve much, or does not improve, but also brings problems such as debugging between multiple threads.
There are a lot of content in multithreading, just briefly explain the knowledge points that need to be mastered in the initial use of multithreading in Java, and later have the opportunity to introduce in detail the use of some advanced features separately.
Implementation and startup of multithreading
The difference between callable and runable
Respective characteristics and comparison of syncrhoized and reentrantLock
Thread pool
Future gets the execution result asynchronously.
Concurrent package
Lock
14. The network
Java also provides API that can directly operate TCP protocol and UDP protocol.
In cases where network performance needs to be emphasized, TCP/UDP can be used to communicate directly.
You can see the usage of these related API by looking at the source code of Tomcat, etc.
However, it is relatively rare to use TCP directly, and frameworks such as MINA and Netty will be used to deal with it, because there is not much development involved in this area, so it will not be listed in detail.
15. Time and date processing
For almost every application, the processing of time and date can not be bypassed, but the time-related API usage before JDK8 was not friendly.
At that time, you could choose time frames such as Joda. After the release of JDK8, the new time API basically combines the advantages of other frameworks and can be used directly.
For Java developers, you need to be proficient in using API to deal with time and date.
Specific knowledge points will no longer be listed, and a special article will be written later to summarize the use of time and date API in JDK8. More java core technology focus on Wechat subscription number craftsman's note reply 666 get
16. XML parsing / JSON parsing
In fact, neither of these two pieces of content is the content of J2SE, but in daily development, interaction with other programs and configuration files is increasingly inseparable from the parsing of these two formats.
However, for a developer, being able to understand some specific principles and methods of XML/JSON parsing will help you to choose the right way to make your program more efficient and robust in each specific scenario.
XML: need to understand the basic principles of DOM parsing and SAX parsing and their respective applicable scenarios
JSON: you need to understand the usage of some common JSON frameworks, such as Jackson, FastJson, Gson, etc.
17. Maven usage
Maven is not part of Java either, but maven is revolutionary and brings great convenience to java development. These 30 Maven commands you must be familiar with.
From dependency introduction and management, development process update and release output, and even version update, the use of maven can greatly simplify the complexity of the development process, thus saving a lot of time.
It can be said that maven has become a standard for java developers. So I also regard maven as a basic knowledge point for java developers.
18. Generics
This is a new concept that JDK5 began to introduce, but it is actually a grammatical sugar.
There will be some convenience when writing java code, general applications or business development, only need to be simple to use, do not necessarily use operations such as defining generics.
However, the development of some basic public components will be used, you can take a closer look at this part when needed, generally as long as it is easy to use.
19. Notes
Also introduced after jdk5, meta-annotations you must understand.
Spring is an excellent framework, starting with xml as a standard configuration file.
However, with the advent of Spring3, especially after the rise of spring-boot, it is becoming more and more popular to use annotations to simplify xml configuration files, which can save a lot of time in xml configuration for developers.
But the disadvantage is that annotations are scattered in various classes, unlike xml, which can have a global understanding and management of all configurations, so there is no way to completely replace all xml.
For general developers, you can use annotations. Some developers of public assemblies may need to understand the definition and implementation of annotations, and you can take a closer look at them when you need them.
20. RMI
RemoteMethodInvocation, the unique remote call interface of Java language, is still relatively easy to use. Click here to learn the difference between RMI and RPC.
However, if you need to cross-language, you need to use other methods such as webservice to support it.
Generally speaking, programs do not need to use RMI, but they can be used in specific situations. I am in a project that uses RMI to control the remote startup and stop of the program.
21. JNI
Java Native Interface, which allows local interface methods to be called in Java, is generally used for calls to Cpico code.
It is important to note that the path to loading the so/dll file in java is not complicated to invoke the interface itself, but it often takes a lot of time to load the required local interface library.
At this point, I believe you have a deeper understanding of "what are the core technologies of Java?" you might as well do it in practice. Here is the website, more related content can enter the relevant channels to inquire, follow us, continue to learn!
Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.
Views: 0
*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.
Continue with the installation of the previous hadoop.First, install zookooper1. Decompress zookoope
"Every 5-10 years, there's a rare product, a really special, very unusual product that's the most un
© 2024 shulou.com SLNews company. All rights reserved.