How to Learn Java-Java learning roadmap and java Roadmap
How to Learn Java is a problem that many new users often ask me. Now I will briefly describe some things to be learned by the next Java beginner at work:
First, we need to understand three aspects of the Java System Design: J2SE, J2EE, and j2-kjava ). J2SE, Java 2 Platform Standard Edition, JDK we often talk about, mainly refers to this, it is the basis of the three, is a table-level application development, if this part is well learned, it is easy to expand J2EE and j2s. The Micro Edition of the java 2 Platform. It is mainly used for embedded Java, such as mobile phones and PDAs. J2EE, Java 2 Platform, and Enterprise Edition are so-called Enterprise-level Java and are suitable for large-scale Enterprise application development.
J2SE:
When a newbie first learns from J2SE, the content mainly includes: understanding of object-oriented concepts, learning of Basic Java syntax, and developing Java Desktop graphic interface applications, master common Java APIs (the key is to learn how to view them ).
Key points: Java basic syntax (loop structure, data type, array, operator, etc.), Swing, awt, event mechanism, file input/output stream processing, etc.
Difficulties: understanding of object-oriented ideas (interfaces, classes, etc.), threads, socket network programming, etc.
Video tutorial recommendations: Sun Xin's basic Java video tutorial and Zhang Xiaoxiang's basic Java video tutorial are all very detailed, and these two teachers have good experience in teaching.
J2EE:
After learning J2SE, you can try to slowly transition to J2EE. Of course, learning J2EE requires a lot of support from non-JAVA technologies, such as database technology and Web programming technology, I will introduce these two aspects in detail later. J2EE has three required frameworks. If you say you have learned J2EE, but you don't know it, it will make people laugh, these three frameworks are Struts, spring, and hibernate. Although these three frameworks are widely used, they do not represent J2EE. J2EE has many other things, for example, EJB, as a heavyweight (this heavyweight doesn't mean a heavyweight player, this heavyweight is not another heavyweight) framework, although this application is slowly replaced by other frameworks, however, the emergence of EJB3.0 brings back some vitality to it. As a distributed application framework, it is also the knowledge that everyone should learn and understand.
Of course, I mentioned that J2EE has a wide range. Even if I talk about all the technologies I know, it cannot represent J2EE, we need to find out when we are working again later. What I know also includes:
JDBC: the connection object of the Java database. Hibernate is only an encapsulation of the object. JNDI: Java Naming and directory interfaces. One of the most important J2EE specifications.
EJBS: As mentioned above
RMI: supports remote call methods and is mainly used for distributed program development.
JMS: Java Message Service, middleware technology
Java idl: a technology that provides the interaction and interconnection capabilities between the J2EE platform and CORBA.
JTS: component transaction Monitor
JTA: A technology for Transaction Division
JAVAMAIL: Mail technology in Java
JAF: Java startup framework, not studied
Log4j, a log Processing Framework Application
Junit: a good helper for unit testing
Freemarker and velocity: two good template Engines
Interaction with Flash Flex: Currently, many SNS applications use this technology.
Web services: Do you want to know how the weather forecast of our forum works? Please pay attention to this technology SOA: Service-Oriented Architecture, one of the trends of future technological development
......
However, none of the above is the basis of J2EE and belongs to the Framework application level. to really master the knowledge mentioned above, we still need to learn the core things of J2EE: JDBC, JSP, servlet and JavaBean, the next three are also the basics for learning SSH (Struts \ Spring \ Hibernate ). considering that the content of J2EE is too complex, we recommend that you only learn about JSP, servlet, and JavaBean at first, and then learn about SSH after you have mastered this basics, if you have a general understanding of other J2EE technologies, you can find a job. Of course, in addition to learning Java well, some other technologies must be mastered.
-_-I am very simple, but Java requires me to learn so many complicated things. In addition to these technologies, at this stage, we are more exposed to things such as design patterns, such as factory models, bridge models, and Singleton models, we also need to learn modeling ideas (such as UML modeling) and software life cycles. These are the methods and ways to subscribe to programming ideas.
Database Technology:
The database is almost an indispensable part of the program and plays an important role in the whole software development. databases play the role of foundation in the entire software. To build a house, you must lay the foundation first. To do software, you must first design a database. currently, almost all databases are relational databases, which represent SQL Server/MySQL. We do not recommend that you learn this.
Oracle. oracle products, large databases, and genuine general companies cannot afford them. I only have a look, but now Java Development 60% will use this database, and now oracle has acquired sun, so the relationship between JAVA and oracle is even more ambiguous, you have spent more time on this.
In addition, you should also understand the databases used for desktop application software development, such as sqlite. You can package the database into your installer when creating the installer.
WEB programming basics:
There are also a lot of content to be learned on the basis of WEB programming, but they are mainly concentrated on the following three technologies. The web pages of various styles are displayed on a daily basis:
HTML: Hypertext Markup Language
CSS: stacked style sheet
JavaScript: browser client scripting language
Nowadays, javascript libraries are even more popular, such as jQuery and ExtJs. If you use a library, you can find a job to make it easy.
J2EE:
If you are not familiar with the above technologies, you can study the development of mobile phone programs. In my personal opinion, the development of mobile phone programs is actually quite simple, and the difficulty lies in optimization, for example, how to make programs you write as much as possible to save mobile phone resources, "code is valuable, mobile phone price is higher", so you have to consider a lot of cost and practicality issues more than PC. If you are learning from j2-based learning, do not simply test it on the simulator. You must test it on a real machine. The effects of the real machine and the simulator are quite different. More mobile phone development technologies can be discussed with me if you are interested.
Development tools:
The choice of development tools is mainly based on your habits. I personally prefer to use eclispe, which has powerful functions and extends other functions. For beginners, you can also choose JCreator or use Notepad directly. After you are familiar with the Java code, you can use tools such as JBuilder, eclispe, and netbeans.
Let's talk about this first, and then we will improve this post together. Try to organize some learning resources for you here. You are also welcome to organize some technical resources and development tools mentioned in my article. Finally, I would like to share with you one sentence: Life is thriving, and struggle is endless.
Java study and exchange QQ group: 523047986 chat prohibited, do not enter!