Ali P7-P8 Learning Roadmap - Technical Gods Road

Yesterday Ali p8 face real failure, tidy today p7-p8 learning path

First, the Basics

JVM

JVM memory structure

Heap, stack, method area, direct memory, heap and stack difference

Java Memory Model

Visibility of memory, reordering, sequential consistency, volatile, lock, final

Garbage Collection

Memory allocation strategy, the garbage collector (G1), GC algorithm, GC parameters, the object is determined to survive

JVM tuning parameters and Java object model

oop-klass, object header

HotSpot

In-time compiler, compiler optimization

Class loading mechanism

classLoader, class loading process, delegating parent (parent delegate destruction), modular (jboss modules, osgi, jigsaw)

VM performance monitoring and troubleshooting tool

jps, jstack, jmap、jstat, jconsole, jinfo, jhat, javap, btrace、TProfiler

Compile and decompile

javac 、javap 、jad 、CRF

Java Basics

Read the source code

String、Integer、Long、Enum、BigDecimal、ThreadLocal、ClassLoader & URLClassLoader、ArrayList & LinkedList、 HashMap & LinkedHashMap & TreeMap & CouncurrentHashMap、HashSet & LinkedHashSet & TreeSet

Java in a variety of variable types are familiar with the Java String, String familiar with the various functions

Principle and JDK 6 and JDK 7 difference in the substring,

replaceFirst、replaceAll、replace区别、

String overloads on the "+", and

String.valueOf and Integer.toString difference,

Immutability of strings

Automatic entry boxes

Integer cache mechanism

Familiarity with Java in a variety of keywords

transient, instanceof, volatile, synchronized, final, static, const principle and usage.

Collections

Using common collection classes

The difference between LinkedList and ArrayList and the Vector

The difference SynchronizedList and Vector

HashMap、HashTable、ConcurrentHashMap区别

Java 8 in stream-related usage

Using a set of processing tools in the apache

Realize the difference between different versions of the JDK HashMap and why

enumerate

Usage enumeration, and enumeration of a single embodiment, the Enum class

Java IO & Java NIO, and learn to use

The difference between bio, nio and aio, usage and principles of the three kinds of IO, netty

Java reflection and javassist

Reflection mode with the plant, java.lang.reflect. *

Java serialization

What is the serialization and de-serialization, serialized Why

Serialization underlying principle

Serialization of singleton

protobuf

Why serialization is not safe

annotation

Element annotation, custom annotations, the Java annotations commonly used, in conjunction with the reflective annotations

ETC.

What is the Java Message Service, JMS messaging model

JMX

java.lang.management.*、javax.management.*

Generics

Generics and inheritance

Type erasure

Generics KTVE

Meaning of the object, etc., all kinds of generic usage

unit test

junit, mock, mockito, in-memory database (h2)

Regular Expressions

java.lang.util.regex. *

Commonly used Java tool library

commons.lang,commons.*...guava-librariesnetty

What is abnormal API & SPI

Exception type correctly handle exceptions, custom exception

Processing time

Time zone, seasonal, Java API in time

Encoding

Solve the garbage problem, commonly used coding

Syntactic sugar

Java syntactic sugar in principle, syntactic sugar solution

Java Concurrency

What is the thread, the process of reading the source code differences, and learn to use

Thread、Runnable、Callable、ReentrantLock、ReentrantReadWriteLock、Atomic*、Semaphore、CountDownLatch、、ConcurrentHashMap、Executors

Thread Pool

Design their own thread pool, submit () and execute ()

Thread Safety

Deadlock, deadlock how to troubleshoot the relationship between Java thread scheduling, thread safety, and memory model

lock

CAS, optimistic and pessimistic locking lock, the lock mechanism related databases, distributed lock, tend to lock, lock lightweight, heavyweight lock, monitor, lock optimization, eliminate lock, lock coarsening, spin locks, reentrant lock, blocking locks, deadlocks

Deadlock volatile

happens-before, rearrangement and compiler directives CPU instruction weight

synchronized

How synchronized is achieved?

The relationship between synchronized and lock

Do not use synchronized how to implement a thread-safe singleton

sleep and wait wait and notify notify and notifyAll ThreadLocal deadlock write a program to write code to solve producers and consumers daemon thread

The difference between non-daemon threads and daemon threads and usage

 

Second, Advanced articles

Java underlying knowledge

Byte code, class file format CPU cache, L1, L2, L3 and false sharing tail recursion Bitwise

Plus bit operation implemented, subtract, multiply, divide, modulo

Design Patterns

Learn 23 design patterns use common design patterns

Singleton, strategy, factories, adapter, the chain of responsibility.

Implement AOP implementation IOC not synchronized and lock, to achieve thread-safe singleton pattern nio and reactor design patterns

network programming

tcp, udp, http, https and other commonly used protocols

And four closed three-way handshake, flow control and congestion control, OSI seven-layer model, tcp stick package and unpacking

http / 1.0 http / 1.1 http previous / 2 difference between Java RMI, Socket, HttpClient cookie and session

cookie is disabled, how to achieve session

Write a simple static file with the Java HTTP server

Implement client-side caching capabilities to support 304 to achieve returns can be complicated to download a file using a thread pool handle client requests using nio process client requests support simple rewrite the rules of the above functions in the realization of the need to meet the "opening and closing the principle of"

Learn nginx and apache server features and build a corresponding FTP server implementation in Java, inter-process communication protocol SMTP way what is CDN? If you implement? What is DNS? Reverse Proxy

Knowledge Framework

AOP principle Servlet thread safety issues Servlet in the filter and listener Hibernate caching mechanism Hiberate lazy load Spring Bean initialization Spring's own implementation of Spring's IOC Spring MVC Spring Boot2.0

Spring Boot starter principle of their own to achieve a starter

