theoretical
Before I get into Java, I’d like to talk to you about some of the features, ecosystems and scenarios of the Java language itself, which will help you learn the language itself better.
First, let’s talk about some features of the Java language from the perspective of its implementation mechanism:
Object-oriented: Java is an object-oriented programming language. Encapsulation, inheritance and polymorphism make It suitable for large-scale software development.
Cross-platform: This is one of the most important features of Java. Thanks to virtual machine support, Java code can run seamlessly on any operating system without recompilation.
Transparent memory management: One of the biggest headaches for C/C++ students is memory leaks. In Java, programmers don’t have to explicitly reclaim memory because the virtual machine automatically reclaims unused memory.
Sufficient performance: Performance has been the Java is one of the problems, but after java6, along with the advance of the JVM virtual machine compiler optimization technology, garbage collection algorithm of optimization, the performance of Java has to be able to do most of the system requirements, even in the underlying system performance requirement is very strict, we can see the figure of Java.
In addition, Java has a well-established ecosystem:
Java has a large number of third party class libraries. As a developer, you will find it is a very happy thing to be a Java programmer, because many things have been done for you by others. All you need to do is to assemble the wheels that others have built to fulfill your business requirements.
Java has a very perfect development environment Eclipse, integrated a lot of practical functions, and the operation interface is very friendly.
Java has many excellent frameworks on which to rapidly develop a scalable business system.
Java has a very active community and forums where you can quickly get help when you run into problems.
Introduced these advantages of Java, Java in the end in which system development?
— Web system — mobile application server and Android client development — middleware system — back-end system: for example, big data related system
In the theoretical learning phase, students should first learn the basic Syntax of Java, including variable declaration, conditional judgment, loop, function writing. In addition, you should understand the basics of the Web, such as the HTTP protocol and the B\S architecture of Web applications.
Database is an indispensable persistent component of Java application system. In the theoretical learning stage, it is necessary to learn SQL syntax knowledge.
✍ have two tips:
1, you can complete some algorithm problems, to consolidate the results of Java grammar learning.
Bad writing is better than a good memory: take more notes and practice.
The development phase
After the theory phase, you should have a grasp of Java basics. To enter the development phase, you need to master some of the skills needed in the daily development of actual Java projects.
First of all, if you want to do a good job, you must first sharpen its tools, so the first thing to master Java common development tools and development environment.
Maven is the Java folder management software commonly used by large companies to help developers resolve dependencies and versioning between Java folders.
Git as code repository management software, can help us to achieve code version, branch management.
Ecplise is currently the most widely used Java development environment, it integrates Maven, Git and other commonly used plug-ins.
Secondly, knowledge learning, need to master the object-oriented knowledge, such as class and object definition method, how to achieve object inheritance, how to achieve polymorphisms based on interface, etc. Java containers are frequently used in development, including lists, sets, maps, etc. It is a good idea to understand the implementation mechanism and application scenarios of each container.
In terms of Web, students need to master Servlet programming, including Servlt Config and context programming. In terms of database, students need to master JDBC and be able to add, delete, change and search database based on JDBC.
Finally, let’s talk about the misunderstandings that are easy to occur in this stage of learning:
L Do not try to pass compilation at one time, encounter compilation errors, many students will be very anxious, in fact, there is a dependency between errors, solve a mistake, may be behind the error will be automatically removed, do not be intimidated by a large number of errors.
L Don’t copy code, I think a very bad habit of programmers is to copy code, especially in the beginning stage, try to knock code.
L Pay attention to programming norms: students should pay attention to programming norms from the beginning of code learning, such as variable name definition rules, function name definition rules, develop good programming habits.
This article turns to music bytes
The advanced stage
After mastering basic development skills, the advanced stage mainly exercises the developers’ ability to improve development efficiency and solve practical problems under actual typical business scenarios.
In terms of Web basics, Cookies and sessions, forwarding and redirection, filters and listeners should be mastered.
On the database side, learn how to use database connection pools, why to use database connection pools, database deadlocks, database SQL injection concepts.
In terms of Java language, we should start to learn Java application frameworks, such as Mybatis and Spring, which can help us build Java projects more efficiently. In the process of learning framework, I think we should not only learn how to develop the system based on the framework, but also pay attention to the design ideas of the framework itself, which is very helpful for developers to improve their code architecture ability.
In the advanced stage, note the following:
L Problem-oriented: Java knowledge complex, problem-oriented, as a starting point, can improve the efficiency of Java learning;
L Demand solution in specific scenarios: Each architecture has a typical application scenario, and problems should be analyzed and solved based on the actual application scenario;
L Use Google: as a programmer, it is normal to encounter unknown problems, the key is to use Google, community, forums;
Continuous improvement and optimization of performance: In the advanced stage, students should have basic performance tuning ability and focus on performance management;
Actual combat phase
Computer programming is a field that pays great attention to actual combat. In the process of Learning Java, it is necessary to have an actual combat project to help people consolidate their previous learning achievements, which is of great help for the subsequent rapid start of the actual business of the company.
There are some cloud platforms you can use to familiarize yourself with the process of setting up an environment for deployment. It is suggested that you learn related technologies of Docker. Microservice is a popular architecture in current system design. With the help of Docker’s features of rapid deployment, service discovery and service choreography, it can help us achieve rapid release and elastic expansion of the system.
In the actual combat phase, we should focus on the following points:
Document preparation: the preparation of detailed design documents is also a programmer must have a skill, to learn the format of design documents, write specifications.
This article turns to music bytes
Finally, we recommend two b station super detailed Java self-study full set of courses: from Java zero foundation to project combat oh [B station BV: BV1J5411c78D] ten enterprise-level project self-study course -B station: BV1Gp4y1b7SZ will be BV number, copy to B station can be
Need big factory Java interview full set of questions
Can pay attention to the public number: love programming FAFA
Key words: Study hard
Get complete interview questions