In fact, learning Java to learn what degree is proficient, this is actually no final verdict, nor does it mean that you can take an annual salary of hundreds of thousands of offer can claim to be proficient. Plus, I find it funny when I go into an interview with a guy who has mastered the offer on his resume. But I think that if you’re in the top 0.1% of all the Java programmers out there and you’re reading pretty much all of them, then you’re “proficient.” Because nobody’s better than you, you’re proficient.

Therefore, I will choose to list a few knowledge points recommended to everyone, if you can master and truly understand these things, then you can reach the stage of mastery.

The first thing to learn is computer basics, because Java is not as simple as Python, it requires some basic, if you jump straight into Java, there is a 90% chance you will give up.

Because if you want to learn Java well, you need to understand object-oriented design, and object-oriented design is not something that new programmers can master. So what to do? Isn’t this a dead end?

In fact, to really understand this design philosophy, you need to learn C, not Java.

Why is that? Because C is process-oriented, what are the process-oriented and object-oriented design ideas? I’ll give you an example.

The difference between process orientation and object orientation is seen in “How to Put an elephant in a refrigerator” :

First, process oriented

In order to get the elephant into the fridge, it takes three steps.

Ideas:

1. Leave the fridge door open (get the fridge with the door open).

2. Put the elephant in (open the door and get the refrigerator with the elephant in it).

3, close the refrigerator door (after opening the door and loading the elephant, get a closed refrigerator).

According to the above thinking, it can be seen that each process has a phased goal, which can be completed in turn to put the elephant in the refrigerator.

Second, object-oriented

In order to get an elephant into the fridge, there are three actions (or behaviors). Every action has an actor, which is the object.

Ideas:

1, refrigerator, you open the door for me.

2, refrigerator, you put the elephant for me (or, elephant, you get me into the refrigerator).

Refrigerator, you close the door for me.

Do these in turn, and you can load the elephant.

I’m just going to give you an example, and if you’re still confused, I’m going to recommend a few videos and books on getting started with C.

For book recommendations, check out this answer

What good books do you recommend for beginners to learn C?

The book is generally able to calm down to read, the general beginner’s biggest problem is difficult to calm down to programming, if you feel difficult to read the book, you can see this answer, the video inside can be said to be very full

What are the best C language course videos?

The shortest way to learn programming is to type code every day. For example, C Primer Plus has a lot of code examples. You have to type in front of each other and do exercises after class for 3-6 months.

Once you get there, you can say the basics of C.

If you can stick with C, getting started with Java is a lot easier for two reasons

  1. C is basically the granddaddy of high-level languages, and if you’re good at C, it’s pretty easy to learn other languages.
  2. C is a little more difficult than Java, and it has a lot of features like going from a difficult language -> a medium difficult language, which makes it easy.

Ok, so from now on, we are going to enter the Java learning phase.

Learning Java, I will introduce it in three stages: elementary, intermediate, and advanced

Java based

What is the level of beginner Java? I think it is to understand Java syntax rules, language features, so say a little dry, directly on the mind map!

In this picture, if you can understand almost all content in the figure, then you can say that is an introduction to Java, but a concept to note here, this is not to say you are a qualified primary Java programmer, because if you want to reach the level of the primary Java programmers, you’ll can work, can work you want to know is the standard framework, Don’t worry. We’ll talk about it later.

Some people ask why there is no concurrency or Java virtual machine in the figure, these belong to the middle and advanced content, just start to learn Java do not understand what concurrency and JVM!! Some people or training classes like to show their understanding of XXX, understand XXX, it is misleading small white yao.

Then again, how do you learn and understand these things? Here comes the key!!

If you can see this, I think you’ve got a daily programming habit, and you’re ready to get down to programming.

So LET me first recommend you a very suitable book for beginners to learn Java

Head First Java

Head First Java is a complete object-oriented (OO) programming and Java learning guide. This book is designed with learning theory in mind, allowing you to start from the basics of programming languages all the way up to projects that include threading, networking, and distributed programming. Most importantly, you’ll learn how to think like an object-oriented developer.

Swing’s graphical interfaces and GUIs can be omitted, or simply understood, because few people develop desktop applications in Swing these days.

This book is very suitable for the small white, zero basis you can see, the Head of the First series of books are generally humorous language, not tired to read, and have very much exercise book game/way of thinking, for experienced people, see the book feel very weak-minded, but for zero basis or Java beginners, This is a very suitable system for learning Java and a book to fill the gaps.

Java Core Technology Volume I

Some people recommend Java Core Technology Volume 1 as an introductory book, which I actually feel is not very friendly. Although it is also a basic book, it has different reception levels for different people. I recommend reading this book after reading Head First Java.

Java Programming ideas

Java programming Ideas is a magic book, and whether you are a beginner, intermediate or advanced programmer, you will learn something new every time you read this book

This book is also not suitable for students who are just starting out in Java. Even the first three chapters are not friendly, because Java programming ideas are only about object-oriented process design ideas, and there are a lot of sample code in this book. I highly recommend that you learn the code ideas in this book and put them into your work. These coding ideas and code specifications can be very useful!!

So with that said, the basics you need to know to get started with Java are

  • Introduction to Java
  • What are the features of Java
  • What is a Java development environment
  • Java Development Environment Configuration (Eclipse for starters)

There is a distinction to be made between different types of computers, Mac and Windows, and there are very few direct Linux development approaches, so we won’t discuss the Linux approach here

See this article for Mac configuration

See this article for configuration on Windows

  • Write introductory Java programs

Here you need to use integrated development tools, either Eclipse or an IDE, which is recommended for beginners because ides are not friendly for beginners.

Eclipse download and installation

Java entry program preparation

Well, if you can follow the steps above, congratulations, you have successfully written a Java starter program.

Now, you are ready to start learning about Java.

  • Understand object – oriented design ideas

First, you need to know what object-oriented design is.

I recommend that you take a look at chapters 1 and 2 of Java Programming Minds

Zhihu’s answer can also help you understand the idea of object-oriented programming.

  • Basic Java syntax (Java identifiers, Java modifiers, Java variables, keywords, Java comments)

For Java variables, see this article

