The path of Java growth

Source: Internet
Author: User
Tags connection pooling wrapper

How to learn to grow from a Java Junior programmer to a qualified architect, or what kind of technical knowledge a qualified architect should have, is not only a novice programmer who has just entered the workplace, but also a problem often asked by old programmers who have been confused after 35 years of work. I hope this article will be the most comprehensive and authoritative answer you have ever seen.


One: Programming Basics


Whether it's C or C + +, whether Java or PHP, want to be a qualified programmer, basic data structure and algorithm Foundation is still to have. The following articles from ideas to implementation, for you to comb out the commonly used data structures and classical algorithms.


1-1 Common data structures


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


1-2 Algorithmic Thinking


Analysis and calculation of algorithm time complexity and space complexity


Algorithmic thinking: Recursive, recursive, exhaustive, greedy, divided, dynamic programming, iterative, branching boundaries


1-3 Classical Algorithms


Classic sort: Insert sort, bubble sort, quick row (split swap sort), direct select sort, heap sort, merge sort


Classic Find: Order lookup, binary lookup, binary sort tree Lookup


1-4 Advanced Data Structures


b+/b-number, red-black tree, figure, etc.


1-5 Advanced Algorithms


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

Second: the Java Language Foundation


The more than 20-year-old Java language, with its cross-platform, object-oriented, distributed computing features, is widely used in Web sites, mobile devices, desktop applications, and has been in the forefront of Tobie programming languages for many years, and has recently topped the throne. It's important to know what's good and what's different in Java first.


2-1 Basic Syntax


Java syntax formats, constants and variables, scope of variables, overloads of methods and methods, operators, program flow control, various basic data types and wrapper classes


2-2 Important: Collection classes


Collection and the implementation of various list, Set, Queue, map, and integration relationships, the principle of implementation


Collections and Arrays


2-3 other Javaapi


String and Stringbuffer,system and runtime classes, date and Datefomat classes


Java.lang Bag


Java.util Package (Collection class system, regular expressions, zip, and time, random number, attributes, resources, timer, etc.)


Java.math Bag


Java. NET Package


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


Java.security Bag


2-4 object-oriented, interface-oriented


Three main features of an object: encapsulation, inheritance, and polymorphism, pros and cons


How to design the class, the design principle of the class


This keyword, final keyword, static keyword


Instantiation process of an object


Method overrides and overloads; method and method parameter passing procedure


constructor function


Inner class, abstract class, interface


Object polymorphism (conversions between subclasses and parent classes, references to parent paper box classes), abstract classes and interfaces in polymorphic applications


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, finally using


2-7 Multi-Threading


Concepts of threads and processes


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


Synchronization of Threads


Analysis of the deadlock problem


Thread pool


2-8 IO


java.io package, understanding the IO system based on the pipeline model design ideas and commonly used IO class characteristics and applications.


File and related classes, byte stream InputStream and OutputStream, character stream reader and writer, and corresponding buffer stream and pipeline flow, bytes and characters of the conversion stream, wrapper flow, and common wrapper class use


Analyzing IO Performance


2-9xml


Familiarity with the advantages and disadvantages of sax, Dom, and Jdom, and the ability to use one of the parsing and content processing of XML, the principles of these analytic methods


2-10 some advanced features


Reflection, Proxy, generics, enumeration, Java regular expressions


2-11 Network Programming


Principles and application Scenarios of network communication protocols, socket programming, how Web servers work


2-11 JDK1.5, JDK1.6, JDK1.7, JDK1.8 What are the new features that each version adds to the previous version, and what improvements are made

Three: Database-related


In front of the data structure, the database is simply like an electronic filing cabinet, is to organize, store and manage data warehouse according to a certain data structure.


3-1 Theoretical basis


Database design principles and paradigms


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


3-2 various database advantages and disadvantages, usage scenario analysis


Mysql/sqlserver/oracle and various NoSQL (Redis, MongoDB, Memcached, Hbase, COUCHDB, etc.)


3-2 SQL statements


Database creation, permission assignment, creation of tables, additions and deletions, connection, sub-query


Triggers, stored procedures, transaction control


3-3 optimization


Index principle and application, large table query optimization, multi-table Connection query optimization, sub-query optimization, etc.


3-4 Library, sub-table, Backup, migration


Import, export, sub-Library, table, cold standby hot standby, master-slave backup, dual standby, vertical expansion, scale-out


3-5 JDBC


Use of different classes such as JDBC Connection, Statement, PreparedStatement, callablestatement, resultset, etc.


Connection pooling (configuration usage, implementation principle)


Orm,dao

IV: Javaweb core technology (including partial front end)


Html5/css/js native/jquery


Ajax (cross-domain, etc.)


Jsp/javabean/servlet/el/jstl/tablib


Jsf


Json


Ejb


Serialization and deserialization


Rule Engine


Search engine


Template engine


Cache


Identity verification


Test


Cluster


Persistence of


Generate static page technology


Performance


Safety


Transaction JTA


Other needs to know, such as: Managing JMX, Security Jcca/jaas, integrated JCA, Communications JNDI/JMS/JAVAMAIN/JAF, SSI technology


V. Mainstream framework and tools


Struts1/struts2


Spring (IoC, AOP, etc.), SPRINGMVC


Persistence: Hibernate/mybatis


LOG: log4j


Unit Test: JUnit


Message Queuing: ActiveMQ, RABBITMQ, etc.


Load balancing: Nginx/haproxy


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


Communication: WebService (SOAP, restful protocol for CXF)


Cache: Redis, Memcached


Workflow: Activity, JBPM


Search engine: Lucene, SOLR based in Lucene package


Template engine: Velocity, Freemaker


Big Data: Hadoop (HDFs and MapReduce)


Build Tool: Ant/maven


Vi. 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 Web site load balancing, system tuning Excellence

Seven, more


Troubleshooting Capacity:


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


Optimization capabilities


Code specification, code management:


Have their own code specification system, code readability good


Broad knowledge Surface:


Understand a variety of network products and features, understand a variety of middleware, can know where the pit, deep understanding of the advantages and disadvantages of various technical solutions, understand the integration of various resources and achieve the best .... Understand all kinds of technology and application scenarios, have enough work experience to solve all kinds of wonderful problems in integration


Technical Management/Technical Director:


Product management, project management, team building, team promotion


Cto:


Development strategy

The path of Java growth

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.