Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

What are the knowledge points of Java backend?

2025-01-20 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Development >

Share

Shulou(Shulou.com)06/02 Report--

This article mainly explains "what are the Java back-end knowledge points". 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 knowledge points of Java back-end.

Basic knowledge

Data structure

Basic data structures are very important, no matter what programming language you come into contact with, these basic data structures should be mastered first. The specific implementation is reflected in the collection class of java. These data structures, which are the concrete primitive forms of these complex tools, should be kept in mind.

Training institutions generally do not have time to popularize basic knowledge, and through algorithms and data structures, "usually" they can tell at a glance whether they have been trained.

Common algorithm

Algorithms are the threshold for some big companies. There is no doubt that some new graduates who have participated in the ACM can kill most programmers who have worked for many years. The algorithm can cultivate logical thinking ability and hands-on ability, which is a very big addition in the first few years of the job. However, with the increase of working years, its proportion in the ability system will gradually decrease.

The way to learn the algorithm is through constant practice and repetition. Students who are not good at this should never try to solve a problem they have never seen before. The optimal solution to some problems may take a doctor's life's energy. all you need is to understand memory and draw inferences. The fastest way to advance is to browse leetcode.

For general research and development, sorting algorithms and time complexity must be mastered, and they are most commonly used in jobs and interviews. With plenty of time, you can also dabble in higher-level algorithm knowledge such as dynamic programming and knapsack, which is the left column of the following figure.

Books

Introduction to algorithms

The Beauty of programming

The Beauty of Mathematics

Database basic MySQL

MySQL is a widely used relational database. In addition to understanding basic usage and modeling, some basic knowledge is also necessary.

MySQL has the difference of storage engine. InnoDB and MyISAM are commonly used, and the advantages and disadvantages should be clear. ACID is a basic attribute of a relational database, and you need to understand the transaction isolation level behind it. We should also understand the causes of dirty reading and phantom reading.

In order to speed up the query speed, the index is a very important structure in the database, and B + tree is the most commonly used index structure. Because of the problem of character set, the problem of garbled code is often mentioned.

Professional DBA can usually help you solve some specification and performance problems, but there is not always a DBA, and a lot of things need to be done by the back end.

Books

"inside MySQL Technology-- InnoDB Storage engine"

"High performance MySQL"

"High availability MySQL"

Network foundation

Network communication is a charming feature of the Internet era. It can be said that we are dealing with it all the time in our work and life.

There are still a lot of people who are very vague about the three-way handshake and four waves. The result is a careless understanding of the state of the network connection, and the program is greatly reduced in terms of performance and robustness.

HTTP is a widely used protocol and usually requires a deeper understanding of it. For Java, familiarity with Netty development is a shortcut to getting started with web development.

Crawlers are another attractive point in web development, but it is recommended to use python instead of Java to do it.

Books

Authoritative Guide to HTTP

"TCP/IP detailed solution Volume 1"

Operating system Linux

All those with a professional background have taken the course of "computer Organization", which is very important but boring. Combined with Linux understanding will be much more intuitive. Given that most current server environments are Linux, early contact can complement each other.

You need to figure out the interaction and speed differences between CPU, memory, network, and IZP O devices. For computing-intensive applications, we need to pay attention to the efficiency of program execution; for Imax O-intensive applications, we should pay attention to the switching between processes (threads) and the optimization and scheduling of Imax O devices. This part of knowledge is the premise of developing some high-performance and reliable middleware, which can not be bypassed.

For Linux, the first thing you should master is daily operation and maintenance, including the use of common commands and software installation and configuration. Regularity is also a knowledge point that must be mastered.

Scripting is a very large addition to the back end. It can not only increase the efficiency of development, but also make you comfortable with some unexpected problems.

Books

Advanced programming in UNIX Environment (3rd Edition)

"Bird's Linux Private Cuisine"

Design and implementation of Linux Kernel

"Linux Command Line Collection"

Java Foundation

JVM

