How advanced JAVA Architect, Java Advanced road - junior programmer to architect, from small work to the experts

How to learn from a junior Java programmer grow into a qualified architect or a qualified architect should have a kind of technical knowledge, which is just entering the workplace is not only a junior programmers also work in three five years after the start of the confused old programmers often asked questions. Hopefully this article will be you have seen the most comprehensive and authoritative answer.

A: Programming Fundamentals

Either the C or C ++, Java or whether it is PHP, wanted to be a qualified programmer, basic data structures and algorithms still have the basis. The following articles from idea to realization, as you tease out common data structures and algorithms classic. 

Common data structure 1-1

Array, linked list, heap, stack, queue, Hash tables, binary trees, etc.

1-2 ALGORITHM

Analysis of the computational complexity of the algorithm time complexity and space

Algorithm thinking: recursion, recursive, exhaustive, greedy, divide and conquer, dynamic programming, iteration, branching boundaries

1-3 classical algorithm

Classic Sort: insertion sort, bubble sort, quick drain (partition exchange sort), direct selection sort, heap sort, merge sort

Classic look: sequential search, binary search, binary sort tree to find

1-4 advanced data structures

B + / B- number, red-black trees, like FIG.

1-5 advanced algorithms

FIG depth-first search and breadth first search graph, topological sorting, the Dijkstra algorithm (single-source shortest path), Huffman coding, Euclidean algorithm, minimum spanning tree, etc.

 

Two: Java language foundation

Born more than twenty years of Java language, with its cross-platform, object-oriented, distributed computing suited to the characteristics of widely used Web sites, mobile devices, desktop applications, and has been for many years the forefront of top TOBIE list of programming languages more recently triumphed. What Java outstanding and distinctive place first of all must be clear.

2-1 basic grammar

Overload Java syntax, constants and variables, variable scope, and a method of the operator, the program flow control, all the basic data types and packaging

2-2 Important: collections

Collection and a variety of List, Set, Queue, Map implementation and integration relations and realize the principles

Collections和Arrays 

2-3 Other JavaAPI

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

java.lang package

java.util package (collections system, regular expressions, zip, and time, random numbers, attributes, resources and the like Timer)

java.math package

java.net package

java.text package (various formatting, etc.)

java.security package

2-4 object-oriented interface for

Three characteristics of the object: encapsulation, inheritance and polymorphism, advantages and disadvantages

Design principles of how to design classes, class

this keyword, final keyword, static keyword

Examples of process objects

The method of rewriting and overloading; parameter transfer process and a method

Constructor

Inner class, an abstract class, an interface

Polymorphism object (conversion between sub-classes and superclasses, reference carton parent subclass), application of abstract classes and interfaces in the polymorphic

2-5 JVM memory model, garbage collection

About 2-6 abnormalities

Throwable / Error / Exception, Checked Exception vs. Unchecked Exception, unusual catch and throw, catch an exception principle, finally use

2-7 Multithreading

The concept of threads and processes

How to create multiple threads in the program, thread-safety issues, communication between threads

Thread synchronization

Analysis of deadlock

Thread Pool

2-8 IO

java.io package, understanding IO system based on the characteristics and design ideas tube model and the common usage scenarios IO classes.

File and related classes, and the OutputStream InputStream byte stream, a character stream Reader and Writer, and the conversion of the corresponding flow and the buffer flow pipe flows, and a character byte, packet stream, and the common use of packaging

IO performance analysis

2-9XML

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

2-10 advanced features

Reflection, agents, generics, enumerations, Java regular expressions

2-11 Network Programming

The principle of network communication protocols and principles applicable scenario, Socket Programming, WEB server

2-11 JDK1.5, JDK1.6, JDK1.7, JDK1.8 each version than the earlier version which adds new features, which were lifting

 

Three: database-related

Speaking in front of the data structures, database simple terms is like an electronic filing cabinet, according to certain data structure to organize, store and manage data warehouses.

3-1 rationale

Database design principles and paradigms

Transaction (ACID, working principle, transaction isolation level, locks, transaction propagation mechanism)

3-2 advantages and disadvantages of various databases, using the scene analysis

MySQL / SQLServer / Oracle and a variety of NoSQL (Redis, MongoDB, Memcached, HBase, CouchDB, etc.)

3-2 SQL statements

Database creation, distribution rights, to create a table, CRUD, connections, sub-query

Triggers, stored procedures, transaction controls

3-3 Optimization

Index principle and application, large table query optimization, multi-table join query optimization, query optimization son

3-4 points library sub-table, backup, migration

Import, export, sub-libraries, sub-table, cold standby hot backup, the backup master, hot standby, the longitudinal extension, lateral extension

3-5 JDBC

Using different types of JDBC Connection, Statement, PreparedStatement, CallableStatement, ResultSet etc.

Connection Pool (configured to use, implement the principle)

ORM, DAO

 

Four: JavaWeb core technologies (including a front end portion)

Html5 / Css / JS primeval / jQuery

Ajax (cross-domain, etc.)

JSP/JavaBean/Servlet/EL/JSTL/TabLib

JSF

JSON

EJB

Serialization and de-serialization

Rules Engine

search engine

Template engine

Cache

Authentication

test

Clusters

Endurance of

Static page generation technology

high performance

Safety

JTA transaction

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

 

Fifth, the mainstream framework and tools

Struts1/Struts2

Spring(IoC、AOP等),SpringMVC

Persistence: Hibernate / MyBatis

Log: Log4j

Unit testing: JUnit

Message queue: ActiveMQ, RabbitMQ etc.

Load Balancing: Nginx / HaProxy

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

Communication: WebService (cxf of soap, restful protocol)

Cache: Redis, Memcached

Workflow: Activity, JBPM

Search engines: lucene, based package lucene solr 

Template engine: Velocity, FreeMaker

Big Data: Hadoop (HDFS and MapReduce)

Build tools: Ant / Maven

 

Six, JavaWeb system design and architecture

Java design patterns

JAVA and UML Modeling

Service-Oriented Architecture: SOA / SCA / ESB / OSGI / EAI, micro-services

Resource-Oriented Architecture: ROA / REST

COA / Saas / Cloud: Cloud Oriented Architecture

Large sites load balancing, system calls Excellence

 

Seven, More

Troubleshooting capabilities:

According to information should be the cause of abnormal positioning of the relatively rapid and approximate location

Optimization capabilities

Code specification, code management:

It has its own code norms, good code readability

versatile:

Understand a variety of network products and features, to understand a variety of middleware, to know where the pit, well versed in the advantages and disadvantages of various technical solutions, understand and integrate various resources to achieve optimal .... understand various technologies and application scenarios , there is enough work experience to solve all kinds of wonderful integration problems encountered

Technology Management / Technical Director:

Product management, project management, team building, team upgrade

Guess you like

Origin www.cnblogs.com/java8899/p/11622770.html