Today to share a Java project experience, I hope to give the growing novice Java programmers a learning direction!

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

No one is willing to be satisfied with their lifetime to master some code implementation skills, others tell you to achieve what, 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! You must master the analytical method for a particular problem domain!

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 Throws XXXException, basic rules for exception handling —- Arrays and sets: Collection, List, Set, Map, ArrayList, HashSet, HashMap, Iterator, equals, hashCode, Comparable, Comparator —- String, Intern, Constant pool, StringBuffer, java.util.Date, SimpleDateFormat, Regex (regular expression) —- Class, Method, Field, Invoke, newInstance, BeanUtils (Apache-Commons), PropertyUtils (apache-Commons) —- InputStream, OutputStream, Reader, Writer, Adapter design pattern vs. primitive stream class, Decorator design pattern vs. wrapped stream class, 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, Request.ge TAttribute, 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 to web pages, and the basic syntax and usage of JavaScript. These are the basic knowledge necessary for you to further learn 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 important reasons are:


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. Will Hibernate issue insert statements when calling the session.save method? Does Hibernate issue an update statement when calling the session.update method? Please talk about the following nouns, concepts or uses: Lazy, lazy= “extra”, inverse, fetch, fetch= “join”, fetch= “subselect”, batch-size specifies lazy= “true”. What are the best practices in 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!

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 many abilities required to do a project, among which the core and most basic is modeling ability.


What is modeling capability?

Here’s 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, You need to fill in (insurance card number, activation password, insured information, beneficiary information) the requirements are: if this module is assigned to you, what will 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 so 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 doesn’t give you enough information. Don’t complain that the client doesn’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 so simple, you don’t indulge in the technical details (although there is a necessary, but not to end), don’t be content to realize the CRUD type of project requirements (although this is the foundation of base), in front of you, always have a goal there, You need to work hard to catch up! 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.).


Looking for a job in Java is all about project experience.


Project experience is to understand the basic process of project development, to understand the analysis method of the project, to understand the design ideas of the project, to understand the implementation skills of the project, to understand the test method of the project, to understand the solutions to various problems in the project!!

Now that you’re a Java programmer, you know what you want to do!

The author of this article: Decheng Recruitment