Writing this summary is mainly to record my own learning experience, which is a review of my knowledge. It also provides some references for those who want to learn Java but don’t know where to start and what the mainstream Java technologies are. I think we learn a technology, early are very want to see some results or achievements, so it is easier to motivate their study, the best way is to practice, practice, practice! First explain my situation, I only started to contact Java from the sophomore, and then explore their own, during is really touch dozen roll over. Choice is a computer professional, in the freshman year, you don’t have one laptop, is a gift, so learning some conceptual stuff, class, the teacher also demonstrated with some programs, to think, found that the computer has a lot of interesting places, such as want to know this thing is how to implement, why these things. I really don’t know why I didn’t find out when I was playing games every day. If I had found out, I would have been there now. When I got a notebook in my sophomore year, I began to explore by myself. I was very curious that I didn’t use the notebook to play games, but to study. Now let’s get down to business.


Choose the language

At the beginning of learning, after searching by myself, I found that there were many languages, and I was completely in a state of confusion. I did not know which one to choose, and I did not know what each language could be used for. Later, after the guidance of my seniors and people around me said that Java was good, I slowly fell into a pit. When choosing a language to learn, make sure you choose something you are interested in and have a goal of your own. Otherwise, it will be difficult to stick to it in the later stage unless you have a strong sense of discipline. Everyone has their own driving force to move forward, so find your own driving force to ensure that you continue to progress.


Java Phase 1

Just contact Java, we must start from the environment configuration, this pit must be stepped on by everyone. For those of you who have not yet started, you may also experience this stage. This may be because the default Java1.6 installation is added to the environment variable, but there may be some unexpected circumstances during the installation process, which may cause the failure to add successfully, which requires us to manually add. Here is a special explanation, in the university period must learn some basic courses well, such as: Computer system, algorithm, compilation principle, etc., this will have a great impact on the later learning, the most simple is when you add environment variables, why to add the Path under the Path, but not add other under the Path, how the computer to identify access to these things.


When I first learned Java, it was a video shared by my senior. The advantage of this video is that when I learned the basics of Java, I completely separated myself from some integrated tools. That is, I wrote a program with an editor (notepad++), compiled it manually through the command line, and then executed it, so that you can understand the principle. And practice your hands-on skills. If you start out with Eclipse or whatever it is, and you block out some of the underlying stuff, you might start out with a class file that you’ve never even seen, but you know what happens when you write this line of code and run it.


So here’s the video that I studied, it’s a little old but the basics are the same. Learning the basic knowledge of Java, should be more hands-on, more thinking, a lot of times, you take things for granted, when you write to run, you will find that is not the same thing, do not believe you try. When learning videos, there are two learning methods: method one is to put the video over a piece, when watching the video, write down knowledge points, after watching the video, their knowledge points, their own code to achieve, really can not come up with, back to watch the video. Method two while watching the video with the code, this will be relatively easier than the first method, but if this method is to learn, remember to review more, or it is easy to forget. The two methods have their own advantages. The first method is slow to learn at the beginning, but after the foundation has been established, it will be very fast and I remember it very firmly. The second method takes less time than the first method, so we need to review it repeatedly. By the time you’ve learned this, you should have some familiarity with Java, and you can write simple programs in Java using the simplest of editors. At this time, can not rush into the next stage, give yourself a day or two of time, to learn the knowledge of the next summary.


In the process of learning, you should pay attention to these knowledge points below, because be oneself summary, can have wrong place possibly, if have wrong place, still point out please.


Knowledge point combing:

Concept: Three basic characteristics and five basic principles of object orientation (the first thing upperclassmen asked me was this), object orientation, process orientation, what is polymorphism, what is inheritance, what is encapsulation.

Collection: Collection, List, Set, Map Collection

Exception: Java exception handling mechanism and applications, custom exceptions

IO: File class, character stream, byte stream, conversion stream, buffer stream, recursion

Network programming: Socket

Threads: Thread lifecycle, Java thread pools, thread synchronization issues, thread deadlocks

Inheritance and interfaces: Class, Interface

Reflection: Dynamic proxy

Mysql and JDBC development: Mysql database, JDBC, DBUtils, DBCP connection pool

Book recommendation: Head First Java, Java Core Technology


Video retrieval: Background reply “JavaWeb Learning Materials” contains the following three phases.


Java Phase 2