There are many variables in Java, it is easy to make beginners at a loss, here I wrote a Java variable to clarify the relevant article

How many variables are there in Java

  • Java Control Flow

  • Java access control permission

  • object-oriented

    • inheritance
    • encapsulation
    • polymorphism
    • There are three main characteristics of object orientation: inheritance, encapsulation and polymorphism. You can refer to this blog post on the three basic characteristics and five basic principles of object orientation
  • Java Abstract classes and interfaces, also refer to this article for an in-depth understanding of Java interfaces and abstract classes

  • Java Exception and Error, here I also wrote an article on the Exception and Error, and after reading this article, I will have no problem arguing with the interviewer

  • Java collection

  • Generics, for a deeper understanding of generics, see this article – the Java Generics Guide – which is by far the most detailed explanation of generic methods

  • Inner class, a systematic understanding of inner class, you can refer to this article Java inner class details – Matrix haizi – blog garden

  • Why is it that a college student who has not graduated can speak IO so well?

  • Java enumeration Enum, a comprehensive understanding of Enum, in this article

  • Reflection, this article is so good after learning reflection, I got in! (dry)

  • Java annotations

All of the above and mind maps are available in this article

Java Technology Core Summary PDF download

Above are the self-study process based on the direction of the article, the following is the self-study process in the direction of the video.

1, Java foundation 1, Still Silicon Valley Song Hongkang (strongly recommended) :

Still Silicon Valley Song Hong Kang Java basic tutorial (Java entry gods, complete supporting information)_ miwyrbi (゜-゜) analysis ロ cheers ~-bilibili

2. Dark Horse Java Foundation + Employment Class + various project IDEA versions (recommended) :

Dark horse Java foundation + employment classes + all kinds of project idea version (is being updated) _ miwyrbi (safety -゜ -゜) analysis ロ cheers ~-bilibili

Power Node Java Zero Basic Tutorial video:

