search
HomeJavajavaTutorialDetailed introduction to the path to Java advancement

Detailed introduction to the path to Java advancement

Jul 23, 2017 pm 02:59 PM
javaprimaryprogrammer

How to learn to grow from a junior Java programmer to a qualified architect, or what kind of technical knowledge system a qualified architect should have. This is not only a junior programmer who has just entered the workplace, but also a job This is a question often asked by veteran programmers who become confused after three or five years. I hope this article will be the most comprehensive and authoritative answer you have ever seen.

1: Basics of Programming

Whether it’s C or C++, whether it’s Java or PHP, if you want to be a qualified programmer, you still need to have basic data structures and algorithm foundations. The following articles will sort out commonly used data structures and classic algorithms for you from idea to implementation.

1-1 Commonly used data structures

Arrays, linked lists, heaps, stacks, queues, Hash tables, binary trees, etc.

1-2 Algorithm ideas

Analysis and calculation of algorithm time complexity and space complexity

Algorithm ideas: Recursion, recursion, exhaustion, greedy, divide and conquer, dynamic programming, iteration, branch bound

1-3 Classic algorithms

Classic sorting: insertion sort, bubble sort, quick sort (divide and exchange sort), direct Selection sort, heap sort, merge sort

Classic search: sequential search, binary search, binary sort tree search

1-4 Advanced data structures

B+/B- numbers, red-black trees, graphs, etc.

1- 5 Advanced Algorithms

Depth-first search of graphs, breadth-first search of graphs, topological sorting, Dijkstra algorithm (single source shortest path), Huffman coding, euclidean division, minimum spanning tree, etc.

2: Java Language Basics

The Java language, which was born just over 20 years ago, has been widely used in Web websites, mobile devices, and desktop applications due to its cross-platform, object-oriented, and suitable for distributed computing features, and has been firmly ranked in TOBIE for many years. It is at the top of the programming language rankings, and recently it was ranked first. What are the outstanding and distinctive features of Java must first be clear.

2-1 Basic grammar

Java syntax format, constants and variables, variable scope, methods and method overloading, operators, program flow control, various basic data types and packaging classes

2-2 Important : Collection class

Collection and various List, Set, Queue, Map implementation and integration relationships, implementation principles

Collections and Arrays

2-3 Other JavaAPI

String and StringBuffer, System and Runtime classes, Date and DateFomat Class

java.lang package

java.util package (collection class system, regular expressions, zip, and time, random numbers, properties, resources and Timer, etc.)

java.math package

java.NET package

java.text package (various formatting classes, etc.)

java.security package

2-4 Object-oriented, interface-oriented

Three major characteristics of objects: encapsulation, inheritance and polymorphism, advantages and disadvantages

How to design Classes, class design principles

this keyword, final keyword, static keyword

instantiation process of objects

rewriting and overloading of methods; method and method parameter passing process

constructor

internals Classes, abstract classes, interfaces

Polymorphism of objects (conversion between subclasses and parent classes, references to parent carton classes), application of abstract classes and interfaces in polymorphism

2-5 JVM memory Model, garbage collection

2-6 About exceptions

Throwable/Error/Exception, Checked Exception vs. Unchecked Exception, exception catching and throwing, exception catching principles, use of finally

2-7 Multi-threading

The concept of threads and processes

How to create multi-threads in a program, thread safety issues, communication between threads

Thread synchronization

Analysis of deadlock problems

Thread pool

2-8 IO

java. io package, understand the design ideas of the IO system based on the pipeline model and the characteristics and usage scenarios of commonly used IO classes.

File and related classes, byte streams InputStream and OutputStream, character streams Reader and Writer, and corresponding buffer streams and pipe streams, byte and character conversion streams, packaging streams, and common packaging classes are used to analyze IO performance

2-9XML

Be familiar with the advantages and disadvantages of SAX, DOM and JDOM and be able to use one of them to complete XML parsing and content processing; the principles of these parsing methods

2-10 Some advanced features

Reflection, proxy , generics, enumerations, Java regular expressions

2-11 Network programming

Principles and applicable scenarios of network communication protocols, Socket programming, working principles of WEB servers

2-11 JDK1.5, JDK1.6, JDK1 .7. What new features and improvements have been added to each version of JDK1.8 compared to the previous version?

Three: Database related

I mentioned the data structure earlier. The database is simply like an electronic database. A specialized filing cabinet is a warehouse that organizes, stores and manages data according to a certain data structure.

3-1 Theoretical basis

Database design principles and paradigms

Transactions (ACID, working principles, transaction isolation levels, locks, transaction propagation mechanisms)

3-2 Analysis of advantages and disadvantages of various databases, usage scenarios

MySQL/SQLServer/Oracle and various NoSQL (Redis, MongoDB, Memcached, Hbase, CouchDB, etc.)

3-2 SQL statements

Database creation, permission allocation, table creation, addition, deletion, modification, connection, subquery

