0 basic Java self study road (latest version in 2021)

Midnight 2021-05-04 15:17:57
basic java self study road


Whether you want to teach yourself or not Java, Read this article carefully , At least don't go far in your future career 1 New year's detour .

This article will continue to update , Advice to focus on + give the thumbs-up + Collection .

0 Basics Java The road to self-study (2021 Latest edition of )

The original

stay CSDN I often have private chats with my classmates on campus “ How to self-study Java”、“ Want to change careers Java Is it reliable ” Other questions , Because I was self-taught in college Java, So I can understand the pain and confusion of these students .

Before writing this article , I watched some online Java Self taught articles , I'm not satisfied with a lot of them , Some even make me angry , Or from the existing perspective , Or it's pure fabrication to deceive Xiaobai .

Many articles have an old problem : I didn't think from Xiaobai's perspective at all , It's too much , What kind of micro service 、 framework 、 Big data is coming , It's not something to look at in the self-study stage at all , Xiaobai read these articles , The more you look, the more confused you are , There's no way to do it .

In fact, I am 18 I wrote an article in “0 Basics Java The road to self-study ”, But now let's see , At that time, the article was too simple , It just provides a way of thinking , But a lot of it wasn't written .

Now it's over 3 year , I have some new thoughts on this topic , At the same time, in order to save the majority of students in dire straits , therefore , I decided to write a new self-study course .

Self introduction.

Before writing this article, it is necessary to introduce myself , Let's make a better comparison and reference .

My university is an ordinary undergraduate , I started to study by myself in my junior year Java, Self taught for a year , But I'm a computer major , So there is C Language foundation , But I have taken a lot of detours in this year's self-study , I spent a lot of time learning a lot of things that I didn't use later :Oracle、Hibernate、Struct2、JBPM wait , There is also a lack of guidance from experienced people , So it's easy to miss the point , So a lot of time was wasted .

But it wasn't as voluminous as it is now , So I got a job at the beginning of my senior year .

Industry status

The status quo of programmers

Because programmers are paid more , In recent years, a lot of other professionals have flocked to the programmer industry , Speed up the internal volume of the industry , But according to the statistics of a recruitment website , The current demand of programmers is still much higher than the average of the whole industry . therefore , I think the status quo of programmers is good , No need to worry for at least a few years .

Java present situation

Recent years ,Go、Python And so on , There's a big challenge Java Status Trends , however Java Undoubtedly, it is still the largest recruitment demand in the current Internet industry .

Many big factories : Ali 、 Meituan 、 Well quickly 、 A lot of spelling 、 sound of dripping water 、 Netease, etc , It's all about Java It's the main language of the company , Some big factories : tencent 、 Baidu 、 Bytes, etc , Although other languages are the main languages , But there will be more or less Java post .

therefore ,Java The status quo and future of , I think they are quite good . More jobs also means more opportunities , It's friendly for new people , So I personally recommend new students to learn Java Of .

Before self-study, you should know

Please be prepared before self-study , Self study is a lonely and long process , If you want to step in , Please be prepared to give up almost all your entertainment life , Including the Spring Festival . If you just take the attitude of fishing for three days and drying the net for two days , Then I suggest we give up .

But if you can hold on , I'm sure it will pay off , I'm an example myself , I took so many detours , Follow this article , You have no reason to be worse than I was .

Self study cycle

I set a reference time for the self-study cycle :6 Months , Average daily 6-8 Hours , common 1200 In hours or so , General arrangement :

1、3 Months of basic knowledge learning and strengthening .

2、2 Months SSM Project practice, repeated practice , The actual combat of the project is also reviewing and consolidating the previous basic knowledge .

3、1 I'm going to prepare for the high frequency questions in the interview , Looking at the interview questions will actually increase your professional knowledge , And maybe more than you think , It's no exaggeration to say , A few years ago, I learned more from the interview questions than I got from my job .

Self study tutorial to get

Teaching a man to fish is better than giving him a fish , A simple and reliable way to get the tutorial :B Website search keywords + course , for example :Java Basic course 、MySQL course 、JavaWeb course 、SSM Integrate the tutorial 、Java Project practice and so on , Then press “ Click at most ” Sort , Find a suitable one in the first few , Generally, the high click quality is OK . Or you can follow me , send out “ Programming ” You can get the address .