Java based tutorial video zero (available for Java 0, Java beginners) _ bi li bi li (゜ ゜ つ ロ cheers ~ – bilibili

4, Beijing Shang Xue Tang Gao Qi (recommended) :

Gao Qi teacher should each net friend request and updated JAVA300 set _ mimibili (゜-゜) analysis ロ cheers ~- mimibili

5, Seek knowledge lecture: 2019 Seek knowledge Lecture Zero basic Java introductory programming video tutorial high reputation no nonsense no urine points:

2019 video tutorial introduction to Java programming knowledge lecture hall zero basis High reputation no nonsense No urine at _ bi li bi li (゜ – ゜) つ ロ cheers ~ – bilibili

Java8 +JUC+NIO:

Is still silicon valley Java8 new features + JUC + NIO_ bi li bi li (゜ ゜ つ ロ cheers ~ – bilibili

If you can master the basics, I think it should take you at least 3-6 months. If you can stick with it, I encourage you, but don’t get complacent, because it’s only the very, very basics, but now you have one foot in the door.

Design patterns

Design patterns are not there for you to learn right away (you can, and no one can stop you from learning), because design patterns are involved in every aspect of your work. There are some design patterns that you may never use in your life, but you need to understand their ideas in order to write thoughtful, coherent code.

I can recommend some books to you, you can read any of them.

Head First design pattern

This book only has 14 chapters, but it introduces all 23 design patterns, and each design pattern has a corresponding application case. It reveals the design pattern step by step and tells you the evolution process of the design pattern in humorous language description.

Reading this book is not just about learning knowledge, but learning a way of thinking, learning a cognitive skill, learning a ladder of growth. In a word, use your spare time to read this book, no less than you concentrate on your work or study.

Graphic design pattern

Design patterns are more an idea than a fixed way of writing code, so don’t limit yourself to these conventions. Japanese writing is very easy to understand, suitable for small white. 194 charts + Java sample code = Easy to understand GoF’s 23 design patterns.

The book explains GoF’s 23 design patterns one by one in easy to understand language. In the course of explanation, not only with a wealth of pictures, but also theory combined with examples, using Java language code to achieve the design mode of the program, so that the program really run, and provide the use of mode to solve specific problems of exercise and answers. In addition, supplementary explanations of the Java language’s capabilities are provided where necessary to deepen the reader’s understanding of Java and to review Java while learning about design patterns.

These two books are perfect for beginners to learn design patterns

Design patterns

This book summarizes the most valuable lessons learned in object-oriented design by selecting 23 design patterns from object-oriented design examples and presenting them in a concise and reusable form. The book categorizes a set of well-designed, articulate software design patterns that are particularly useful in practical Settings. This book is suitable for university computer science students, graduate students and related personnel reference.

This book is not suitable for beginners because it is written in C++, and it is not easy to understand without some knowledge of C++ syntax. I think the following comment is very appropriate.

Relearn Java design patterns

I would like to recommend my friend Fu Ge to write a re-learning Java design pattern, this book is color printing, the author wrote design pattern about two years of time, very hard. The book contains a wealth of illustrations and examples.

This book starts with six design principles, warning us that we need to pay attention to the code writing principles in the daily development process. At the same time, the book is full of vivid examples of how code can be written beautifully in relevant business scenarios. Principles are both specifications and conventions to be followed during daily development. Design patterns are tools that can be used in business scenarios. Follow the rules and use the right tools in the right scenario, and your code will be impeccable!

Design patterns don’t have to watch the video, just read these books.

Design patterns are not good for reading them all in one sitting because they get mixed up when you read several. Trust me, you can familiarize yourself with one design pattern a week so that you can use it at work. Watch it all in one sitting and remember the last design pattern. Trust me, practice it…

Java advanced

Java advanced need to learn a lot of things, the content involves many aspects, we will talk to you next

Note: You don’t have to be an intermediate programmer when you learn advanced Java, but you need to be able to incorporate this knowledge and apply it to your project/practice. How much you know is up to you.

First is Java multithreading, here I first listed multithreading should master the outline of knowledge

Here is a multi-threaded mind map organized by my friend. I don’t know if it is helpful for you. The address is as follows

After understanding these 10 brain maps, I expanded.

Or search “Programmer Cxuan” on wechat, and reply “Autumn Recruit” with many better mind brain maps.

So instead of looking at this brain map, LET me recommend a few books on Concurrency in Java.

Java concurrent programming practice

Don’t hesitate, this book is the king of concurrent programming and a must read.

The external edition book will not discuss with you what source what, they only look at the idea, thought, implementation is easy. So concurrent programming in action is more about ideas, and the book also lists pseudocode and application scenarios to test those ideas.

This book is not completely suitable for the current situation of the Domestic Internet, because in the eight-part essay, endorsement so popular today, if you want to enter dachang, become a “senior programmer”, you need to know some eight-part essay.

The art of Java concurrent programming

So if you want to find a job in China, then this book is for you. Don’t do it for me. Ali wrote it.

These books list some knowledge points, in fact, are often asked by big factory, so this book is worth your careful reading.

The beauty of Concurrent programming in Java

This book is more suitable for beginners, although I have no system read, but also turned over, this is learning Java concurrent programming a good book, can be used as a leak or consolidation of a.

Illustrated Java multithreaded design patterns

Have to say, the Japanese book is easy to understand, full of fun, this has to admire, this Java multithreaded design pattern, is to understand the use of multithreading design pattern a very good book. This book through the specific Java program, in simple and easy to understand the language of multithreading and concurrent processing commonly used in 12 design patterns, to help readers deepen the understanding of multithreading and concurrent processing, and master their use skills.

Books see this a few books are almost, and Java concurrency this I do not recommend you to see the video, it is best to personally verify, video this thing is after all others have eaten the rest, the most important or to wear a hand of shoes, personally verify.

Speaking of which, what should you know about Java concurrency? Make a point!!

  • The concept of process and thread, Ruan Yifeng teacher has a simple explanation of process and thread a simple explanation – Ruan Yifeng network log, from the perspective of the operating system to understand the process and thread, you can have a look at this article I wrote
  • Java multithreading foundation, you can see this article I wrote, introduced the basic Java multithreading methods and operations 2W words + 40 pictures take you through concurrent programming!
  • Java thread state and thread state transition, Java thread six states and switch (thoroughly explained)_
  • Communication mechanism between Java threads
  • Understand the Java memory model
  • The Happens-Before principle or read chapter 3 of the Art of Concurrent Programming in Java
  • Volatile keyword resolution
  • Synchronized keyword parsing
  • CAS and Atomic operation I wrote an article on the analysis of Atomic classes, a magical journey of Atomic XXX, why there is an AtomicReference?
  • This article is so good that I have drawn 35 pictures just to get you into AQS
  • After finishing this thread pool, I coughed up blood

The thread pool part of the mind map

  • Lock in Java, this article is simply too complete do not understand what is a lock? Just read this

I also put together a mind map for the lock part

  • Multithreaded tool class

    • CountDownLatch
    • Semaphore
    • CyclicBarrier
    • Exchanger
  • Fork/Join framework

  • ConcurrentHashMap is a must-ask in an interview. ConcurrentHashMap? I believe no one can stop you after reading this article! , ConcurrentHashMap implementation principle and source analysis – Dreamcatcher – CX – Blog park

  • CopyOnWriteArrayList

  • Java Concurrent Series – BlockingQueue

Right, I here also summarized a “simple Java multithreading”, you can be too awesome! Ali several engineers rewrote “Java concurrent Programming” download

If you can understand the above content, so you Java this part can be regarded as advanced level, you go to big factory interview to ask some eight-part essay, multithreading this problem is not big.

JVM

The Java Virtual Machine (JVM) is also known as the JVM, and this part is the key to judging the Java programmer’s watershed. The JVM is a point that you must break through and improve if you want to reach the level of an intermediate to advanced Java programmer. Here’s what you need to know about the JVM.

As usual, I’ll start with a few excellent books about the JVM

In-depth understanding of the Java virtual machine

This book is one you must see, and the author is our domestic Zhou Zhiming, domestic authors generally talk about implementation more, less professional terms, this book is easy to understand, although there are many concepts, but Zhou Zhiming gave examples and explanations

Given a rating of 9.5 by Chinese authors on Douban, this book is a classic for learning about the JVM and is highly recommended by five stars.

Java Virtual Machine specification

Java virtual machine specification is also zhou Zhiming big guy to participate in the translation of a book, the authority of this book is undoubted, in fact, is in accordance with the Java official document to write, can be said to read this book in the interview when talking about JVM you can give the “official” answer, greatly increase your chances of passing the interview.

It should be OK to learn the JVM to master the above two books, but here I still like learning partners some extension books to recommend.

The HotSpot of actual combat

It explains how the HotSpot VIRTUAL machine works in a very simple way, presenting the essence of what lies behind it one by one. This book is intended for readers who already have some Java programming background, as well as developers, testers, and operations personnel who are working on various software development platforms in Java or JVM-based programming languages. For JVM and programming language enthusiasts, HotSpot In Action is also a valuable learning reference.

Write your own Java virtual machine

We all know that the best way to learn programming is to do it by hand, but luckily we can write our own JVM.

Write your own Java Virtual Machine is part of the Do It Yourself series, which includes a number of hardcore books.

If you have time, I recommend you to write a virtual machine according to the contents of the book, for the master understanding of its operation principle is very helpful.

I also don’t recommend watching videos to learn about the JVM, just reading books is enough, learning about the JVM is to make you think and think, if you have to ask me to recommend a video, then I am willing to hand over

Silicon Valley JVM complete tutorial, millions of playback, the peak of the entire network (Song Hongkang details Java virtual machine)

Some of the things that are involved with the JVM

Get the address as follows

After understanding these 10 brain maps, I expanded.

Main Contents involved

  • Java memory partitioning and memory management
  • Garbage collector in the JVM, here are two recommended articles to solve the JVM garbage collection as simple as this, or this article summarizes the JVM garbage collection mechanism (garbage collection, collection algorithm, garbage collector).
  • If you don’t know how to use JVM performance monitoring and tuning, you’ll need to know how to use it.
  • JVM Tuning, or this article on JVM Performance Tuning (4) — Performance Tuning Tools
  • Class file structure in the JVM
  • The JVM class loading mechanism, or this article on the One Technology Stack: THE JVM Series (5) – The JVM class loading mechanism in detail
  • JVM bytecodes, JVM bytecodes, I recommend reading a book, this book is

This is a book that reveals the “black art” of JVM bytecode. It dissects JVM bytecode in depth from both the principle and application dimensions. The book covers most application scenarios of JVM bytecode, such as Java performance optimization, software protection and cracking, APM, etc., and explains its practical operation skills in these scenarios through a large number of practical cases.

Here are a few more good bytecode articles to recommend

Exploration of bytecode enhancement technology

JVM Basics lecture 5: Bytecode file structure – Chen Shui – Blog garden

Easy to understand Java bytecode

So far, the Java language line has been crossed. Although I have outlined the learning path for concurrency and the JVM above, this learning path does not mean that you have to learn concurrency to learn the JVM. In fact, it is better to learn the two together. Because concurrency involves the relationship between volatile synchronized and the memory model, which is the content of the JVM, the two are mutually reinforcing. And you don’t have to learn concurrency and the JVM to read everything at once. It’s intermediate and advanced stuff. You can read one article a week.

It will take at least two to three years to really master these things. I don’t mean that you should learn these things in three years. You can learn the others, and the ones I recommend are the ones that you should master in this time frame.

MySQL

MySQL has to learn the basics of Java, Java concurrency, JVM, even before concurrency and JVM, that is, you can learn MySQL after learning the basics of Java.

At this time MySQL I refer to the MySQL foundation, because MySQL broad and profound, want to understand MySQL is not easy, and our general Java development to master MySQL to the intermediate level can.

MySQL Beginner level requires you to be able to write MySQL. Here are a few recommended books from beginner to advanced. You can read the corresponding books according to your level and ability.

MySQL Basic Tutorial

This book is widely recognized in Japan as the first choice to get started with MySQL. The original version has been sold for 13 years and is highly praised and detailed.

SQL Basics

Another high-scoring book written by a Japanese.

This book introduces relational databases and the use of the SQL language used to manipulate them. The book through rich illustrations, a large number of examples and detailed operation steps, so that readers gradually master the basic knowledge of SQL and the use of skills, effectively improve the programming ability. There are exercises at the end of each chapter to help readers check their understanding of each chapter. In addition, the book also summarizes the important knowledge points as “rules”, convenient for readers to refer to at any time.

Simple MySQL

This book is zero basic learning MySQL is a very good book, from simple to deep, easy to understand the text.

But the book is so thick and covers so much that it is not easy to grasp the main points.

MySQL will know and will know

Comparatively speaking, this book is relatively thin.

It is also a good book to get started with MySQL. It starts with simple data retrieval and moves into more complex topics, including the use of joins, subqueries, regular expressions and full-text based searches, stored procedures, cursors, triggers, table constraints, and more. The reader is instantly enhanced by a clear, systematic and succinct presentation of what he or she needs to know through focused chapters.

SQL will know will know

SQL syntax concise, flexible use, powerful, has become today’s programmers indispensable skills.

This book is a classic SQL bestseller that is popular with readers around the world. It is rich in content and concise in writing, and provides a lot of concise examples for various mainstream databases such as Oracle, SQL Server, MySQL, DB2, PostgreSQL, SQLite and so on. Different from other similar books, it does not elaborate too much on the basic theory of database, but specifically for front-line software developers, directly from SQL SELECT, about the most commonly used and most necessary SQL knowledge in the actual work environment, very practical. With this book, readers can quickly write world-class SQL from a novice with little SQL experience!

The above recommended some basic MySQL books, after reading any one or two of the above, then you have the initial skills of CRUD. Congratulations on being one step closer to being a beginner Java programmer.

I’m going to recommend some mid-to-advanced content that will stay with you throughout your development career. Yes, you heard that right. If you’re developing, these books will stay with you throughout your development career, in any language.

High performance MySQL

This book is excellent! This book is a classic in the MySQL field and has a wide influence. I contacted publishers and sent 20 books to readers, and more than half of them asked for high-performance MySQL, which shows the impact!

Cxuan sends 20 books to everyone!!

How does MySQL work

This book just came out last year, it was very popular with kids, and I wrote a little book at Denver that seemed to be the most bought course, and this book is a collection of little books, very hardcore.

Written in a humorous and easy to understand style, this book provides solutions to these questions. Although the presentation of this book is very different from the usual academic and theoretical IT books, IT is a very serious technical book, covering some of the core concepts that students using MySQL see in job interviews and in the workplace. This book is an excellent book for technical personnel who are MySQL experts, DBA whose skills need to be further improved, and even those who are new to the database industry to thoroughly understand how MySQL works.

Database indexing and optimization

This book we may listen to less, but this is a good introduction to the index book, provides an estimate of query time and methods, and explains the index on the efficiency of the query of the impact of the way, for practice and guidance. And database indexing and optimization is the focus of MySQL.

The above recommended books are considered advanced, while the following ones are considered advanced for MySQL.

Inside MySQL: InnoDB storage engine

What’s so special about InnoDB storage engine as the preferred storage engine after MySQL 5.5? This book will give you a detailed introduction to the wave. This book provides an in-depth analysis of InnoDB’s architecture, implementation principles, and working mechanisms from a source code point of view. It also provides a number of best practices to help you understand InnoDB in a systematic and in-depth way. More importantly, it provides excellent guidance for you to design and manage high performance, high availability database systems

MySQL Technology Insider

The Inside Edition of MySQL Technology (5th Edition) is a truly classic book on MySQL. It provides a comprehensive introduction to the basics of MySQL and its unique features that differentiate MySQL from other database systems, with a special focus on how to use and manage MySQL efficiently. “MySQL technology insider (fifth edition)” is made up of four parts: the first part focuses on and database related to the use of some basic concepts, the second part focuses on how he began to write and use the MySQL program, the third part is mainly geared to the needs of those responsible for database management, the fourth part provides some reference appendix. The book contains numerous examples that demonstrate the various features of MySQL in detail. In addition, the book provides content for those who develop database applications in C, PHP, and Perl. Inside MySQL Technology (Edition 5) is not only for MySQL beginners, but also for database managers and developers who want to learn more about MySQL.

MySQL kernel

InnoDB storage engine kernel, such as LATCH, B+ tree index, transaction, lock, etc., from the perspective of source code depth analysis of InnoDB architecture, implementation principle, working mechanism, and gives a lot of best practices. MySQL Kernel: InnoDB Storage Engine Volume 1 is intended to help users truly understand the development of a database storage engine.

Ok, so there are so many books on MySQL, are there any videos on MySQL? Ah? MySQL still use video? MySQL is not easy to talk about, the primary directly to the command type can be, advanced content, many lecturers can not explain clearly, let alone the kernel, so we still read, read enough!

So about MySQL, the content is actually a lot of, but in order to this answer can be as a standard answer to explain, I patiently give you to learn the content of the list, readers if you think my efforts are worth it, might as well give this article a thumbs up!

138 images to get you started with MySQL

47 pictures to bring you MySQL advanced!!

Crack! MySQL 82 图 片 Fly with you!

The above MySQL content is focused on the daily development and use of MySQL, and does not go into the MySQL architecture and the underlying content, so the following content will cover the MySQL architecture and the underlying content, which is also behind the CRUD, you need to work hard.

  • MySQL architecture, this is a good article
  • Deep understanding of Mysql — locks, transactions, and concurrency control
  • MySQL isolation levels and implementation principles
  • The relationship between transaction isolation level and locks in Innodb
  • Redo log and undo log
  • What is multi-version Concurrency Control (MVCC) for MySQL?
  • Deep into the MySQL storage engine to analyze locks and sorts
  • Learn more about the MySQL storage engine ——-InnoDB
  • Learn more about MySQL benchmarks and sysbench tools
  • In-depth understanding of MySQL indexing principles
  • Understand MySQL indexes in depth
  • Tencent technical engineering: in-depth understanding of the underlying principle of Mysql index
  • MySQL indexing principle and slow query optimization
  • Learning MySQL optimization principle, this one is enough!
  • MySQL optimization/interview, just read this article
  • Implement binary lookup in MySQL in detail tutorial
  • Binary search tree and balanced binary tree details
  • Why does MySQL use B+ trees
  • Why MySQL database index choose to use B+ tree?
  • MySQL > delete database
  • MySQL backup and restore mechanism
  • Understand MySQL partition

I am also learning these things, because I am new to MySQL, so this part should not be particularly complete, you can follow this answer, I will update this answer later.

Here remind you again a bit, MySQL senior content is slowly to master in your work, if you want to be the primary Java programmer, now don’t need to master the content, write I read a few articles, and follow to knock down, then you can say MySQL has reached the entry level, can carry out the following learning!!

138 images to get you started with MySQL

47 pictures to bring you MySQL advanced!!

Crack! MySQL 82 图 片 Fly with you!

Maven

Before learning about the framework, I recommend that you learn what Maven is and why your project is using It.

Maven Learning Summary

There aren’t many books out there about Maven, but check out this one

Maven is just for beginners, but you can find out how Maven’s great architecture simplifies code, makes it easier to use, and some of the hidden secrets of Maven.

So what’s next? Finally the frame!! As a development, frameworks are your weapon!! Just having fun! In the fight against the United States and aid Korea, the volunteers used small arms and mortars to defeat the first American cavalry division and the first American Marine Division, such ace troops.

Framework to learn is SpringMVC, Spring, MyBatis, SSH framework is no longer available, as for why not, can look at this answer

What are the three major Frameworks for JAVA?

The first thing to learn about frameworks is MyBatis

MyBatis

To get started with MyBatis, just read a book.

MyBatis from beginner to master

This book is when I just began to learn MyBatis to read, the contents of the book I have compared to all knock again, can be said to be a very valuable reference.

“MyBatis from entry to mastery” from a simple MyBatis query start, build up the basic development environment for learning MyBatis. Through the comprehensive example code and test explained in MyBatis XML way and annotation way to add, delete, change, check the basic usage of the operation, introduced the dynamic SQL in different aspects of the application and in the use of the best practice scheme. MyBatis advanced mapping, stored procedure and type processor provides rich examples, through the bottom-up approach to make readers better understand and master the advanced use of MyBatis, at the same time for MyBatis code generator provides detailed configuration introduction.

For an in-depth understanding of MyBatis, you can refer to it

MyBatis technology insider

Well, this book can be said to be the completion of some core features and core components of MyBatis, “MyBatis Technology Insider” aims to provide help and guidance for readers to understand the design principle of MyBatis, read the source code of MyBatis, expand the function of MyBatis. Let readers understand the operation principle and design concept of MyBatis more deeply. It is hoped that “MyBatis Technology Insider” can help readers comprehensively improve their own technical ability, so that readers can refer to the excellent design of MyBatis when designing business systems, and better apply MyBatis.

It’s a book I highly recommend.

In addition, you can also go to MyBatis official document MyBatis – MyBatis 3

I can’t understand the English version, so I have arranged the Chinese version for you. mybatis – MyBatis 3

Check out some videos for MyBatis

【 crazy god said Java】Mybatis latest complete tutorial IDEA version easy to understand

MyBatis from the beginning to master

So what should MyBatis know? Of course you will use MyBatis, usage directly refer to the official website or MyBatis from the entry to master this book can be.

  • MyBatis Infrastructure
  • MyBatis Core configuration Executor
  • MyBatis core configuration StatementHandler
  • ParameterHandlers for MyBatis core configuration
  • ResultSetHandler for MyBatis core configuration
  • MyBatis level 1 cache details
  • MyBatis level 2 cache details
  • Mybatis source analysis – parser module
  • How is MyBatis SQL executed? Throw the article at him
  • MyBatis source code parsing – type conversion
  • MyBatis source code parsing – resource loading module
  • Mybatis source code interpretation – summary of design patterns
  • 【MyBatis source code analysis 】Configuration loading (first chapter)
  • 【MyBatis source code analysis 】Configuration loading (next chapter)

The links I have given above are for you to gradually master in your work. If MyBatis reaches the level of development, you only need to watch MyBatis from entry to mastery or a video course.

Spring

After learning MyBatis, it is time to learn our core framework Spring, Spring can be popular so far must have his reason, you will slowly experience its essence in your work.

To learn Spring, the first book I recommend to you is Spring In Action, which I think is the best book to learn Spring.

I think this evaluation is a little low, there is also evaluation that what does not pay attention to thinking, this is only a practical book ah, not about ideas, can not require a book can cover all the content, as long as the book can give practical cases, code examples, clearly explain the logic, I think it is good.

The Spring revelation

This book is a perfect match for Spring and you can beat most of the players. This book is more about schemes and ideas. This book is not like a tutorial, but more like a story. It is a summary of the author’s first-hand experience in using the Spring framework accumulated in years of work. It deeply analyzes the functions of each module of the Spring framework, the background of the emergence, the design concept and the design principle, and reveals the mystery of the Spring framework. Make you “know what it is, know why it is.” Each part of the extension helps readers learn to use various aspects of the Spring framework, as well as generate new ideas and solutions by analogy.

For Spring foundation videos, I recommend the following

【 crazy God said Java】Spring5 latest complete tutorial IDEA version easy to understand

Silicon valley -Spring5 framework latest version tutorial (idea version)

As an advanced study, I recommend ning to look at the official website

Core Technologies

I don’t need to say more about the authority of the Spring official website, but there is one feature of the official website, which is not unique to Spring. Almost all foreign official websites do not take you to analyze the source code, so if you want to understand the design ideas and theoretical essence, you still have to learn the source code.

The source of course is very laborious, here is recommended to you two books can be matched to see, the online praise of the two books is mixed, I do not strongly recommend either…

Deep analysis of Spring source code

I read a little bit of the book, which I probably can’t fully understand at my current level, but it’s quite esoteric, but if you have some research into Spring source code, check it out.

Inside Spring Technology

This book, like above, has a lot of code, but relatively little explanation, and is suitable for those who have some knowledge of Spring source code.

I recommend several Spring source videos for you

This is probably the best SPRING source tutorial from site B (2021 latest version)

Silicon Valley Spring annotation driver tutorial (Lei Fengyang source code level explanation)

Of course, Spring you still have to see the source code, so still bite the source code, SAO years ~

What are some things to learn about Spring?

  • Spring Learning (1) — Quick start
  • Spring Bean assembly
  • 【Spring Practical 】 Advanced assembly Xie Suian
  • Talk about your understanding of Spring IOC
  • Rounding out the Spring IOC
  • Spring series beanFactory and ApplicationContext
  • Introduction to BeanFactory and its differences from FactoryBean
  • Spring(4) — Faceted Programming (AOP module)
  • Spring AOP literacy
  • The Spring annotations? What thing?
  • Spring — Spring
  • For Spring articles, check out the Spring series directory
  • Use Spring Validation for data backend validation
  • Spring advancements – validation, data binding, and type conversion
  • Brief introduction to Spring’s Resources system

There are very few scenarios where Spring is used on its own, but more as an integration of frameworks. The main features of Spring are two: IOC container and Aop, IOC container is the basis of Spring and a variety of resources integration, it can be said that with this feature of IOC, there will be bean assembly, automatic assembly and other features, and Aop is a technology to reduce business coupling, It allows us to see business relevance in a “slice” way. The most important are these two technologies, and Spring is enough to understand these two technologies.

HTTP

Before we continue to learn, let’s talk about HTTP protocol, HTTP protocol can be said to be our Java development deal with the most protocol, about HTTP protocol, we do not talk too much here, you can refer to my article, there is a detailed HTTP tutorial.

What books do you recommend to learn more about the HTTP protocol?

Tomcat

I also had this question before I started to contact Tomcat. What is Tomcat? It sounds awkward, but you can use this article to find out what Tomcat is

What is Tomcat: Tomcat and Java Technology Tomcat and Web applications as well as the basic Framework and related configurations of Tomcat

Marmite: What is TOMCAT

Tomcat I recommend you to read these books

The book is a versatile tool covering topics such as Apache Tomcat, a popular open source servlet, JSP container, and high-performance Web Server. The Authoritative Tomcat Guide is of great reference value to administrators and web site administrators. This is a useful guide for developers who want to use Tomcat as a Web application server in their development or production; This is an excellent introduction tool for anyone interested in Tomcat.

But the translation of this book seems to be poor, you can read the English version

Index -. Co. UK/Misc/O ‘Reil…

An in-depth look at Tomcat

Another is an in-depth look at Tomcat

This book will reveal how Tomcat works. By studying this book, you will be able to develop your own Tomcat components, extend existing components, and even make your own Tomcat server.

There is no definitive answer as to how deep you are going to learn Tomcat. For beginner Java development, you just need to know what Tomcat does and what it does, and if you want to reach the level of an intermediate and advanced Java programmer, no amount of deep learning is too much.

Tomcat Architecture Analysis

This book comprehensively introduces the architecture of Tomcat, the implementation scheme of each component, and the way to use it. This chapter describes the architecture and working principles of basic Tomcat components, implementation schemes, usage, and detailed configuration of Tomcat components, integration and performance optimization of Tomcat with the Web server, and extended Features of Tomcat. Readers can learn about the architecture and working principles of the application server, and learn how to use, optimize, and configure Tomcat.

This book is similar to an in-depth look at Tomcat, both of which will give you an in-depth understanding of Tomcat. I think you can read either one.

The Servlet/JSP technology

Instead of talking about frameworks, we’re going to talk about a very old technology: Servlets and JSP technology, two technologies that many people say they don’t need to learn anymore. The people who say this have two reasons: 1. He thinks the old skills are not needed; He doesn’t understand it at all.

Before the separation of the front and back ends, our project architecture was single, that is, various JSP pages were directly coupled in, and servlets were responsible for the interaction between the front and back ends. At this time, the project was very redundant, and many files were thrown into a project, resulting in logical confusion and complex file types. And then as technology evolved, SpringMVC came along, wrapped servlets, and instead of managing HttpServletRequest and HttpServletResponse, let SpringMVC do it, With the development of dynamic pages such as HTML5, we are able to “standardize” the interfaces on the front and back ends, where the front end is a project and the back end is a project.

But their core is still servlets and JSPS.

Here I go again

Head First Servlet/JSP

The Head First books are humorous, easy to read, in a light-hearted language, and explained to you by playing games. Explains how to code Servlets and JSP, how to use the JSP expression language, how to deploy Web applications, how to develop custom tags, as well as session state, wrappers, filters, enterprise design patterns, etc. Learn about Servlets and JSPS and use them in your projects in a light-hearted, humorous and visual way.

This book is highly recommended by Cxuan

Here’s a good site to learn about servlets

Servlet/JSP Gossip

It’s also a book

The author is from Taiwan, except the language is not so pleasant, other technical points are not bad.

Servlet & JSP core programming

This is also a basic book, well organized. It is a rare introductory book for beginners.

Servlet and JSP videos, I recommend you

Silicon Valley is the latest version of JavaWeb full set of tutorials, JavaWeb zero basic entry complete version

This actually also includes the front-end HTML CSS JavaScript Servlet JSP part

JavaWeb Video tutorial (JSP/Servlet/ Upload/download/pagination /MVC/ three-tier architecture /Ajax)

Both videos are Web integrated and can be viewed as individual servlets

Servlet Tutorial – Getting started with Servlets

New Servlet Tutorial 2020 -Servlet Full solutions and case studies _

Spring MVC

SpringMVC is finally here !!!! SpringMVC is a Servlet wrapper, and it works with HTTP, so you need to know that before you learn SpringMVC.

Learning About SpringMVC, I recommend it

SpringMVC Study Guide

This book focuses on how to develop Java-based Web applications using Spring MVC. The book consists of 12 chapters, which respectively introduce Spring MVC from the perspectives of the Spring framework, Model 2 and MVC patterns, Introduction to Spring MVC, controllers, data binding and form tag libraries, summoners and formatting, validators, expression language, JSTL, internationalization, upload files, and download files. In addition, the book is also equipped with rich examples for readers to practice and reference.

See through, the SpringMVC

The architecture, principles, core concepts and operations of Spring MVC are comprehensively introduced. The implementation of Tomcat is presented completely through cases, and the processing of nine components of Spring MVC as well as common skills and practices are systematically summarized.

By the end of these two books, SpringMVC is pretty much done, so if you’re missing something, check out the official website.

Web on Servlet Stack

You can watch this in the video

2020 SpringMVC Tutorial

So what do you need to know about SpringMVC?

  • Spring MVC【 introduction 】 this article!
  • Spring MVC parsing DispatcherServlet
  • Spring Web MVC-09-SpringMVC filters and interceptors Handler and Filter
  • SpringMVC global exception handling
  • SpringMVC single file upload vs. multiple file upload
  • There are three ways for SpringMVC to upload files
  • Read file upload and download in SpringMVC
  • Spring MVC prints @requestBody and @Response logs
  • The Spring MVC interceptor implements user login permission validation cases
  • Spring MVC framework principle analysis
  • SpringMVC – View parsing process details
  • RestTemplate most,
  • Spring MVC uses RestTemplate to access REST services
  • SpringMVC Controller annotations are fully parsed
  • MVC design pattern introduction & SpringMVC implementation

Stop. Stop. Stop

After you have learned from Java Foundation -> MySQL Foundation -> MyBatis -> Spring -> HTML/CSS -> Servlert/JSP -> SpringMVC, I think you should take about 1-2 years, By this time, you should be able to complete a small SSM project. Now you should continue to learn, you should integrate your knowledge, you can build a small project according to the book, or complete some SSM projects, many Java direction graduation project will be finished here.

Here are some integration resources for you

Java SSM training small project – hand in hand with you to build a HUMAN resource management background system based on the SSM framework

liddhome/yosebook-ssm

ZhongFuCheng3y/910convenienceSite

Student management system (SSM simplified version) summary

Github.com/saysky/Fore…

Or check out Shang Silicon Valley’s integration tutorial

Silicon Valley SSM framework combat, SSM integration tutorial

At this point, you can say that you have a basic Java development, but you may not be able to find a job. Why? Because at this stage the most popular frame you have not contacted, let’s welcome the famous SpringBoot big man.

SpringBoot

SpringBoot is arguably the most popular framework in Java today, so why is it so popular?

A lot of people think of it as a basic primer, but I think learning about SpringBoot is just a matter of looking at github

Github like close to 100K Spring Boot learning tutorial + practical project recommendation!

SpringBoot tutorial and Spring Cloud tutorial detailed open source project “Springboot-Learning” this project content for SpringBoot tutorial sample procedures, very useful for SpringBoot beginners, At the end of the article, Spring related open source projects are also listed for everyone to exchange and learn.

Author: Gitee links: www.zhihu.com/question/53…

In fact, as you’ll see after a while, SpringBoot is a complete scaffolding that allows you to quickly build a project, simplify the configuration, and instead of having to write verbose XML expressions, use annotations. They work in a similar way, but using annotations makes your project simpler.

Finally, I recommend SpringBoot’s website

Docs. Spring. IO/spring – the boot…

Spring Cloud

Spring Cloud is a micro service project architecture based on SpringBoot. Now most Internet companies and even some traditional industries have started to use Spring Cloud as their infrastructure. Some are for business needs, some are for installing B. The interviewer asks you if you know Spring Cloud, and if you say no, your impressions are likely to go down, so starting programmers need to know more or less about Spring Cloud, so I recommend a few books and Github as a foundation and practice.

This is the book I read when I first started learning About Spring Cloud. Of course, the version of this book is better now, but you should also read this book to learn more about it

“Spring Cloud Micro-service Practice” introduces Spring Cloud’s solutions and basic components for several core elements of micro-service architecture in detail, starting from the popular concept of micro-service architecture. For the introduction of each component, “Spring Cloud Micro-service Field” mainly combines examples with source code to help readers better understand the use of these components and operating principles. At the same time, in the process of introduction, also includes the author encountered in the practice of some problems and solutions for readers in practice as a reference.

Zhai Yongchao (DD), the author of the book, has also set up a website

Blog.didispace.com/spring-clou…

Anyway, it is always right to learn Spring Cloud and follow D.

Take a look at some of the things Spring Cloud needs to learn

Brixton area version

Dalston version

Edgware version

Finchley version

There are also a variety of kit options

Incidentally, the Alibaba open source framework Spring Cloud Alibaba learning

Beyond that, what exactly are microservices

This book provides a comprehensive introduction to the modeling, integration, testing, deployment, and monitoring of microservices, using a fictional company to explain how to build a microservice architecture. The main content includes understanding the importance of microservices in ensuring alignment of system design and organizational goals, learning how to integrate services into existing systems, incrementally dismantling large monolithic applications, deploying microservices through continuous integration, and so on.

What are microservice design patterns, what are microservice design patterns, and the break-up strategy of microservices, etc.

Many people may confuse clustering, microservices and distribution, but here’s how to clarify

Link: www.jianshu.com/p/1f9455139… Author: mayiwoaini

Then I’m going to recommend you a distributed direction of the God book

Some people think that this is a book for people in the direction of data processing, but it involves NoSQL, big data, final consistency, CAP, MapReduce, stream processing and indeed Java programmers also need to know and understand, this book is relatively advanced, suitable for slowly study in the work, not suitable for beginners in the direction of Java.

To sum up, the three books I recommend above are suitable for intermediate and advanced Java programmers, beginners need to understand the general D article, or you can do github below

macrozheng/springcloud-learning

Dubbo

Speaking of Spring Cloud, how can you miss Dubbo?

What is the difference between Spring Cloud and Dubbo?

Java Microservices Framework selection (Dubbo and Spring Cloud?)

Dubbo’s book is just so-so. I haven’t read it, but if you’re interested, you can check it out

“In-depth Understanding of Apache Dubbo and Combat” first introduces the brief history of Dubbo, the subsequent planning and the overall architecture of the big picture; The Dubbo environment configuration is followed by the development of the first application based on Dubbo; Then it introduces the implementation principle of common registry built in Dubbo, the principle and implementation of Dubbo extension point loading, Dubbo startup, service exposure, service consumption and elegant shutdown mechanism, Dubbo RPC protocol details, codec and service call implementation principle, Dubbo cluster fault tolerance, routing and load balancing mechanism. Dubbo extension point related knowledge, Dubbo advanced features of the implementation and principle, Dubbo commonly used Filter implementation principle, Dubbo in the new ETCD3 registry combat content and Dubbo service governance platform related knowledge; Finally, the future ecology of Dubbo and the knowledge of Dubbo Mesh are introduced.

Official website documents go! Apache Dubbo

Lot of Dubbo apache/Dubbo

Redis

Redis can be said to be the most popular NoSQL database, you may not know what Redis is used for, LET me give you a general introduction.

The two most commonly used cached databases are Redis and Memcached. One of Redis’s major features compared to Memcached is that it supports a wide variety of data types (Memcached can only be of string type). Redis is not limited to cache because of its rich data structure. There are many scenarios that can be implemented with Redis to greatly reduce the workload.

Take a look at the usage scenarios of Redis

What can Redis be used for

In-depth analysis of Redis features and application scenarios

Here are two classic books on getting started with Redis

Redis of actual combat

The book is made up of three parts. The first part introduces Redis, explains the basic use of Redis, it has 5 kinds of data structure and operation of these 5 kinds of data structure command, and explains how to use Redis to build the article show website, cookie, shopping cart, web page cache, database line cache and a series of procedures. The second part covers the Redis command in more detail, shows how to use Redis to build more complex assistive tools and applications, and finally shows how to use Redis to build a simple social network. The third part introduces some of the problems that Redis users often encounter. It explains how to reduce Redis memory footprint, how to extend Redis performance, and how to use Lua for scripting. this

Redis design and implementation

This highly recommended, systematic and comprehensive description of the inner workings of Redis, with rich illustrations, clear descriptions and plenty of reference information, is a must for NoSQL database developers.

This book and above Redis actual combat, one talks about realization, one talks about thought, is the so-called theory and practice combined.

Redis development and operation

This book is also a good one to learn Redis, but also for beginners, suitable for zero-based children’s shoes. This book comprehensively explains the basic functions and applications of Redis. Combined with the actual use cases of online development and operation and maintenance monitoring, it deeply analyzes and summarizes the “traps” encountered in the actual development and operation and maintenance, as well as the reasons behind them, including scenarios, application cases and development skills of large-scale cluster development and management. It provides a lot of practical experience and suggestions for efficient development operation and maintenance.

Redis Deep Adventures: Core Principles and Applied Practices

Redis deep Adventure is written by Old money, old money at the beginning of the nuggets opened a short book, received widespread praise, so this book is the same. Redis Deep Adventure is suitable for programmers who have a certain basic understanding of Redis, and middle and senior back-end developers who are eager to deeply grasp the principles of Redis technology. Mid-to-senior back-end developers who want to successfully enter the R&D department of large Internet companies; Junior and intermediate operation and maintenance engineers who need to support the operation and maintenance work of Redis middleware; Mid-to-advanced front-end technology researchers curious about Redis middleware technology.

Learning Redis is basically the above several books read almost, of course, the official website is essential

Redis

You need to know about Redis

  • Redis [Introduction] Just this one!
  • Redis command
  • Redis command reference manual
  • Easy to understand Redis data structure basics tutorial
  • Redis(1) – five basic data structures
  • Redis persistence
  • See Redis persistence principle
  • Thoroughly understand Redis persistence mechanism: RDB and AOF
  • Distributed lock implementation based on Redis
  • [Redis] Do you know the three clustering modes of Redis?
  • Distributed lock implementation redis
  • The principle and construction of Redis cluster
  • In-depth analysis of Redis series ii – Redis Sentinel mode and high availability cluster
  • Redis transaction details
  • Redis Lua of actual combat
  • Redis Lua scripts are a complete primer

Due to the word limit of the mining platform, part of the summary can not be sent out, but I have written it in the PDF below, you can download the PDF to view it.

This is the first edition of the content, part of the technical stack and knowledge points are not very comprehensive, I admit this, but if this article can help you, it is its value.

I have compiled this article into a PDF version, linked below.

Get the PDF link password: ATSG