Java learning roadmap (the latest version in 2018) and the roadmap in 2018

Source: Internet
Author: User
Tags git commands redis tutorial

Java learning roadmap (the latest version in 2018) and the roadmap in 2018

Recently, some netizens asked me how to learn the Java backend and want to switch from other directions, but they do not know exactly what the Java backend needs to learn and where to start, which of the following are the mainstream Java backend technologies. I wrote this blog based on the experiences of people who have come here. It is not always true, but it is all summarized based on my own experiences for your reference.

Java Basics

Java is a pure object-oriented programming language. In addition to the basic syntax, you must understand its oop features: encapsulation, inheritance, and polymorphism. In addition, there are generic and reflection features, and many framework technologies rely on it. For example, reflection is used for Ioc and AOP at the Spring core, in addition, the dynamic proxy of Java itself is also implemented using reflection. In addition, some standard libraries of Java are also very common, such as collections, I/O, and concurrency, which are almost everywhere in Web development. They are also frequently asked during interviews, therefore, before learning the Java backend, you may wish to lay a solid foundation. In addition, there are some new features of Java 8, which should also be focused on, for example, Lambda expressions, Stream operations in a set, and the new Date API. For new features, I have also written a few blogs about this. Please find them by yourself, it will not be pasted out.

For Book recommendations, I do not recommend that beginners start with "Java programming ideas" because I decided to learn Java by myself that afternoon, I held this book in the evening. To be honest, I really didn't understand what it was talking about at the time, because I didn't have any foundation for object-oriented programming, this book was too profound and profound. For me at that time, it was a perfect book, but I think it is still a Java Bible, and every time I read it, I got some gains. I recommend that you read the "Java core technology" at the beginning. This book is easy to understand and can be accepted by beginners.

For video recommendations, I used to listen to the Basic Java tutorial (which can be obtained by following my public account) from instructor Bi Xiangdong of a customer. What Mr. Bi said was so lively and interesting, without knowing how to bring me into the Java trap, I Can't extricate myself. Sometimes I laugh when I listen to his video. Maybe it's the most interesting moment of my self-learning stage.

Database

SQL: SQL and MySQL

After learning some basic syntaxes, I directly followed the video instructor to practice table operations, such as single-table queries and multi-table queries. I recommend that you do not have to be easy to learn SQL. You need to do more exercises. Don't just understand it, because it is very important to write concise SQL statements at work. Here I will explain that I have been adhering to SQL statements in my project to avoid multi-table queries and avoid multi-table queries. I can separate multiple statements by separating multiple statements, this involves multi-Table query performance and database expansion.

JDBC: JDBC tutorial, JDBC get connection object source code analysis

You need to understand the usage of the jdbc api. In fact, it is only a set of standard interfaces. As long as all database drivers implement JDBC, we can call the corresponding driver through the standard API, there is no need to know how the driver is implemented. This is the benefit of interface-oriented programming. In addition, I understood JDBC directly by watching the video and followed the video to make a transactional little tool based on the Apache Dbutils tool. I specifically summarized it with a mind map:

Jdbc-utils Source Code address: jdbc-utils

Web Basics

Once the founder of open-source China, sweet potato wrote an article titled "Beginner Java Web development, please stay away from various frameworks and develop from Servlet". I think he is right. In today's Java Development, many developers only know how to use the framework, but do not understand some Web knowledge. In fact, there are many frameworks, but they are basically a routine. So before you learn any frameworks, please lay a good foundation for the Web and a good foundation for the Web.

This article is very clear about the Http protocol:

I was looking at "detailed explanation of Tomcat and Java Web Development Technology" for data recommendations on Web basics. I explained the technical knowledge of Java Web development in detail, but now, I think some of the technologies mentioned here are somewhat outdated, but it is also good to know the history of Java Web development. Therefore, in terms of Web basics, I read the "ultra-Comprehensive Java Web video tutorial" from a customer's instructor Cui, which is very detailed and vivid. There are also practical projects!

For JSP, you only need to know that it is actually a Servlet. For some of its tag usage, I think it can be ignored directly, because almost no company on the Internet still uses JSP, except for some old projects. Nowadays, the frontend and backend separation, single-page applications, and backend operations are only API interfaces. Therefore, time is precious. Focus on Servlet specifications.

