JVM Aspect
JVM Memory Structure
Heap, stack, method area, direct memory, heap, and stack differences
Java memory model
Memory visibility, reordering, sequential consistency, volatile, lock, final
Garbage collection
Decision of memory allocation policy, garbage collector (G1), GC algorithm, GC parameter, object survival
JVM parameters and Tuning Java object model
Oop-klass, Object header
HotSpot
Instant compilers, compilation optimizations
Class loading mechanism
ClassLoader, class loading process, parental delegation (destruction of parental delegation), modularity (JBoss modules, OSGi, jigsaw)
Virtual machine performance monitoring and fault handling tools
JPS, Jstack, Jmap, Jstat, Jconsole, Jinfo, Jhat, JAVAP, Btrace, Tprofiler
Compiling and deserializing
Javac, JAVAP, Jad, CRF
Basic Java Knowledge
Read the source code
String, Integer, Long, Enum, BigDecimal, ThreadLocal, ClassLoader & URLClassLoader, ArrayList & LinkedList, HashMap & Linkedhashmap & TreeMap & Councurrenthashmap, HashSet & Linkedhashset & TreeSet
Various variable types in Java familiar with the use of Java string, familiar with the various functions of string
The principles and differences of substring in JDK 6 and JDK 7,
Replacefirst, ReplaceAll, replace difference,
The string is overloaded with "+",
The difference between string.valueof and integer.tostring,
Non-variability of strings
Automatic unboxing
The caching mechanism of integer
Familiarize yourself with the various keywords in Java
Transient, instanceof, volatile, synchronized, final, static, const principle and usage.
Collection Class
Use of common collection classes
The difference between ArrayList and LinkedList and vectors
The difference between synchronizedlist and vectors
HashMap, HashTable, Concurrenthashmap difference
Stream related usage in Java 8
Use of the Apache Collection processing tool class
Differences in the implementation of HASHMAP in different versions of the JDK and why
Enumeration
Enumeration usages, enumerations and Singleton, enum classes
Java Io&java NIO, and learn to use
The difference between bio, NiO and AIO, the usage and principle of three Io, Netty
Java Reflection and Javassist
Reflection and Factory mode,java.lang.reflect.*
Java serialization
What is serialization versus deserialization, why serialization
The underlying principle of serialization
Serialization vs. Singleton mode
Protobuf
Why serialization is not safe
Annotations
Meta-annotations, custom annotations, usage of common annotations in Java, annotations and reflection
Jms
What is the Java Messaging Service, the JMS messaging model
Jmx
java.lang.management.*
、javax.management.*
Generic type
Generics and inheritance
Type Erase
K-T V E in generics
Meaning of object, generic various usages
Unit Test
JUnit, Mock, Mockito, Memory Database (H2)
Regular expressions
java.lang.util.regex.*
Common Java Tools Library
commons.lang
, commons.*...
guava-libraries
netty
What is a API&SPI exception
Exception types, handling exceptions correctly, custom exceptions
Time processing
TimeZone, seasonal, Java time API
Encoding method
Solve garbled problem, common encoding method
Grammar sugar
The principle of syntactic sugar and the solution of grammatical sugars in Java
Java Concurrency programming
What is the thread, the difference with the process read the source code, and learn to use
Thread, Runnable, callable, Reentrantlock, Reentrantreadwritelock, atomic*, Semaphore, Countdownlatch, Concurrenthashmap, executors
Thread pool
Design your own thread pool, submit (), and execute ()
Thread Safety
How deadlocks, deadlock troubleshooting, Java thread scheduling, thread safety, and memory model relationships
Lock
CAS, optimistic lock and pessimistic lock, database-related lock mechanism, distributed lock, biased lock, lightweight lock, heavyweight lock, monitor, lock optimization, lock elimination, lock coarsening, spin lock, reentrant lock, blocking lock, deadlock
Deadlock volatile
Happens-before, compiler instruction reflow, and CPU instruction heavy
Synchronized
How is the synchronized implemented?
Relationship between synchronized and lock
How to implement a thread-safe single case without using synchronized
Sleep and Waitwait and notifynotify and Notifyallthreadlocal write a deadlock program to write code to solve the producer consumer Problem daemon Thread
Differences between daemon and non-daemon threads and how to use them
Second, advanced Java bottom-level knowledge
Byte code, class file format CPU cache, L1,L2,L3 and pseudo-shared tail recursive bitwise operations
Add, subtract, multiply, divide and withdraw with bit operation
Design Patterns
Learn about 23 design patterns using common design patterns
Single case, strategy, factory, adapter, responsibility chain.
Implementing an AOP implementation IOC without synchronized and lock, implementing a single-instance pattern of thread-safe NIO and reactor design patterns
Network programming
Common protocols such as TCP, UDP, HTTP, HTTPS, etc.
Three handshake and four shut down, flow control and congestion control, OSI seven layer model, TCP sticky pack and unpacking
http/1.0 http/1.1 HTTP/2 before the difference between Java Rmi,socket,httpclientcookie and session
Cookie is disabled, how to implement session
An HTTP server that writes a simple static file in Java
Implements client-side caching, supports return 304 implementation can concurrently download a file using the thread pool to process client requests using NIO processing client requests support simple rewrite rules the above functions need to meet the "open and close principle" when implemented
Understand the features of Nginx and Apache servers and build a corresponding server to implement FTP, SMTP protocol interprocess communication in Java What is a CDN? If implemented? What is DNS? Reverse Proxy
Framework Knowledge
The caching mechanism for the filter and listenerhibernate in the servlet thread-safety problem servlet hiberate lazy-loaded Spring bean Initialization Spring's AOP principle itself implements spring's iocspring Mvcspring Boot2.0
Spring Boot's starter principle, the implementation of a starter
Spring Security
Application Server
Jbosstomcatjettyweblogic
Tools
Git & Svnmaven & Gradle
Third, advanced new technology
Java 8
Lambda expression, Stream API,
Java 9
Jigsaw, Jshell, reactive Streams
Java 10
Local variable type inference, G1 parallel full GC, threadlocal handshake mechanism
Spring 5
Responsive programming
Spring Boot 2.0
Performance optimization
Use singleton, use future mode, use the thread pool, choose ready, reduce context switching, reduce lock granularity, data compression, result caching
On-Line problem analysis
Dump get
Thread dump, memory dump, GC condition
Dump analysis
Analyze deadlocks, analyze memory leaks
Write various outofmemory,stackoverflow programs yourself
Heapoutofmemory, Young OutOfMemory, Methodarea OutOfMemory, Constantpool OutOfMemory, Directmemory OutOfMemory, Stack OutOfMemory Stack OverFlow
Common Problem Solving ideas
Memory overflow, thread deadlock, class load conflict
Use the tool to try to resolve the following issues and write down the summary
How to find a problem when a Java program responds slowly
How to solve problems when a Java program frequently FULLGC
How to view garbage collection logs,
How to resolve a Java application when it occurs OutOfMemory,
How to determine if there is a deadlock,
How to tell if there is a memory leak
Compiling principle knowledge
Compile and decompile Java code compilation and decompile Java's Anti-compilation tool lexical analysis, syntax analysis (ll algorithm, recursive descent algorithm, LR algorithm), semantic analysis, runtime Environment, intermediate code, code generation, code optimization
Operating system knowledge
Linux Common command process sync buffer overflow fragment and paging virtual memory vs. memory
Database knowledge
MySQL execution engine MySQL execution plan
How to view execution plans and how to perform SQL optimizations based on an execution plan
SQL optimization Transaction
The isolation level of the transaction, whether the transaction can implement the lock function
Database lock
Row locks, table locks, using database locks for optimistic locking,
Database host Binlog Memory database
H2
Popular NoSQL databases
Redis, memcached
Implement distributed lock performance tuning using Database lock and NoSQL respectively
Data structure and algorithmic knowledge
A simple data structure
Stacks, queues, linked lists, arrays, hash tables,
Tree
Binary tree, dictionary tree, balance tree, sorting tree, B-tree, + + tree, R-Tree, multi-tree, red-black tree
Sorting algorithms
Various sorting algorithms and time-complexity depth-first and breadth-first search permutation, greedy algorithm, KMP algorithm, hash algorithm, mass data processing
Big Data knowledge
Zookeeper
Basic concepts, Common uses
Solr,lucene,elasticsearch
Deploy Solr,solrcloud on Linux, add, delete, query index
Storm, flow calculation, understanding SPARK,S4
Deploy storm on linux, coordinate with zookeeper, run storm Hello world,local and run debug storm topology in remote mode.
Hadoop, Offline computing
HDFS, MapReduce
Distributed log collection Flume,kafka,logstash data mining, Mahout
Cyber security knowledge
What is XSS
The defense of XSS
What is CSRF what is an injection attack
SQL injection, XML injection, CRLF injection
What is file upload vulnerability encryption and decryption
MD5,SHA1, DES, AES, RSA, DSA
What are Dos attacks and DDoS attacks
Why memcached can lead to DDoS attacks, what is reflective DDoS
SSL, Tls,https How to make a Dos attack by hash collision deploy to Apache or Nginx with OpenSSL signing a certificate
IV. structure of the distributed
Data consistency, service governance, service degradation
Distributed transactions
2PC, 3PC, CAP, BASE, reliable message final consistency, maximum effort notification, TCC
Dubbo
Service registration, service discovery, service governance
Distributed database
How to build a distributed database, when you need a distributed database, Mycat, otter, HBase
Distributed File System
MFS, Fastdfs
Distributed cache
Cache consistency, cache hit rate, cache redundancy
Micro-Service
SOA, Conway's Law
Servicemeshdocker & kubernetsspring bootspring Cloud
High concurrency
Library Sub-table CDN Technology Message Queuing
ActiveMQ
Monitoring
Monitor what?
CPU, memory, disk I/O, network I/O, etc.
Monitoring means
Process monitoring, semantic monitoring, machine resource monitoring, data fluctuations
Monitoring data acquisition
logs, buried points
Dapper
Load Balancing
Tomcat load balancing, Nginx load Balancing
Dns
DNS principle and design of DNS
Cdn
Data consistency
V. Expansion of cloud Computing
IaaS, SaaS, PaaS, virtualization technology, OpenStack, serverlsess
Search engine
SOLR, Lucene, Nutch, Elasticsearch
Rights Management
Shiro
Block chain
hashing algorithm, Merkle tree, public key cipher algorithm, consensus algorithm, Raft protocol, Paxos algorithm and Raft algorithm, Byzantine problem and algorithm, message authentication code and digital signature
Bitcoin
Mining, consensus mechanism, lightning network, side chain, hot issues, bifurcation
Ethereum Super Ledger
Artificial intelligence
Math Basics, machine learning, artificial neural networks, deep learning, and application scenarios.
Common Frames
TensorFlow, deeplearning4j
Other languages
Groovy, Python, Go, NodeJs, Swift, Rust
Vi. Recommended Books
"In-depth understanding of Java virtual machines"
"Effective Java"
In-depth analysis of Java Web Technology Insider
"Large Web site technology architecture"
The way of code cleanliness
"Head First design mode"
"Maven Combat"
"Blockchain principle, design and application"
"Java Concurrency Programming"
"Brother Bird's Linux private dish"
"From Paxos to Zookeeper"
"Architecture is the Future"
The path of Java engineer Master