Very important advice

1、 Einstein's formula for success : success = efficiency * Time , It's the same with self-study , It's a combination of work and rest , Don't get too tired , Otherwise, the efficiency will drop , It's no use spending more time .

2、 Self study is a long process , Step by step 、 To be patient , If possible , Find a partner to study together , Encourage each other , Communicate with each other , You can make yourself more motivated to stick to it .

3、 Record your learning process , When you find more and more accumulated , There's a little sense of accomplishment in my heart , This will increase your motivation to learn .

4、 Focus on learning key knowledge , This article covers the basic content you should learn at present , Most of what's not mentioned is less important , If you can't tell if it's important , You can leave a message at the bottom of this article , I will answer one by one , As for something like that :k8s、hadoop、hbase wait , Don't even look , It's just a waste of time for you right now .

5、 Make good use of search engine , If you have any questions, baidu , Most of the novice's problems can be solved by Baidu .

6、 Watch videos, don't read , At this stage you read any book , Including the famous 《Java Programming idea 》 It's a waste of time .

7、 To watch a video, you have to tap it one or more times , If you just watch the video without knocking , You'll find that you can't learn anything in the end .

8、 Some videos about history in the video can be read over and simply understood , Save time .

9、 About the selection of video tutorial : Choose near 2~3 The course of , The instructor can make himself comfortable , The level of high click video is almost the same .

Self study knowledge points

1、Java SE

1.1、Java Basics

Basic concepts / grammar : object-oriented ( Inherit 、 encapsulation 、 polymorphic ) Basics 、 package 、 class 、 Interface 、 Method 、 object 、 attribute 、 first Java Program .

data type :1) Basic data type 8 Kind of :byte、short、int、long、float、double、char、boolean;2) Reference data type

Variable type : local variable 、 Instance variables ( Member variables )、 Class variables ( Static variables )

Modifier :public、private、 Don't write 、protected、static、final、abstract、synchronized ,volatile

Operator :1) Arithmetic operator :+、-、*、/、%、++、--;2) Relational operator :==、!=、>、<、>=、<=;3) Logical operators :&&、||、!;4) Assignment operator :=、+=、-=、*=、/=;5) Conditional operator :Object x = (expression) ? value if true : value if false;

Loop structure :for loop 、while loop 、do...while loop

Conditional statements :if...else、if...else if...else

exception handling :try...catch...finally、throws、throw

character string :String、StringBuilder、StringBuffer

other :switch case、 Array 、 Date time 、 enumeration 、 Use IDE Conduct DEBUG

1.2、 aggregate

Map:HashMap( above all )、ConcurrentHashMap、TreeMap、Hashtable

List:ArrayList( above all )、LinkedList

Set:HashSet( above all )、TreeSet

1.3、 Multithreading

Thread life cycle

There are three ways to create a thread : Inherit Thread、 Realization Runnable; Realization Callable

ThreadPoolExecutor( Thread pool )

lock :synchronized and Lock

1.4、I/O flow

1.5、 Network programming

1.6、 Reflection

1.7、 Generic

1.8、 annotation

Summary : This stage is very important , It's recommended to read it several times , Among them :Java Basics 、 aggregate 、 Multithreading is the core of the core .

Chapter goal : Master all the skills listed in this chapter Java Core fundamentals , Can write skillfully Java Program .



1) Understand the basic concepts ;2) master DML Use of statements :SELECT、UPDATE、INSERT and DELETE;3) master DDL Use of statements : Some of the things that you use when working with tables SQL sentence . for example :CREATE、ALTER、DROP etc. .


Master the basic use of .


Master the basic use of .

Chapter goal : Have a good command of SQL The basic use of statements , understand JDBC and MySQL The basic use of .

3、Java Web

3.1、 Front end content


3.2、 Partial back end content


Java Web Primary content related technologies are currently Java The back end has been used less directly , Recent years Java Programmers may not even have been exposed to . Most of them are from the next section SSM The frame has been replaced by encapsulation , But it is necessary for beginners to study this chapter carefully , To be able to understand 、 It can be changed .

