Java project experience-Key to programmer growth, java programmer
Java is used for project! The main application field 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. Strong Object-Oriented Analysis and Design Skills
3. Master the use case-driven mainstream development methods with architecture as the core
No one is willing to be able to master some code implementation skills all their life. If someone tells you what to implement, you can use code to implement others' requirements! You must learn to think about the entire project! You must learn how to think if you are a project manager! You must learn how to think if you are an architect! You must master the analysis methods for a specific problem area!
Basic knowledge: You can look at these terms or knowledge points to see if you can say that the year 1234 has come.
JavaSE
---- Basic syntax, data type, operators, etc.: int, long, Integer, Long, if, else, for, while
---- Object-oriented: class, Object, instance, state, behavior, field, method, new, and 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 errors and runtime errors, Exception, RuntimeException, checked exception, unchecked exception, try, catch, finally, throw new XXXException, throws XXXException, and basic principles of Exception Handling
---- Array and Set: array definition and usage, Collection, List, Set, Map, ArrayList, HashSet, HashMap, Iterator, equals, hashCode, Comparable, and 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 mode and original stream class, Decorator design mode and packaged stream class, Object serialization and deserialization
---- Multithreading: Thread, Runnable, sleep, wait, y, synchronized, lock
Servlet and JSP
---- HttpServlet, doGet, doPost, HttpServletRequest, HttpServletResponse, and request. getParameter (), request. setAttribute (), request. getAttribute (), request. getSession (), ServletContext, Filter, web. xml, tomcat, forward, redirect, http stateless, cookie, JSP Scope Object, <c: out... />, <C: forEach…>
HTML and JavaScript
---- You need to be able to understand common web page tags, understand the methods for Introducing JavaScript into webpages, and the basic syntax and usage of JavaScript.
The above is the basic knowledge you need to learn more about Java. Especially some professional terms and terms. If you see these terms as friendly as you are, it means you are familiar with the basic knowledge of Java.
Next is SSH:
For beginners, these three frameworks have been given too many mysterious colors, and they seem to be the top priority! However, for those who have many years of Java development experience, those who are skilled in Java are not quite familiar with these three frameworks! Aren't they important?
Nowadays, many enterprises are using these three frameworks. Therefore, many enterprises also take these three frameworks as a necessary condition for recruitment. It is undeniable that many large enterprises have not used these three frameworks. After years of development, these enterprises have already accumulated technical expertise and have formed their own unique technical framework system. These three frameworks are both important and unimportant.
The important reason is that these three frameworks provide beautiful solutions to common problems in Java EE development, they contain the efforts and ideas of the most NB developers in the industry, you will be able to find out what the tech-savvy cool people think about a problem and solve the problem through a design idea. Therefore, for you, you do not have much project development experience and experience? Experience is that you know what problems you may encounter, which problems can be solved, in a specific scenario, which solution is better, and which method is not good! If you haven't done any projects, you won't even realize what problems you may encounter. These problems are often critical! Poor solution will affect the stability and scalability of your program! The three frameworks provide beginners with an understanding of what problems you may encounter in the future and solutions to these problems!
When you understand why these three frameworks are important, you can understand why these three frameworks are not important. If you have developed many projects and encountered various problems, you have broken these problems one by one with your technical skills. In the eyes of these people, three major frameworks (are there N more frameworks? Haha) It's a float cloud!
Who do you belong? If you do not have much project development experience, the three major frameworks are very important to you! In addition, you also know how to learn these three frameworks. For the study of the three frameworks, the focus is to show you problems and trigger your own active thinking. We encourage you to come up with your own ideas. Maybe you are an idiot, but after all, it's your own idea. If you don't know what a cool man thinks, how do you know that your idea is very idiotic? In the course of this collision, you will gradually improve yourself! Therefore, after learning the three frameworks, you should not only see a lot of configuration files, but also some actions, some services, and some ing files. You should not only know the session. save/update/delete: You should not only know that there are a bunch of interceptor in struts2, you should not just see a bunch of jar packages ......
If you just know how to copy a bunch of jar packages and define a series of configuration files, the three SSH frameworks can run and work for you, then sadly, you still haven't mastered the essence of the three major frameworks! Please answer the following questions:
Struts2:
Why is an Action object created for each request?
In the configuration of ModelDriven interceptor, What problems does refreshModelBeforeResult solve?
Why does the StrutsPrepareAndExecuteFilter configured in web. xml need to filter all requests?
Could you tell me about ValueStack?
How does Struts2 implement the MVC design pattern?
Spring:
Why are you using Spring?
What about IOC/DI?
What is declarative transaction management? Why should I use declarative transaction management? How does Spring implement declarative transaction management?
When we integrate spring and hibernate to define the transaction management features, why should we define the methods other than the add, delete, and update operations, that is, the methods that mainly execute query tasks as read-only?
Hibernate:
Can you talk about your understanding of OR ing?
Many people say that Hibernate is not suitable for big projects and has performance problems. How do you understand it?
Why must Hibernate define a database ID?
Why does Hibernate suggest implementing the hashCode and equals methods in your object class?
What do you know about the relationship between the database ID and the database primary key in the Hibernate object class?
What do you know about the relationship between Hibernate Association ing and database Foreign keys?
Does hibernate always issue an insert statement when session. save () is called? About your understanding
Does hibernate always issue an update statement when session. update () is called? About your understanding
Please talk about the following terms, concepts, or usage: lazy, lazy = "extra", inverse, fetch, fetch = "join", fetch = "subselect", batch-size
Will lazy = "true" always implement lazy loading?
Please talk about "N + 1" in Hibernate
What are the best practices of Hibernate?
The above are not all key issues in SSH, but they can test whether you can use the SSH framework flexibly! If you have a deep understanding of these problems, and then train with appropriate practical projects, you will gradually become a cool man!
Finally, the project development capability:
Whether you are learning Java or other technologies, your fundamental goal is to create value for customers! Otherwise, the things you are trying 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, you need to use technology to create what the customer needs! The reason why a company wants to retain you with various welfare conditions is that you can bring great benefits to the company! So, what can you use for the company? What kind of capabilities does the company value most?
Many capabilities are required for project creation. The core and most basic of these capabilities isModeling capability(Currently the most mainstream is object-oriented modeling !). What is modeling capability?
I will give you an interview question:
Insurance card management module of an insurance company: sales personnel receive insurance card information (number of insurance cards, card number, receipt date), and then directly sell it to the customer, enter the insurance card information into the system of the Insurance Company (sales personnel information, purchaser information, number of purchased insurance cards, card number, etc.). The customer logs on to the insurance company website to activate the insurance card, required (insurance card number, activation password, information of the insured, and information of the beneficiary)
The requirement is: What do you do if this module is handed over to you? What problems do you want to solve? Can you draw a picture to describe your thoughts?
This is just an interview question, because there are only a few simple words, so I put it here to let everyone feel what the so-called modeling should solve. There are too many problems in the business field! Maybe a dozens of hundreds of pages of Requirement documents can clearly describe the problems in a business field, and your duty is to implement them!
A company needs to develop an attendance management system and connect it to the existing human resources system. You are the main technical director. So what do you want to do?
How do you implement a shift management module for an ERP project?
Do not complain that the project manager gives you too little information (just a few words), and do not complain that the customer has not clearly described their needs ......Your value lies in streamlining all problems, obtaining the information you want by various means, summarizing the information according to certain ideas, and solving it one by one at a specific time.!
You should be aware that learning Java is not as simple as a tank war, a network speeding up, a CMS, a drp, and an OA. You should not indulge in those technical details (although it is also necessary, but do not turn to the best of the world), do not meet the CRUD-style project requirements (although this is the foundation), there will always be a goal in front of you, you need to catch up!
In the future, you will face more complex requirements. The only purpose of your learning project is to learn how to transform your needs into implementation, how to analyze your needs, and how to build a conceptual model, how to streamline the relationships between various concepts, how to design, how to select appropriate technologies to implement your design scheme, and how to test your implementation, how to solve all kinds of problems you encounter (performance, demand change, etc ). After several years of development in the company, you will agree with me!
Looking for a job using Java requires project experience,Project experience is the basic process of project development, understanding the project analysis methods, understanding the project design ideas, understanding the project implementation skills, and understanding the project testing methods, understand solutions to various problems in the project!!!
So you should be clear about your goal!
Java study and exchange QQ group: 523047986 chat prohibited, do not enter!