No Java person wants to be satisfied with mastering some code implementation skills all his life, others tell you what to implement, you use code stack to achieve other people’s requirements! You have to learn to think in terms of the whole project! You have to learn how to think if you are a project manager! You have to learn how to think if you are an architect!

Java is for projects! The main application area of Java is enterprise level project development! To get involved in enterprise-level project development, you must know the following:

1. Master the basic steps of project development

2. Strong object-oriented analysis and design skills

3. Master the mainstream development methods driven by use cases and centered on architecture

Basic TB knowledge: you can look at these nouns or knowledge points, see if you can name one, two, three, four.

JavaSE

—- Basic syntax, data types, operators, etc: int, long, Integer, long, if, else, for, while

—- Object-oriented: Class, Object, instance, state, Behavior, Field, method, new, visibility, Attribute, Property, Package, import, sta Tic variable, class variable, instance variable, heap, method Area, Stack, GC, Override, Overload, Object casting, polymorphism, this, super

—- Exception handling: Understand the difference between compile-time errors and runtime errors, Exception, RuntimeException, Checked Exception, Unchecked Exception, try, catch, finally, throw New XXXException, throws XXXException, and exception handling principles

—- Arrays and Collections: Definition and use of arrays, Collection, List, Set, Map, ArrayList, HashSet, HashMap, Iterator, equals, hashCode, Comparable, Comparator

—- Common classes: String, Intern, Constant pool, StringBuffer, java.util.Date, SimpleDateFormat, Regex (regular expression)

—- Reflection mechanism: Class, Method, Field, Invoke, newInstance, BeanUtils (Apache-Commons), PropertyUtils (Apache-Commons)

—- Input and output streams: InputStream, OutputStream, Reader, Writer, Adapter design pattern versus primitive stream classes, Decorator design pattern versus wrapped stream classes, object serialization and deserialization

—- Multithreading: Thread, Runnable, sleep, wait, notify, synchronized, and lock

The Servlet and JSP

—-HttpServlet, doGet, doPost, HttpServletRequest, HttpServletResponse, Request.getParameter (), request.setAttribute(), reques T.gettattribute (), Request.getSession (), ServletContext, Filter, web.xml, tomcat, Forward and Redirect, HTTP statelessness, Cookie, JSP Scope The Object,,,

HTML and JavaScript

—- You need to be able to understand common web tags, how to introduce JavaScript into a web page, and the basic syntax and usage of JavaScript

That’s all you need to learn more about Java. In particular, there are a number of technical terms and nouns that, if you look at them as warmly as your father, you know the basics of Java.

Next comes SSH:

For starters, these three frameworks are given too much of a mystique, as if they are the most important thing to know! But for the professional and technical personnel with many years of Java development experience, for those Java people, but the three frameworks are not too cold! Aren’t they important?

Now many enterprises are using these three frameworks, so many enterprises also master these three frameworks as a prerequisite for recruitment. It is undeniable that there are also many large enterprises that do not use these three frameworks. After years of development, these enterprises have accumulated certain technologies and formed their own unique technical framework system. These three frameworks may or may not be important.

The reason for this is that: These three frameworks provide elegant solutions to common problems in JavaEE development. They embody the efforts and ideas of the best developers in the industry, so by studying these three frameworks, you can get a glimpse into how the best people at the technical peak are thinking about a problem. Through what kind of design ideas to solve the problem. So, for you, you don’t have a lot of project development experience, what is experience? Experience is knowing which problems you are likely to encounter, which solutions are available to which problems, which solutions are good, which solutions are not so good in a situation, etc. If you haven’t worked on a project, you don’t realize what problems you might encounter, and they can be critical! A bad solution will affect the stability, scalability and so on of your program! The three frameworks give beginners an idea of what problems you might encounter in the future, and the solutions to those problems!

When you understand why these three frameworks are important, then you can understand why they are also not important. If you’ve worked on a lot of projects, and you’ve had all sorts of problems, and you’ve cracked them one by one with your technical skills, these people think that the three frameworks (or are there more frameworks? Hehe) are floating clouds!

What kind of person do you belong to? If you don’t have a lot of project development experience, then these three frameworks are very important to you! Also, you know how to learn the three frames. For three big framework of study, the focus is to show you the problem, and trigger your own active thinking, we encourage you to put forward their own ideas, perhaps your idea is an idiot, but it is, after all, your own ideas, if you don’t know what people think, then how do you know what they think is an idiot? In the process of this collision of ideas, you will gradually improve yourself! So, after three frameworks learned, you should not only see a lot of configuration file, you should not only see some Action, some Service, some mapping file, you should not only know the session. The save/update/delete, You shouldn’t just know that there are a bunch of interceptors in Struts2, you shouldn’t just see a bunch of JARS…