Chapter goal : Understand the knowledge involved in this chapter , To be able to understand 、 It can be changed . about Servlet You can pay a little more attention to ,Servlet It's an important part of this chapter .

4、 Commonly used tools


Web application server .


Project construction management , It can be simply understood as importing Jar Dependent tools .


Distributed version control system , Code management tools .

Chapter goal : You need to know that there are tools , Then master its basic use .

5、 The core framework


1) Master the basic use of ;2) Master the core concepts , What should be paid attention to :IoC( Control flip )、DI( Dependency injection )、AOP( Section oriented programming )、 Transaction control .


1) Master the basic use of ;2) Master the core concepts , What should be paid attention to :MVC framework 、Controller All kinds of notes in 、 One HTTP Requested process .


1) Master the basic use of ;2) Master the core concepts , What should be paid attention to :XML The power of the document SQL grammar 、 Interface (interface) and SQL Mapping .

5.4、Spring Boot

Master the basic use of .

Chapter goal : understand SSM Basic use of framework , It's not necessary to fully understand at this stage , You can deepen your understanding of... Through practical examples in the actual combat of the project SSM The understanding of the .

6、 Project practice

Get ready 2~3 Projects in action , Apply what you have learned before , Make a real project ( Website ). Learning projects must use SSM frame , Deepen your understanding of SSM The understanding of the . The projects done in this phase , It's also the future in your resume “ Project experience ”, It needs to be repeated .

The goal is : Connect what you've learned before , Master a Web The whole process of the project , Through the project to deepen the understanding of the knowledge learned before , especially SSM Framework knowledge .

7、 Interview preparation

If for the above Java You can use the basic knowledge skillfully , Then I can skillfully build a simple SSM Project . Then I suggest you spend more time on the chapter of interview preparation , Interview preparation may be more important than many people think . At the same time, in the process of looking at the face-to-face questions, I can deepen my understanding of the previous knowledge .

7.1、 Key knowledge points

Java Basics





SSM Actual project

This module corresponds to the knowledge we learned above , But it's hard to meet the current interview requirements if you can only use it , Therefore, we need to strengthen the interview for these knowledge , For specific topics, please see my interview series .

7.2、 Advanced knowledge






Algorithm : Common algorithms , Two points 、 Sort, etc , You can brush your fingers offer The subject of

You may have questions , Why are the knowledge points listed in the advanced level not mentioned above before , Also need to prepare interview questions . The reason for adding the advanced part , The main purpose is to deal with the more and more serious phenomenon of the Internet industry , These knowledge points are all current Java The high frequency of the interview , But just like the previous basic knowledge , Systematic learning of these knowledge is basically impossible for beginners at the current stage , So a more appropriate way is to look directly at the high-frequency interview questions , Then write down the questions with understanding .

Chapter goal : Keep in mind the high frequency interview questions of each knowledge point , Try to understand , If you can't understand it, you have to recite it first .

common problem

1、 What should I do when I encounter knowledge I don't understand in self-study ?

answer : Baidu / Google answers , The problems that beginners encounter can be found on Baidu , Make more use of search engines , Exercise your ability to solve problems , This ability will run through your entire career as a programmer .

2、 How far can ordinary people reach after learning by themselves ?

answer : If you really work hard and spend more than 1000 Hours , Follow the route of this article , Master the knowledge introduced in this article , Then I believe it's not difficult for you to find a job .

3、 I saw some self-taught students on the Internet 6 In the next month BAT?

answer : self-taught 6 In the next month BAT Has it ? I believe there are . More ? I believe it's looking for a needle in a haystack .

On this topic , Most of it's fake , More people / Agencies are used for advertising , Read the content of the article 99% I want you to pay to add groups or buy materials .

4、 Self study or training institutions ?

answer : Frankly speaking , Training institutions are definitely easier than self-study , At least the training organization will help you set the right direction . But self study will leave a good impression on the company , The company will think your learning ability is good , At the same time, self-study is also very exercise , It's good for your future growth .

I can only help you analyze , You can choose according to your own situation . however , I think if you can't get into this business on your own , You may have a hard time in the future .

5、 Whether the algorithm is important ?

answer : about 0 For the students who study by themselves , The status of algorithm can be put a little behind , The current goal is to do well first Java Basics , Able to write Java Code .

