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"