After learning basic Java, I began to learn Javaweb. In the first few days, I was confused, because I felt that what I wrote was useless, such as writing a calculator, which was useless in life. Maybe it was caused by looking too much at the results. This is the time to do some interesting things, learn new knowledge, develop a new continent, this is our Web development, mainly including front-end pages (HTML/CSS/JS), Servlet/JSP, and Mysql related knowledge. These videos are included in the video shared above.


In terms of pages, this is not particularly important for the Java back end, but you should do your best to make it beautiful, or at least visually pleasing, and then pages won’t be a problem. The next step is the Servlet/JSP part, which is the part of Java backend development that you must be very proficient in, and the part that takes the most time to learn the three parts of the Web. At this stage, learn to use development tools such as Eclipse or IDEA. Finally, you need to learn how to use a database, Mysql database is a good choice to start, and the main relational data in the Java field is Mysql, this part is actually when you learn JDBC, because JDBC is a part of the database. Not only do you need to learn how to manipulate a database using JDBC, but you also need to learn how to use database client tools such as SQLYog, NavICat, etc.


Knowledge point combing:

Front-end technology: HTML, CSS, JS, JQuery, Bootstrap

JavaWeb core content: Servlets, JSP, XML, HTTP, Ajax, filters, interceptors, etc

Mysql and JDBC: review

Recommended books: Web books are fine, along with Java programming ideas


Java Phase 3

This stage starts after you have mastered stage 2, and if you want to find a job after stage 2, you also need to learn some mainstream framework knowledge. At present, the mainstream framework is SSM framework, namely Spring, SpringMVC, Mybatis. Learn how to build these frameworks and use them to create a simple WEB project, including add, delete, change, and check functions. At the beginning, you don’t have to worry too much about the configuration files and why they are configured this way. This can be learned later. At the beginning, let yourself have an experience and motivate yourself to learn.


As you build these three frameworks, be sure to document how you build them, as you’ll need them later in your work. During the process of building, we will come into contact with Maven by searching online materials or following videos. This tool will definitely be used after you work, so you can learn about it. You don’t have to master it completely, just learn to use it and know the basic principles. After learning how to use it, I have to follow the teacher or understand more things from the Internet, such as those configuration files and so on.


Knowledge point combing:

Spring Framework: Configuration files, IoC ideas, DI dependency injection, section-oriented programming, transactions, etc.

SpringMVC: Framework principles, interactions, interceptors, etc.

Maven: Installation, usage, and basic operations.

Mybatis: framework principle, Mybatis development DAO way, integration with other frameworks.


Recommended books: Spring, Effective Java, Java programming ideas


Java Phase 4

This time believe that you can complete independent development, and also work, to deal with the work above, your skills must be able to. But don’t take it easy on yourself. You need to keep learning, not just work in response to work, but increase your value. At this time, you can go to read some low-level books, such as “Understanding the Java Virtual Machine”, which is a comprehensive guide to understand the Java virtual machine. At this time, you must know that Java runs on the JVM, you have no reason not to understand the JVM. In addition, about concurrency this aspect, recommend “Java concurrent programming actual combat”, after this book chew, the understanding of concurrency should have a certain experience.


To do much more than that, at this stage we are going to think before we use the framework is how to return a responsibility, and read some classic Java source code, understand the premise of the source code, is you already have a certain foundation, have basic does not necessarily all at once, of course, you can understand, look not to understand is to think, in the process of the source, You may have all kinds of questions, and it’s good to have questions, but the most common question to ask yourself is what is written this way, not that way. This stage requires you to have a strong self-discipline to learn, do not give up after half of the reading. After learning to read the source code, they can try to imitate others to write a better open source project, to build their own wheels, although not necessarily useful, but to improve their own has certain benefits.


If you want to be a good person, you need to be able to “excel”. This means you need to find an area of your own that you can study in the hope that in the future, you can become an expert in that area and establish your differences.


Finally, remember, from the moment you enter the profession, you have to work harder than others, you have to keep learning. Everyone has his own way in the process of learning. In the process of learning, we should learn to judge by ourselves. In fact, life is the same, there are all kinds of people around you, some people you like, some people you hate, but the people you like also have their shortcomings, the people you hate also have their advantages, at this time you should learn from them their advantages, make yourself better.



PS: If you think the article is good, please like it and share it, which is the biggest support for me.