No Java people are willing to be satisfied with their lifetime to grasp the skills of some code implementation, others tell you to achieve what, you use code stuffing to achieve the requirements of others! You must learn to think from the perspective of the whole project! You have to learn how to think if you are the project manager! You have to learn how to think if you are the architect!
Java is used to do the project! The main application area of Java is enterprise-level project development! To engage in enterprise-level project development, you must master the following points:
1, master the basic steps of project development
2, with very strong object-oriented analysis and design skills
3. Mastering the mainstream development method driven by use case and architecture as the core
About basic TB Knowledge: You can look at these nouns or knowledge points to see if you can say a Sanshira.
Javase
----basic syntax, data types, operators, and so on: int, long, Integer, long, if, else, for, while
----Object-Oriented: Class (Class), object, instance (instance), state, behavior (behavior), field, method, new, visibility (access control), attribute, property , package, import, static variable, class variable, instance variable, heap, method area, Stack, GC (garbage Collection), override, overload , Object Transformation (casting), polymorphism, this, super
----Exception Handling: Understand the differences between compile-time and run-time errors, Exception, runtimeexception, checked Exception, unchecked Exception, try, catch, finally, The basic principles of throw new xxxexception, throws Xxxexception, exception handling
----Arrays and collections: how arrays are defined and used, Collection, List, Set, Map, ArrayList, HashSet, HashMap, Iterator, Equals, hashcode, comparable, Comparator
----Common classes: String, Intern, Chang, 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 patterns and primitive stream classes, decorator design patterns and wrapper flow classes, object serialization, and deserialization
----Multithreading: Thread, Runnable, sleep, wait, notify, synchronized, lock
Servlets and JSPs
----HttpServlet, Doget, DoPost, HttpServletRequest, HttpServletResponse, Request.getparameter (), Request.setattribute (), Request.getattribute (), Request.getsession (), ServletContext, Filter, Web. XML, Tomcat, Forward and redirect, the stateless nature of the HTTP protocol, cookies, JSP Scope Object,
HTML and JavaScript
----You need to be able to understand common page tags, understand how to introduce JavaScript into Web pages, and basic JavaScript syntax and how to use it
This is the basic knowledge you must have to learn more about Java. In particular, some of the terms and terminology, see these nouns, if you like to see the father as cordial, then you are familiar with the basic knowledge of Java.
Next is SSH:
For beginners, these three frames are endowed with too many mysterious colors, which seem to be the most important knowledge! But for many years of Java development experience of professional and technical personnel, for those Java cattle, but the three big framework is not too cold! Don't they matter?
Now many enterprises are using these three frameworks, so many enterprises have mastered these three frameworks as a prerequisite for recruitment. Admittedly, there are many large enterprises do not use these three framework, these enterprises after years of development, their own has a certain accumulation of technology, but also formed their own unique technical framework system. These three frameworks can be said to be both important and unimportant.
The important reason is that these three frameworks provide a beautiful solution to the common problems in Java EE development, and they contain the efforts and ideas of the most NB developers in the industry, so learning these three frameworks You'll be able to find out what these cows at the pinnacle of technology are thinking about a problem, and what kind of design ideas they need to solve the problem. So, for you, you don't have much experience in project development, what is experience? Experience is that you know what problems you might encounter, what solutions you can solve for which problem, which solution is better in a situation, which is not good, and so on! If you have not done anything, you will not be aware of the problems you may encounter, and these issues are often critical! The solution is not good, it will affect the stability of your program, scalability and so on! The three frameworks provide beginners with an understanding of what problems you might encounter later, and how to solve these problems!
When you understand why these three frameworks are important, then you can understand why these three frameworks can also be said to be unimportant. If you have ever developed a lot of projects, you have encountered a variety of problems, with your technical skills, one after another to break the problem, in these people's eyes, three frames (is not there are still n frames?) Oh, it's all floating clouds!
What kind of person do you belong to? If you do not have much experience in project development, then the three frameworks are very important to you! And then you know how to learn the three frameworks. For the three framework of learning, the focus is to show you the problem, and trigger your own initiative to think, we encourage you to come up with your own ideas, maybe your ideas are stupid, but that is your own idea, if you do not know the cow people's ideas, then how do you know that your thoughts are very stupid? In this kind of thought collision process, you will gradually improve oneself! So, after the three frameworks are finished, you shouldn't just see a bunch of configuration files, you shouldn't just see some action, some service, some mapping files, you shouldn't just know Session.save/update/delete, You shouldn't just know that there's a bunch of interceptor in struts2, you shouldn't just see a bunch of jar bags ...
If you just know how to copy a bunch of jar packages, define a series of configuration files, the three big SSH framework will be able to run, or you can work, then, sadly, you still do not have mastered the essence of the three great framework! Please answer the following questions:
STRUTS2:
Why do I have to create an action object for each request?
What problem does Refreshmodelbeforeresult solve in the configuration of the Modeldriven interceptor?
Why is the strutsprepareandexecutefilter configured in Web. XML to filter all requests?
Would you please talk to 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 use declarative transaction management? How does spring implement declarative transaction management?
When you integrate spring and hibernate to define transaction management features, why do you define methods other than Add, delete, update operations, that is, the method that primarily executes query tasks as read-only?
Hibernate:
Would you like to talk about your understanding of or mapping?
Many people say that hibernate is not suitable for large projects, performance problems, how do you understand?
Hibernate why must I define a database identity?
Why does hibernate recommend that your entity classes implement the Hashcode and equals methods?
What do you know about the relationship between database identities and database primary keys in Hibernate entity classes?
What do you know about the relationship between Hibernate association mappings and database foreign keys?
Call the Session.save () method, will hibernate definitely issue an INSERT statement? Talk about your understanding.
Call the Session.update () method, will hibernate definitely issue an UPDATE statement? Talk about your understanding.
Would you please talk about the following nouns, concepts, or usages: lazy, lazy= "extra", inverse, Fetch, fetch= "join", fetch= "Subselect", batch-size
Is lazy= "true" configured for lazy loading?
Would you please talk about the "n+1" problem in hibernate?
Would you please tell me what best practices hibernate has?
These are not all the key issues in SSH, but they can be used to examine your ability to use the SSH framework flexibly! If you can understand these problems deeply, and then match with the suitable actual combat project training, you will gradually become the ox person! Java Internal Learning Group: 725633148
Finally, the project development ability:
Whether you are learning Java or other technologies, your fundamental goal is to create value for your customers! Otherwise, you can learn something under a great effort, and as technology progresses and updates, it will soon become obsolete! Therefore, the core of technology is to use technology to create valuable results! In other words, what the customer needs, you need to use the technology to the customer needs to create something for him! A company to use a variety of welfare conditions to try to retain you, because you can bring great benefits to the company! So, what can you use for the company? What aspect of your ability does the company value most?
The ability to do projects requires a lot, the most fundamental of which is the modeling capability (now the most mainstream is object-oriented modeling!). )。 What is modeling capability?
I'll give you an interview question:
Insurance Card Management module of an insurance company: Sales personnel to receive insurance card information (number of insurance card, card number, pick date), and then directly sold to the customer, after the sale, the insurance card information into the insurance system (sales personnel information, purchaser information, the number of insurance cards purchased, card number, etc.), Customer Login to the insurance company website Activation Insurance Card, need to fill out (insurance card number, activation password, insured information, beneficiary information)
The requirement is: What do you do if this module is given to you? What problems do you want to solve? Can you draw a picture and give me a description of what you think?
This is just a face test, because only a few words, so I put it here, let us feel what the so-called modeling to solve what problems. And there are so many problems in the business area! Perhaps a dozens of-page requirement document would describe a business area's problems, and your job is to get them out!
A company to develop an attendance management system, requirements and the existing human resources system docking, you are the main technology leader, then, what do you want to do?
An ERP project to achieve a scheduling management module, to you to complete, how do you do it?
Don't complain that the project manager has given you too little information (only a few words), don't complain that the customer doesn't have a description of their needs ... Your value is to straighten out all the problems TB, get the information you want with a variety of means, summarize it in a certain way, and solve it one at a time!
You should realize that learning Java is not a tank war, a network speed, a CMS, a DRP, an OA so simple, you do not indulge in those technical details (although it is necessary, but do not turn niu Jiao Jian), not satisfied with the implementation of the CRUD-type project requirements (although this is the basis of the foundation), In front of you, there is always a goal there, need you to strive to catch up!
You will face more complex needs in the future, the only purpose of your study project is to learn how to translate requirements into implementation, how to analyze requirements, how to build a conceptual model, how to straighten out the relationships between concepts, how to design, how to choose the right technology to implement your design plan, How to test your implementation, how to solve the problem of the shape XXX you encountered (performance, requirements change, etc.). You will agree with me when you actually go to the company for a few years to develop!
The use of Java to find work, need is 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's implementation skills, understand the project test methods, understanding the project solutions to various problems!!!
So, you should know your goal!
Here is my collection of a systematic study of the atlas, a total of seven topics: each topic each knowledge point corresponds to our usual work in the technical points:
This is how the Java programmer wants to grow the law! Don't you want to know?