The path to advanced Java-from junior programmers to architects, from small workers to experts, and java

Source: Internet
Author: User
Tags database sharding

The path to advanced Java-from junior programmers to architects, from small workers to experts, and java

How to Learn how to grow from a Java junior programmer to a qualified architect, or what technical knowledge system should a qualified architect have, this is not only a beginner programmer who has just entered the workplace, but also an old programmer who has been confused since year 35. I hope this article will be the most comprehensive and authoritative answer you have ever seen.

I. Programming Basics

Whether it's C or C ++, Java or PHP, you want to be a qualified programmer, with basic data structures and algorithms. The following articles describe common data structures and classic algorithms from thought to implementation.

1-1 Common Data Structures

Array, linked list, heap, stack, queue, Hash table, binary tree, etc.

1-2 algorithm ideas

Analysis and computing of algorithm time complexity and space complexity

Algorithm ideas: recursive, recursive, exhaustive, greedy, sub-governance, dynamic planning, iteration, and branch boundaries

1-3 classic algorithms

Classic sorting: insert sorting, Bubble sorting, fast sorting (sharding and switching sorting), direct selection sorting, heap sorting, and Merge Sorting

Classic search: sequential search, binary search, and Binary Search

1-4 Advanced Data Structure

B +/B-number, red/black tree, graph, etc.

1-5 advanced algorithms

Depth-first search, breadth-first search, Topology Sorting, Dijkstra algorithm (single-source shortest path)

 

Ii. Java language basics

Java language, which has been born for more than 20 years, is widely used in Web sites, mobile devices, and desktop applications thanks to its cross-platform, object-oriented, and distributed computing features, he has been at the top of the TOBIE programming language rankings for many years, and has recently won the championship. The first difference between Java and Java must be clear.

2-1 basic syntax

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

2-2 important: Collection class

Collection and the implementation and integration relationships of various lists, sets, Queue, and Map.

Collections and Arrays

2-3 other Java APIs

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

Java. lang Package

Java. util package (Collection class system, rule expression, zip, and time, random number, attribute, resource, and Timer)

Java. math package

Java. NET Package

Java. text package (various formatting classes)

Java. security Package

2-4 object-oriented and interface-oriented

Three features of an object: encapsulation, inheritance, and polymorphism, advantages and disadvantages

Design Principles of classes and Classes

This keyword, final keyword, static keyword

Object Instantiation Process

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

Constructor

Internal class, abstract class, Interface

Object polymorphism (Conversion between subclass and parent class, reference of parent class carton subclass), application of abstract class and interface in Polymorphism

2-5 JVM Memory Model and garbage collection

2-6 exceptions

Throwable/Error/Exception, Checked Exception vs. Unchecked Exception, Exception capture and throw, Exception capture principle, finally use

2-7 Multithreading

Concepts of threads and processes

How to Create multithreading in a program, thread security issues, and inter-thread Communication

Thread Synchronization

Analysis of deadlock Problems

Thread Pool

2-8 IO

Java. io package, understanding the design idea of the IO System Based on the pipeline model, as well as the features and usage of common IO classes.

File and related classes, byte stream InputStream and OutputStream, bytes stream Reader and Writer, as well as corresponding buffer stream and pipeline stream, byte and character conversion stream, packaging stream, and common packaging class usage

Analysis of IO Performance

2-9XML

Familiar with the advantages and disadvantages of SAX, DOM, and JDOM, and can use one of them to complete XML parsing and content processing; Principles of these parsing Methods

2-10 some advanced features

Reflection, proxy, generic, enumeration, Java Regular Expression

2-11 Network Programming

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

2-11 JDK1.5, JDK1.6, JDK1.7, and JDK1.8 each version adds new features and upgrades compared with the previous version.

 

Iii. Database Problems

As mentioned above, the data structure is simply like an electronic archive cabinet. It is a warehouse that organizes, stores, and manages data according to a certain data structure.

3-1 Theoretical Basis

Database Design Principles and Paradigm

Transactions (ACID, working principle, isolation level of transactions, lock, propagation mechanism of transactions)

3-2 Analysis of Advantages and Disadvantages and application scenarios of various databases

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

3-2 SQL statements

Database creation, permission assignment, table creation, addition, deletion, modification, query, connection, and subquery

Trigger, stored procedure, transaction control

3-3 Optimization

Indexing principles and applicability, Big Table query optimization, multi-table join query optimization, and subquery Optimization

3-4 database sharding, table sharding, backup, and migration

Import and Export, database/table sharding, Cold Standby, Master/Slave backup, dual-machine Hot Standby, vertical scaling, and horizontal scaling

3-5 JDBC

Use of different classes such as JDBC Connection, Statement, PreparedStatement, CallableStatement, and ResultSet

Connection Pool (configuration usage and Implementation Principles)

ORM, DAO

 

Iv. JavaWeb core technologies (including some front-ends)

HTML5/Css/js NATIVE/jQuery

Ajax (cross-origin, etc)

JSP/JavaBean/Servlet/EL/JSTL/TabLib

JSF

JSON

EJB

Serialization and deserialization

Rule Engine

Search Engine

Template engine

Cache

Identity Authentication

Test

Cluster

Persistence

Static Page Generation Technology

High Performance

Security

Transaction JTA

Other things you need to know, such as JMX management, JCCA/JAAS security, JCA integration, communication JNDI/JMS/JavaMain/JAF, and SSI technology.

 

V. 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 servers: Tomcat, JBoss, Jetty, Resin, WebLogic, WebSphere, etc.

Communication: WebService (soap and restful protocols of cxf)

Cache: redis, Memcached

Workflow: Activity, JBPM

Search engine: lucene, solr encapsulated based on lucene

Template engine: Velocity, FreeMaker

Big Data: Hadoop (HDFS and MapReduce)

Build tool: Ant/Maven

 

Vi. JavaWeb system design and architecture

Java Design Mode

JAVA and UML modeling

Service-Oriented Architecture: SOA, SCA, ESB, OSGI, EAI, and microservices

Resource-Oriented Architecture: ROA/REST

Cloud-Oriented Architecture: COA, Saas, and cloud computing

Load Balancing and System Optimization for large websites

 

VII. More

Troubleshooting capability:

You can quickly locate the cause and approximate location of the problem based on the exception information.

Optimization capability

Code specifications and code management:

Has its own code standardization system, with good code readability

Wide range of knowledge:

Understand various network products and features, understand various middleware, know where the pitfalls are, understand the advantages and disadvantages of various technical solutions, understand the integration of various resources and achieve the best .... understand various technologies and application scenarios, and have enough work experience to solve various wonderful problems encountered in integration.

Technical Management/Technical Director:

Product management, project management, team building, and team Improvement

CTO:

Development Strategy

Notes for learning Java !!!

If you have any questions or want to obtain learning resources during the learning process, join the Java learning exchange group: 299541275 let's learn Java together!

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.