Java programmer's favorite and nightmare. Depending on the Oracle version, there are differences between the jvm versions. The knowledge of JVM consists of two aspects. One is at the storage level and the other at the execution level.

Take storage as an example, it is divided into two types: in-heap and out-of-heap, each with its own advantages. The garbage collector is designed for in-heap memory, and the most commonly used ones are CMS and G1. JVM has a wealth of configuration parameters to control this process. At the bytecode level, there is knowledge of lock upgrades and memory barriers, and JIT compilation is used to increase execution speed.

JVM also has a memory model, JMM, which is used to coordinate multithreaded concurrent access. JVM's spec is very large, but it is often mentioned in interviews.

In addition, jdk provides a range of tools to pry into this information. Including jstat,jmap,jstack,jvisualvm, etc., are commonly used.

Books

"in-depth understanding of Java virtual machine"

JDK

Now it's finally at the heart of java programmers: JDK, a set of API implemented according to the jvm specification. Our normal job is to combine these API to control the behavior of the program.

The code of jdk is very large and complicated. The most important ones include: collection, multithreading, NIO, reflection, file manipulation, Lambda syntax, and so on. This part of the content, plus the following SSM, is basically where most of the kids play.

If the data structure and algorithm are theories, here is the implementation of the supporting theory. Whether Java played well, that is to say, here.

Books

Effective Java Chinese version

"data structure and algorithm Analysis: Java language description"

SSM

You may use SSM to develop projects and think that programming is nothing more than that. Design patterns are bad in mind, and IOC and AOP are easy to catch. Most of the peers are gathered here, and some may end up Ok here, because some students' next focus is on project management rather than technology.

SSM specializes in Web development. At present, the forms of expression are gradually diversified, and with the prevalence of the separation of front and rear ends, the pattern of Restful with clear semantics is becoming more and more popular.

Books

"Head First Design pattern"

"Spring revelation"

"SpringBoot revelation"

"inside MyBatis Technology"

"in-depth Analysis of Tomcat"

In fact, just follow the document once, many books are just translation.

Concurrent programming

Today's servers are multi-core, and there are more concurrent programming. Java has a variety of ways to create multithreading, but currently more thread pools are used. The foundation of the thread pool is AQS, which is based on AQS, and there are many tool class extensions.

Java has many ways of locking and thread synchronization at the same time. Locks can be divided into optimistic / pessimistic locks and fair / unfair locks, so it is difficult to write a deadlock code.

There are two issues that are examined very frequently, one is ABA and the other is pseudo sharing. Concurrent programming is generally paired with network programming to provide a series of solutions to a problem.

This is a difficult bone in java.

Books

"Java Core Technology Series: Java multithreaded programming Core Technology"

Authoritative Guide to Java performance

"Java concurrent programming practice"

Performance optimization & troubleshooting

Some people think that this should be the category of SRE, but usually the one who is most familiar with the business is development, and there are no obvious boundaries between technology. Mastering this content will make you stand out from the crowd.

From operating system kernel optimization to database indexing and transaction optimization, this part of the skills are built on a solid foundation. Which is the basis of the operating system.

Every component of the operating system can have problems, and for a java backend, it is very easy to locate these problems. For example, common memory overflow problems.

Books

Top of performance: insight into Systems, Enterprise, and Cloud Computing

"High performance Linux server construction practice"

Java advance

There are some knowledge points below, and the boundaries are very vague. They have me in you and you in me, it can be said that they are a whole.

Redis

Cache can be said to be the most widely used technology in computer systems. For distributed caching, Redis is the most commonly used. Because of its rich data structure, more and more scenarios are applied.

You know all the five basic data types, but if you name the others, the impression will be different. Redis has two cluster modes: master-slave and Cluster, and the high availability configuration is also different.

Redis can adapt to almost all Internet services except search, and some specification restrictions are necessary for its use. In general, the faster the system, the easier it is to be dragged to death by the long tail operation. Therefore, you should also be aware of the contents of the info command.

