Java project Experience-the key to programmer growth

Source: Internet
Author: User
Tags object serialization

Java is used to do projects.! 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

No one wants to be satisfied with their own life to master a number of code implementation skills, others tell you to achieve what, you use code piling 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! You have to master the analytical method for a particular problem area!

about basic 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, HTTP protocol stateless, cookie, JSP Scope Object, <c:out .../>, <c:foreach ...>

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 up 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!

Finally, project development capability
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 core of which is the most basicModeling Capabilities(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, get the information you want with every 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 various problems you encounter (performance, requirements change, etc.). You will agree with me when you actually go to the company for a few years to develop!

Using Java to find a job requires 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, understand the project's solutions to various problems!!!

So, you should know your goal!

Java Learning Exchange QQ Group: 523047986 prohibit small talk, non-happy do not enter!

Java project Experience-the key to programmer growth

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.