If all you know is that after copying a bunch of JARS and defining a set of configuration files, SSH’s three major frameworks are up and running and working for you, sadly, you still don’t have the guts of all three! Please answer the following questions:

Struts 2:

Why do WE create an Action object for every request?

What problem does refreshModelBeforeResult solve in the configuration of the ModelDriven interceptor?

Why in the web. In the XML configuration StrutsPrepareAndExecuteFilter to filter all the request?

Can you tell me about ValueStack?

How does Struts2 implement the MVC design pattern?

Spring:

Why do you want to use Spring?

Would you please talk about IOC/DI?

What is declarative transaction management? Why declarative transaction management? How does Spring implement declarative transaction management?

When integrating Spring with Hibernate and defining transaction management features, why should methods that perform query tasks except add, delete, and update operations be read-only?

Hibernate:

Would you please talk about your understanding of OR mapping?

Many people say Hibernate is not suitable for large projects, performance issues, what do you think?

Why does Hibernate have to define a database identity?

Why does Hibernate recommend that your entity classes implement hashCode and equals methods?

What is the relationship between database identity and database primary key in Hibernate entity classes?

Hibernate associative mapping and database foreign key.

Does Hibernate issue insert statements when calling session.save()? Talk about your understanding

Does Hibernate issue an update statement when calling the session.update() method? Talk about your understanding

Lazy, lazy= “extra”, Inverse, fetch, fetch= “join”, fetch= “subselect”, batch-size

Does lazy= “true” guarantee lazy loading?

Talk about the “N+1” problem in Hibernate

What are the best practices for Hibernate?

These are not all the key issues in SSH, but they can test how well you can use the SSH framework! If you can understand these problems well and combine them with the right training programs, you will become a great person too! Java internal learning group: 725633148

Finally, the project development ability:

Whether you learn Java or other technologies, your fundamental purpose is to create value for customers! Otherwise, what you have worked so hard to learn will soon become obsolete as technology advances and updates! Therefore, the core of technology is to use technology to create valuable results! That is to say, what the customer needs, you have to use technology to create what the customer needs for him! The reason why a company will try to keep you with all kinds of benefits is because you can bring the company great benefits! So, what do you have to offer the company? What qualities do the company value most about you?

There are a lot of skills required to do a project, among which the core and most basic is modeling ability (now the most mainstream is object-oriented modeling!). . What is modeling capability?

Let me give you an interview question:

An insurance card management module for an insurance company: Sales staff to receive insurance card information (card number, card number and receive date), and then sell directly to customers, sales, to enter card information insurance company within the system (sales personnel information, buyers information, purchase of insurance card number, card number, etc.), the customer a insurance company website activate the insurance card, Need to fill in (insurance card number, activation password, insured information, beneficiary information)

The requirement is: if you were given this module to do, what would you do? What problems do you have to solve? Can you draw a picture and tell me what you think?

This is just an interview question, and because it’s only a few sentences long, I put it here to give you a sense of what modeling is all about. There are too many problems in the business area! Maybe a requirement document of dozens or hundreds of pages can describe the problems of a certain business area clearly, and your responsibility is to make them come true!

A company wants to develop an attendance management system, which needs to be connected with the existing human resources system. You are the main technical person in charge. Then, what should you do?

An ERP project needs to implement a scheduling management module, which is assigned to you to complete. How do you complete it?

Don’t complain that the project manager gave you too little information (only a few sentences), or that the client didn’t describe their needs clearly… Your value lies in sorting out all the problems TB, using various means to get the information you want, according to a certain idea, and in a specific time to solve it one by one!

You should be aware of tanks to learn Java is not a war, a network speed, a CMS, a DRP, OA so simple, you don’t indulge in the technical details (although there is a necessary, but not insignificant problem), don’t meet in the CRUD of project requirements (although this is the foundation of base), in front of you, There is always a goal out there that you have to work hard to catch up with!

You will be faced with more demands in the future, and the sole purpose of your program is to: Learn how to demand into implementation, how to analyze the requirements, how to build the conceptual model, how to handle the relations between concepts, how to carry on the design, how to choose the appropriate technology to achieve your design, how to test your implementation, how to solve the problem of you have encountered various (performance, demand changes, etc.). When you’ve been in the company for a few years, you’ll agree with me!

Use Java to find a job, need is the project experience, project experience is to understand the basic process of project development, understand the project analysis method, understand the project design ideas, understand the project implementation skills, understand the project test method, understand the project of various problems in the solution!!

So, you know your goal!

The following is a systematic learning map in my collection, consisting of seven topics: Each topic and each knowledge point corresponds to the technical points we use in our daily work.