Reprinted java development foundation https://blog.csdn.net/jiangjiewudi/article/details/9565749

Java is used to make items! Java is the main application field of enterprise-class project development! To engage in project development enterprise, you must master the following points:
1, to master the basic steps of project development
2, analysis and design skills with strong object-oriented
3, master the use case-driven, mainstream development approach to architecture as the core

no one wants to spend their whole lives to master the skills to meet some code to achieve, people tell you what you want to achieve, you can use the code to implement a pile of other people's requirements! You must learn to think from the perspective of the entire project! You must learn if you are a project manager, how do you think! You must learn if you are an architect, how do you think! You must master the field of analytical methods for a specific problem!

About the basics: you can look at these terms or knowledge to see if you can tell by 1234.

The JavaSE
---- Basic syntax, data types, operators and the like: int, long, Integer, Long , if, else, for, while
the object-oriented ----: class (category), Object (Object), instance (Example ), state (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, the object transformation (casting), polymorphic, this, super
---- Exception Handling: Understanding compile errors and run-time error difference, Exception, RuntimeException, checked exception, unchecked exception, try, catch, finally, throw new XXXException, throws XXXException, the basic principles of exception handling
---- definition and use of the array, collection, List, Set, Map , ArrayList, HashSet, HashMap, Iterator, equals, hashCode, Comparable, Comparator: arrays and collections
---- commonly used classes: String, intern, constant pool, StringBuffer, java.util.Date, SimpleDateFormat, regex (regular expression)
---- reflection: Class, Method,, Field,, Invoke, the newInstance, BeanUtils (Apache-Commons), PropertyUtils (Apache-Commons)
---- O stream: InputStream, OutputStream, Reader, Writer , Adapter design patterns with the original stream classes, Decorator design pattern and packaging stream classes, object serialization and de-serialization
---- multithreading: thread, Runnable, sleep, wait , notify, the synchronized, Lock

Servlet and JSP
---- HttpServlet, doGet, doPost, HttpServletRequest , HttpServletResponse, request.getParameter (), request.setAttribute (), request.getAttribute (), request.getSession (), ServletContext, Filter, web.xml, tomcat, forward and redirect, stateless http protocol, the cookie, JSP Scope Object, <c: OUT ... />, <c: forEach ...>

HTML and JavaScript
---- you need to be able to understand common web label, introduced in understanding the page JavaScript methods, and basic grammar and usage of JavaScript

above, is necessary for you to further learn the basics of Java. In particular, some professional jargon and terminology, see these terms, if you like to see the same kind Qindie, then shows you the basics of Java is very familiar.

Next is SSH:
For starters, the three framework been given too much mystery, as if they were the most important knowledge! But for Java developers have years of experience in professional and technical personnel, Java cow for those people, but these three framework is not too cold! Do they unimportant?

Now many companies are using these three frameworks, so many companies to grasp the three framework as a prerequisite for recruitment. It is undeniable that there are many large companies do not use these three frameworks, these companies after years of development, itself has a certain accumulation of technology, but also formed its own unique technology framework. These three frameworks can either say that it is important, it can also say important.

Said an important reason: the three major framework for common problem of the existence of JavaEE development, providing elegant solution, which contains the idea of the effort and the industry's most NB developers, so learning these three framework, you can get a glimpse into these cattle people are in exactly the pinnacle of a technical problem is how to think, to solve the problem through what kind of design ideas. So, for you, you do not have much experience in project development, what experience? Experience is that you know what problems you may encounter and what solutions there can be a problem for which, under certain scenarios, which is a better solution, which method is not very good and so on! If you did not make any project, you simply can not go to realize what you may encounter problems, and these problems often is critical! Resolved properly, it will affect the stability of your program, scalability and so on! Three framework give beginners an understanding of what you may later problems, and solutions to these problems encountered!

When you understand why these three framework is important, then you can understand why the three frameworks can be said is unimportant. If you've ever worked on many projects, you encounter a variety of problems, with your technical skills, these problems one by one break, in the eyes of these people, three frame (N framework is not there? Oh ) are the clouds!

What kind of people do you belong to? If you do not have much experience in the development project, three frame for you is very important! And, so you know how to learn the three major frameworks. Three framework for learning, the focus is to show you the problem, and trigger your own initiative thinking, we encourage you to submit your thoughts, maybe your idea is an idiot, but after all, your own thoughts, if you do not know who's idea of cattle, how do you know how they really are an idiot it? In a collision course this idea, you will gradually improve their own! So, after the completion of the three framework, you should not just see a lot of configuration files, you should not just see some Action, some of the Service, some of the mapping file, you should not only know session.save/update/delete, you should not just know there are a bunch of struts2 interceptor, you should not just see a bunch of jar package ......

If you just know a bunch of copies of the jar package, and then define a series of configuration files, SSH three framework can be up and running, it can work for you, then, very sad is that you still have not mastered the three framework Pristine! Please answer the following questions:

Struts2:
Why each request must create an Action object?
Configuring ModelDriven interceptors in refreshModelBeforeResult solve the problem?
Why configured in web.xml StrutsPrepareAndExecuteFilter to filter all requests?
Please give me talk ValueStack?
How to achieve Struts2 MVC design pattern?

Spring:
Why do you use Spring?
Please chat IOC / DI?
What is declarative transaction management? Why use declarative transaction management? How to implement Spring's declarative transaction management?
The spring and hibernate integration, transaction management features defined time, in addition to why you want to add, delete, update operation method other than that the main task of executing the query methods are defined as read-only?

Hibernate:
Please talk about your understanding of OR mapping?
Many people say that Hibernate is not suitable for large projects, there are performance problems, how do you understand?
Hibernate Why must define a database identification?
Why do you recommend Hibernate entity classes implement hashCode and equals method?
Talk about your understanding of the relationship between the database that indicates the Hibernate entity classes and database primary key?
Talk about your understanding of the relationship between Hibernate mapping associated with the database foreign keys?
Call session.save () method, hibernate will issue an insert statement it? Talk about your understanding of the
call session.update () method, hibernate statement it will issue an update? Talk about your understanding
you please talk about the terms, concepts or usage: lazy, lazy = "extra" , inverse, fetch, fetch = "join", fetch = "subselect", batch-size
equipped with lazy = "true" You will implement lazy loading it?
Please talk about "N + 1" issue in Hibernate
you tell us what the best practices Hibernate there?

Not all of the above issues focusing on SSH, but they can visit you can use SSH flexible framework! If you can fully understand these issues, together with the right practical project training, you will gradually become a cow!

Finally, project development capabilities:
whether you are a school or other Java technology, your fundamental purpose is to create value for customers! Otherwise, what you make great efforts to study, and updated with the progress of technology, will soon be out of date! So, the core technology is to use technology to create valuable results! In other words, what the customer wants, you have to use technology to customer needs something to make him out! The reason to use a variety of benefits at company tried to retain you, because you can bring a high benefit to the company! So, what can you give companies use it? The company most important aspects of your ability to do what?

Many projects require the ability to do, which is the most basic core modeling capabilities (most mainstream object-oriented modeling is now!). What is modeling capabilities it?

I will give you a face questions:
An insurance company's insurance card management modules: sales staff receive insurance card information (number of the insurance card, the card number, collection date), then sold directly to customers after the sale is completed, the internal security card information into the insurance company system (sales information, purchaser information, the number of insurance cards purchased card number, etc.), customer logs insurance company website to activate the insurance card, you need to fill in (the insurance card number, password is activated, the insurer information, beneficiary information) is

required is this: If this module to you do, how would you do? What you want to solve the problem? Can you draw a map, give me a description of what you think is right?

This is just a face questions only, because only a few simple words, so I put it here, so that we feel the so-called modeling to solve any problems. The problem areas of the business is too much! Maybe a few requirements document hundreds of pages to the issue of a clear description of business, and your job is to make them realize it!

A company to develop a time and attendance management system requires docking with the existing human resources systems, you are the main technical director, then, what kind of work you do?

An ERP project to achieve a workforce management module, to give you complete, how you complete it?

Do not complain to your project manager too little information (only a few words), do not complain that the customer does not clearly describe their needs ...... your value lies straighten out all the problems, get the information you want by all means, aggregated according to certain ideas, and solve it one by one in the given time!

You should be aware that learning is not a Java Battle City, a network Speed, a CMS, a DRP, a OA so simple, you do not indulge in those technical details (though also necessary, but do not turn dead end), do not settle for realization a CRUD type of project requirements (although this is the basis of this foundation), in front of you, there will always have a goal, you need to work hard to catch up!  

In the future you will face a more complex requirements, the sole purpose of your learning project, is this: learn how to implement requirements into how needs analysis, conceptual model of how to build, how to rationalize the relationship between various concepts, how design, how to choose the right technology to achieve your design, how to test your implementation, how to solve a variety of problems (performance, demand change, etc.) you are experiencing. When you really get to inside the company engaged in the development of a few years, you will agree with me!

Using Java to find a job, what is needed is to project experience, project experience is to understand the basic process of project development, understanding of project analysis, project design ideas understanding, comprehension skills to achieve project, program comprehension test methods, understand the various project solution to the problem! ! !

So, you should clear your goals!

Guess you like

Origin www.cnblogs.com/67373cyf/p/11530552.html