There are three points to pay particular attention to: distributed locking, current limiting, and synchronization with source data.

Books

"Redis actual combat"

Redis Development and Operation and maintenance

Design and implementation of Redis

Kafka

MQ is a very important component in distributed system, and Kafka is the most widely used component at present. In addition to being used in big data scenarios, Kafka can also be used in business systems.

The speed of Kafka is very fast, depending on the level configuration of ACK, the reliability will increase, but the speed will slow down. For the message system, monitoring and alarm is a very important part, which can predict the problems of the system in advance. Kafka's cluster itself is highly available, relying on Zookeeper components, and understanding some basic concepts, including ISR, can understand this process in more detail.

Books

Introduction and practice of Kafka

"inside Kafka Technology"

Sub-library and sub-table ShardingJDBC

As the data grows, MySQL itself has a bottleneck. Sub-database and sub-table is a set of solution for relational database, which is transformed into distributed database.

According to the segmentation level, the most likely thing is to cut in the agent layer and the driver layer. ShardingJDBC is a component in the driver layer.

The component itself is just a problem. Before the real split, there will be vertical split and horizontal split. Our online business also needs to be split and switched without downtime, and a full and incremental synchronization tool is required.

Those who have the conditions to go through this process are all precious wealth. It has many challenges not only in technology, but also in process. You will experience that technology, process, and management are inseparable.

Micro Service & Middleware

At present, the most popular microservice architecture is SpringCloud. This is very easy for students who are familiar with SSM development. Micro services have key components such as registry, RPC, load balancing, circuit breaker and gateway, some of which have many different substitutes.

After the split of the microservice, a series of problems arise, which need some other middleware support. Such as monitoring alarm, ELKB, configuration center, dispatching center, call chain and so on. Although they are needed without micro-services, they obviously work much better when combined.

A variety of ABG B tests, canaries, grayscale, etc., is basically one of the ultimate goals.

Micro-service is a complex whole, which combines the content of technology and process management.

Books

Scalable Service Architecture: framework and Middleware

"the actual battle between Spring Cloud and Docker micro-service architecture"

"the way of Architectural practice"

Distributed system

As the number of servers increases, some services, including the microservices mentioned above, need to coordinate and interact. This is a distributed system.

The theoretical basis of distribution is CAP, BASE and so on. There are many algorithms for consistency, among which Raft, as an easy-to-understand upstart, is more and more widely used.

This part focuses on the theory, once it begins to put into practice, it is written out of some big guys. Here is an article, although it is not very complete, let's talk about it.

Books

"NoSQL essence"

ZooKeeper: a detailed explanation of distributed process collaboration Technology

"principle and practice of distributed consistency from Paxos to Zookeeper"

Supporting technology

Basic operation and maintenance

I prefer that infrastructure and operations are inseparable because they have too much overlap and similarities. The typical feature of the cooperation of basic operation and peacekeeping architecture is platform + standardization.

This is the place to test the overall quality, with both breadth and depth.

Books

"run, Ansible"

Docker-- Container and Container Cloud

Authoritative Guide to Kubernetes

Authoritative Guide to Jenkins

"Deep understanding of Nginx"

Safety

Safety is no small matter, construction site and system security is the same reason. It is necessary to be familiar with some common attacks and encryption and decryption algorithms.

It's like locking the door of your home: you can stop most evil people, but you can't stop unscrupulous thugs.

You may find that you don't have components that you focus on. This is not surprising, such as personal favorite ES, can not find a suitable position. Here is only the most important point, it is already complicated, and a hodgepodge is not good.

It is worth reminding that this knowledge is a branch of many development routes. There may be some friends who only struggle on one of these points and lack the so-called breadth, or some friends who have a full stack label but are doing the work of SSM. Different companies need different levels of technology. A company that specializes in ERP will have more articles on project management; a team that specializes in IM may be familiar with web development.

At this point, I believe you have a deeper understanding of "what are the Java back-end knowledge points?" 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.

Share To

Development

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report