Spring Security

application server

JBoss tomcat jetty Weblogic

tool

git & svn maven & gradle

Third, the advanced version

new technology

Java 8

lambda expressions, Stream API,

Java 9

Jigsaw、Jshell、Reactive Streams

Java 10

Local variable type inference, G1 parallel Full GC, ThreadLocal handshake

Spring 5

Reactive programming

Spring Boot 2.0

Performance Optimization

Single cases, the use of Future mode, the thread pool, ready selection, reduce context switches, locking granularity reduction, data compression, caching results

Online Analysis

dump acquisition

Thread Dump, Memory Dump, gc situation

dump analysis

Deadlock analysis, analysis of memory leaks

Write your own variety outofmemory, stackoverflow program

HeapOutOfMemory、 Young OutOfMemory、MethodArea OutOfMemory、ConstantPool OutOfMemory、DirectMemory OutOfMemory、Stack OutOfMemory Stack OverFlow

FAQ Solutions

Memory overflow, thread deadlocks, class loading conflict

Use tools to try to solve the following problems, and write summary

When a Java program respond slowly how to find the problem,

When a Java program frequently FullGC how to solve problems,

How to view the log garbage collection,

What happens when a Java application occurs OutOfMemory this solution,

How to determine whether there is a deadlock,

How to determine whether there is a memory leak

Compiler theory of knowledge

Compilation and decompilation of Java compiler and decompiler tools lexical decompiled Java code analysis, parsing (LL algorithm, recursive descent algorithm, LR algorithm), semantic analysis, run-time environment, intermediate code, code generation, code optimization

Operating system knowledge

Linux common commands process synchronization buffer overflow segmentation and paging virtual memory and main memory

Knowledge Database

MySql execution engine MySQL implementation plan

How to view the execution plan, how to optimize SQL execution according to plan

SQL optimization Affairs

The transaction isolation level, the transaction can not be achieved lock function

Database lock

Row locks, table locks, use the database to achieve optimistic locking lock,

Standby database memory database structures binlog

h2

Nosql common database

redis、memcached

Respectively, using the database lock, NoSql achieve Distributed Lock Performance Tuning

Data Structures and Algorithms Knowledge

Simple data structure

Stacks, queues, linked lists, arrays, hash tables,

tree

Binary, trie, balanced tree, the tree ordering, B tree, B + tree, R tree, multiple trees, red-black trees

Sorting Algorithm

Various sorting algorithms and time complexity breadth-first search and depth-first full array, greedy algorithm, the KMP algorithm, hash algorithm, massive data processing

Big Data knowledge

Zookeeper

The basic concept of common usage

Solr,Lucene,ElasticSearch

Solr deployed on linux, solrcloud ,, add, delete, query index

Storm, flow calculation, understanding Spark, S4

Deployed on linux storm, do coordination with the zookeeper, run storm hello world, local and remote mode debugging storm topology.

Hadoop, off-line calculation

HDFS、MapReduce

Distributed log collection flume, kafka, logstash data mining, mahout

Knowledge of network security

What is XSS

XSS defense

What is CSRF what is injection attacks

SQL injection, XML injection, CRLF injection

What is a file upload vulnerability encryption and decryption

MD5,SHA1、DES、AES、RSA、DSA

What is DOS attacks and DDOS attacks

Why can result in memcached DDos attack, what is reflective DDoS

How SSL, TLS, HTTPS DOS attacks carried out by Hash collision with openssl to sign a certificate to deploy apache or nginx

Fourth, the architecture articles

distributed

Data consistency, service management, service degradation

Distributed Transaction

2PC, 3PC, CAP, BASE, reliable sources eventual consistency, best to inform, TCC

Dubbo

Service registration, service discovery, service governance

Distributed database

How to build a distributed database, distributed database when needed, mycat, otter, HBase

Distributed File System

mfs、fastdfs

Distributed Cache

Cache coherency, the cache hit rate, cache redundancy

Micro Services

SOA, Conway's Law

ServiceMesh Docker & Kubernets Spring Boot Spring Cloud

High concurrency

Sub-library sub-table CDN Message Queuing

ActiveMQ

monitor

What monitoring

CPU, memory, disk I / O, network I / O, etc.

Monitoring tools

Process monitoring, semantic monitoring, resource monitoring machines, data volatility

Monitoring data collection

Logs, Buried

Dapper

Load Balancing

tomcat load balancing, Nginx Load Balancing

DNS

DNS principle, DNS design

CDN

Data consistency

Fifth, expand papers

cloud computing

IaaS, SaaS, PaaS, virtualization technology, openstack, Serverlsess

search engine

Solr、Lucene、Nutch、Elasticsearch

authority management

Shiro

Block chain

Hash algorithm, Merkle tree, public key cryptography, a consensus algorithm, Raft agreement, Paxos algorithm and Raft algorithm, Byzantine problems and algorithms, message authentication codes and digital signatures

Bitcoin

Mining, consensus mechanism, lightning network, pendant, hot issues, bifurcation

Super Square Ethernet books

artificial intelligence

The foundations of mathematics, machine learning, artificial neural networks, deep learning scenarios.

Common Framework

TensorFlow、DeepLearning4J

other languages

Groovy、Python、Go、NodeJs、Swift、Rust

Sixth, we recommended books

"In-depth understanding of the Java Virtual Machine"

《Effective Java》

"In-depth analysis of Java Web Technology Insider"

"Large Web Site Technology Framework"

"Code neat way"

"Head First Design Patterns"

"Maven real"

"Principle, design and application of the block chain"

"Java Concurrency in combat."

"Bird Brother Linux private kitchens"

"From Paxos to Zookeeper"

"Architecture that is future"

Guess you like

Origin blog.csdn.net/wjandy0211/article/details/93862635