6、 Should we learn first C Language ?

answer : Tell the truth , I personally don't recommend , although C Language is really important , But I think if there's this time , It's better to Java Consolidate the foundation .


If your question is not mentioned in this article , Or you have questions about this article , You can leave me a message at the bottom of the article , For every message, I'll basically be in 24 Reply within hours , In extreme cases, it may be over the weekend , In principle, as long as it is a normal message related to this article, I will reply .

For the topic in the review , If it's something that a lot of people are concerned about , I'll add it to the article later “ common problem ” in .


  1. Help, Java how to get all the current processes of the system
  2. Has anyone ever used JMeter or written tests in httpUnit????
  3. Living in a mountain village in late spring
  4. Partridge day, spring of HKUST
  5. JavaScript异步编程4——Promise错误处理
  6. 海康摄像SDK开发笔记(一):海康威视网络摄像头SDK介绍与模块功能
  7. JavaScript asynchronous programming 4 -- promise error handling
  8. Haikang video SDK development notes (1): introduction and module functions of Hikvision webcam SDK
  9. JOP:用于FPGA的嵌入式实时系统中的Java优化处理器内核
  10. Spring Boot源码:使用MongoDB MongoTemplate公开REST在几分钟内实现CRUD功能
  11. Spring Boot应用程序事件教程 - reflectoring
  12. 带有Resilience4j断路器的Spring云网关 - rome
  13. 经验分享:Apache Kafka的缺点与陷阱 - Emil Koutanov
  14. 通过Spring Boot Webflux实现Reactor Kafka
  15. 从Java 8升级到Java 11应该注意的问题
  16. Jop: Java optimized processor core for FPGA embedded real time system
  17. Spring boot source code: use mongodb mongotemplate to open rest to realize crud function in a few minutes
  18. Spring boot application event tutorial - reflecting
  19. Spring cloud gateway with resilience4j circuit breaker - ROM
  20. Experience sharing: shortcomings and pitfalls of Apache Kafka - Emil koutanov
  21. Realization of reactor Kafka through spring boot Webflux
  22. RPC框架设计----Socket与I/0模型
  23. Problems in upgrading from Java 8 to Java 11
  24. RPC framework design -- socket and I / 0 model
  25. RPC框架设计----I/0模型
  26. RPC framework design: I / 0 model
  27. RPC框架设计----NIO编程缓冲区Buffer
  28. RPC框架设计----NIO编程缓冲区Buffer
  29. RPC framework design -- NiO programming buffer
  30. RPC framework design -- NiO programming buffer
  31. Java多线程基础
  32. Java multithreading Foundation
  33. 码农飞升记-00-Java发展历程
  34. Development history of coder-00-java
  35. 码农飞升记-00-Java发展历程
  36. Development history of coder-00-java
  37. Spring and Autumn Moon
  38. Node.js与Spring Boot比较? - Ryan Gleason
  39. Spring WebFlux的明显陷阱 - ŁukaszKyć
  40. Spring创始人Rod大叔对YAML的真实想法
  41. Compare node.js with spring boot- Ryan Gleason
  42. Obvious pitfalls of spring Webflux- Ł ukaszKy ć
  43. Spring founder uncle rod's real thoughts on yaml
  44. 码农飞升记-02-OracleJDK是什么?OracleJDK的版本怎么选择?
  45. What is manong feisheng-02-oracle JDK? How to choose the version of Oracle JDK?
  46. Spring tide surging Xinanjiang
  47. Linux内核软中断
  48. Linux kernel soft interrupt
  49. Linux内核软中断
  50. Linux kernel soft interrupt
  51. Java multithreading Foundation
  52. The construction of Maven private library nexus
  53. I / O stream in Java
  54. JDK 16:Java 16的新功能 - InfoWorld
  55. 在Java中本地进行线程间数据传输的三种方式和源码展示
  56. jdon导致cpu 99%最后tomcat死掉---banq给予回复
  57. 用领域事件模拟AOP注入
  58. JDK 16: new function of Java 16 - InfoWorld
  59. Cartoon: from JVM lock to redis distributed lock
  60. Spring 3.1 终于加入了Cache支持