Home  >  Article  >  Java  >  Detailed introduction to the path to Java advancement

Detailed introduction to the path to Java advancement

零下一度
零下一度Original
2017-07-23 14:59:001055browse

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
Previous article:Java basic syntaxNext article:Java basic syntax