About Tomcat, It is a Web Container. All backend projects we write must be deployed to the Web container to run. It is actually a Web container that complies with Http, server programs that communicate with clients through Socket communication: Tomcat structure and request processing

Mainstream Web frameworks

The Java Web framework is a versatile Web framework. If you have some experience, you can also write a Web framework. On the internet, Spring, Struts2, and Hibernate are three Java carriages. I just want to say, it was a long time ago. I seriously do not recommend Struts2 or Hibernate. Believe me, you only need to get started with Spring, SpringMVC, and Mybatis, especially the Spring framework, in fact, the Spring family framework is very good.

However, the reminder is that you should never indulge in various frameworks and be complacent in a variety of usage, so that you do not know why.

The core idea of Spring is IOC and AOP:

Understanding of Spring IOC

Spring Aspect-Oriented Programming

SpringMVC uses a Servlet for unified request forwarding and control. This Servlet is called DispatcherServlet:

SpringMVC initialization process

SpringMVC request processing process

Mybatis can dynamically assemble SQL statements, avoiding almost all JDBC code, manually setting parameters, and obtaining result sets:

Mybatis getting started

Mybatis Series

Advanced Web Framework

After using the SSM framework, you will feel that the framework is not the same thing. If you have a rough understanding of Spring, you will also have the idea of writing a "Cottage version" Spring, A lightweight Web framework provides the following functions:

In fact, apart from SSM, the Web framework can be described as a hundred thousand items, among which Spring is the most dazzling. Here I strongly recommend two Spring family frameworks: SpringBoot and SpringCloud.

SpringBoot makes up for the shortcomings of Spring configuration and does not need to work hard for complicated xml. It is a revolutionary developer of Java backend development. We recommend that you read the following book: springBoot practice 」

Build a web project using SpringBoot

SpringBoot automated configuration source code analysis

Custom SpringBoot Starter

Spring-boot-starter-tutorial

SpringCloud is a microservice architecture that divides projects into microservices based on services. Each microservice can be deployed independently, and services can be coordinated with each other. As a project grows, it becomes increasingly difficult to maintain it. In this case, the project is split into several microservices, maintained separately, and deployed separately, which can also reduce the coupling between different services of the project. The recommended book "Practice of Spring Cloud and Docker microservice architecture" perfectly combines Docker with microservices!

Official Spring Cloud website

The simplest Spring Cloud tutorial in history

I wrote a blog about Spring Cloud:

SpringCloud microservice architecture-Service Registration and Discovery

SpringCloud microservice architecture-service consumers

SpringCloud microservice architecture Breaker

SpringCloud microservice architecture-Service Gateway

Other technologies

Redis: a high-performance key-value database. When there are highly concurrent requests, caching data in Redis will improve the server's response performance and greatly reduce the pressure on the database.

Official redis website

Redis tutorial

Git: the world's most advanced distributed version control system. We recommend that you use Git from the command line!

Git Official Website

Most comprehensive Git tutorial

Common Git commands

Maven: a tool used to build a project. It perfectly organizes dependencies between projects through xml. You can compile the project into a bytecode file through the compilation plug-in. Similar Gradle is also a good choice.

Detailed description of the maven pom. xml file

Linux: At least common commands must be used to deploy projects in a linux environment.

Linux commands

The most comprehensive tutorial on connecting to a remote terminal through SSH

Docker: It's just a project deployment artifact. It's too late to explain. Read my Docker blogs and start the Docker journey! This is the first Docker book in China!

Docker practice (1)

Docker practice (2)

Docker practice (III)

Docker-deploy-tutorial

Development Tools

To do a good job, you must first sharpen the tool. Below are some development tools I recommend:

Intellij IDEA: the best IDE for Java Development. This is widely recognized. I used Eclipse in the first place. Later I used Intellij IDEA to find that Eclipse is a waste, so I advise you not to use Eclipse, Intellij IDEA!

IntelliJ IDEA tutorial

Iterm2: The best terminal for macOS!

Iterm2 User Guide

Chrome: Life is short. Please use Chrome. It's too late to explain. Get on the bus!

Postman: a very useful interface debugging tool.

Postman Official Website

I have a public account that will often share some Java-related things. If you like it, you can search for "Java headers" or "javatuanzhang.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.