Triggers, stored procedures, transaction control

3-3 optimization

Index principle and application, large table query optimization, multi-table connection query optimization, subquery optimization, etc.

3-4 database, table, backup, migration

Import, export, database, table, cold standby and hot Backup, master-slave backup, dual-machine hot backup, vertical expansion, horizontal expansion

3-5 JDBC

JDBC Connection, Statement, PreparedStatement, CallableStatement, ResultSet and other different types of use

Connection pool (configuration usage, implementation principle)

ORM, DAO

Four: JavaWeb core technology (including some front-ends)

HTML5/Css/js native/jQuery

Ajax (cross-domain, etc.)

JSP/JavaBean/Servlet/EL/JSTL /TabLib

JSF

JSON

EJB

Serialization and Deserialization

Rules Engine

Search Engine

Template Engine

Cache

Authentication

Testing

Cluster

Persistence

Generate static page technology

High performance

Security

Transaction JTA

Others you need to know, such as: management JMX, security JCCA/JAAS, integrated JCA, communication JNDI/JMS/JavaMain/JAF, SSI technology

5. Mainstream frameworks and tools

Struts1/Struts2

spring (IoC, AOP, etc.), SpringMVC

Persistence: hibernate/MyBatis

Log: Log4j

Unit test: JUnit

Message queue: ActiveMQ, RabbitMQ, etc.

Load balancing: Nginx/HaProxy

Web server: Tomcat, JBoss, Jetty, Resin, WebLogic, WebSphere, etc.

Communication: WebService (cxf's soap, restful protocol)

Cache: redis, Memcached

Work Stream: Activity, JBPM

Search engine: lucene, solr based on lucene package

Template engine: Velocity, FreeMaker

Big data: Hadoop (HDFS and MapReduce)

Build tool: Ant/Maven

6 , JavaWeb system design and architecture

Java design patterns

JAVA and UML modeling

Service-oriented architecture: SOA/SCA/ESB/OSGI/EAI, microservices

Resource-oriented architecture: ROA/REST

Cloud-oriented Architecture: COA/Saas/Cloud Computing

Large website load balancing, system tuning, etc.

Seven, More

Troubleshooting ability:

should be able to quickly locate the cause of the problem based on the exception information and approximate location

Optimization capabilities

Code specifications and code management:

Have its own code specification system, and the code is readable

Wide knowledge:

Understand various network products and features , understand all kinds of middleware, be able to know where the pitfalls are, be well versed in the advantages and disadvantages of various technical solutions, know how to integrate various resources and achieve the optimal... Understand various technologies and application scenarios, and have enough work experience to solve them Various strange problems encountered during integration

Technical management/technical director:

Product management, project management, team building, team improvement

The above is the detailed content of Detailed introduction to the path to Java advancement. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
How does IntelliJ IDEA identify the port number of a Spring Boot project without outputting a log?How does IntelliJ IDEA identify the port number of a Spring Boot project without outputting a log?Apr 19, 2025 pm 11:45 PM

Start Spring using IntelliJIDEAUltimate version...

How to elegantly obtain entity class variable names to build database query conditions?How to elegantly obtain entity class variable names to build database query conditions?Apr 19, 2025 pm 11:42 PM

When using MyBatis-Plus or other ORM frameworks for database operations, it is often necessary to construct query conditions based on the attribute name of the entity class. If you manually every time...

How to use the Redis cache solution to efficiently realize the requirements of product ranking list?How to use the Redis cache solution to efficiently realize the requirements of product ranking list?Apr 19, 2025 pm 11:36 PM

How does the Redis caching solution realize the requirements of product ranking list? During the development process, we often need to deal with the requirements of rankings, such as displaying a...

How to safely convert Java objects to arrays?How to safely convert Java objects to arrays?Apr 19, 2025 pm 11:33 PM

Conversion of Java Objects and Arrays: In-depth discussion of the risks and correct methods of cast type conversion Many Java beginners will encounter the conversion of an object into an array...

How do I convert names to numbers to implement sorting and maintain consistency in groups?How do I convert names to numbers to implement sorting and maintain consistency in groups?Apr 19, 2025 pm 11:30 PM

Solutions to convert names to numbers to implement sorting In many application scenarios, users may need to sort in groups, especially in one...

E-commerce platform SKU and SPU database design: How to take into account both user-defined attributes and attributeless products?E-commerce platform SKU and SPU database design: How to take into account both user-defined attributes and attributeless products?Apr 19, 2025 pm 11:27 PM

Detailed explanation of the design of SKU and SPU tables on e-commerce platforms This article will discuss the database design issues of SKU and SPU in e-commerce platforms, especially how to deal with user-defined sales...

How to set the default run configuration list of SpringBoot projects in Idea for team members to share?How to set the default run configuration list of SpringBoot projects in Idea for team members to share?Apr 19, 2025 pm 11:24 PM

How to set the SpringBoot project default run configuration list in Idea using IntelliJ...

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software