First, the foundation

JVM

JVM memory structure

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

Java memory model

Memory visibility, reordering, order consistency, volatile, locking, and final

The garbage collection

Memory allocation strategy, garbage collector (G1), GC algorithm, GC parameters, object inventory determination

JVM parameters and tuning

Java Object Model

Oop -klass, object header

HotSpot

Just-in-time compiler, compiler optimization

Class loading mechanism

Classloaders, classloading procedures, parental delegation (breaking parental delegation), modularity (Jboss Modules, OSGi, Jigsaw)

Vm performance monitoring and troubleshooting tool

JPS, jStack, jmap, jstat, jConsole, jinfo, jhat, Javap, bTrace, TProfiler

Compilation and decompilation

Javac, JAVAP, JAD, CRF

Java Basics(Key words)

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 String functions

JDK 6 and JDK 7 substring principles and differences

ReplaceFirst, replaceAll, replace

String overloading “+”,

ValueOf and Integer.toString.

Immutability of strings

Automatic unpacking

Integer cache mechanism

Familiar with Java keywords

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

Collection classes

Common collection classes, ArrayList vs. LinkedList vs. Vector, SynchronizedList vs. Vector, HashMap, HashTable, ConcurrentHashMap, Java The difference between the implementation of HashMap in different JDK versions and why

The enumeration

Usage of enumerations, enumerations and singletons, Enum classes

Java IO&Java NIO, and learn to use

Bio, NIO and AIO, three IO usage and principles, NetTY

Java reflection versus JavAssist

Reflection and Factory mode, java.lang.reflect.*

Java serialization

What is serialization and deserialization, why serialization, serialization and singleton pattern, protobuf, why serialization is not safe

annotations

Meta annotations, custom annotations, common usage of annotations in Java, the combination of annotations and reflection

JMS

What is the Java messaging Service, JMS messaging model

JMX

Java. Lang. Management., javax.mail. Management.

The generic

Generics and inheritance, type erasure, K T V E in generics? The meaning of object, and various uses of generics

Unit testing

Junit, Mock, Mockito, In-memory Database (H2)

Regular expression

java.lang.util.regex.*

Common Java tool libraries

commons.lang, commons.*… guava-libraries netty

What is a API&SPI

abnormal

Exception types, correct handling of exceptions, custom exceptions

Time to deal with

Time zone, time, time API in Java

encoding

Solve the problem of garbled code, common coding

Syntactic sugar

Java syntax sugar principle, solution sugar

Java concurrent programming

What is a thread and what is a process

Read the source code and learn to use it

Thread, Runnable, Callable, ReentrantLock, ReentrantReadWriteLock, Atomic*, Semaphore, CountDownLatch, ConcurrentHashMap, Execut ors

The thread pool

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

Thread safety

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

The lock

CAS, Optimistic and pessimistic locking, database related locking mechanism, Distributed locking, biased locking, Lightweight locking, heavyweight locking, Monitor, lock optimization, lock elimination, lock coarsing, spin locking, reentrant lock, blocking lock, deadlock

A deadlock

volatile

Happens-before, compiler instruction reordering, and CPU instruction reordering

synchronized

How is synchronized implemented? The relationship between synchronized and Lock, and how to implement a thread-safe singleton without synchronized

Sleep and wait

Wait and notify

Notify and notifyAll

ThreadLocal

Write a program that deadlocks

Write code to solve producer-consumer problems

Daemon thread

The difference between daemons and non-daemons and their usage

Two, advanced

Java Basics

Bytecode, class file format

CPU caches, L1, L2, L3 and pseudo-sharing

Tail recursion

An operation

Add, subtract, multiply, divide and mod with bit operation

Design patterns

Understand 23 design patterns

Use common design patterns

Singleton, policy, factory, adapter, chain of responsibility.

Implement AOP

To realize the IOC

Use synchronized and lock to achieve thread-safe singleton mode

Nio and REACTOR design patterns

Network programming knowledge

Common protocols include TCP, UDP, HTTP, and HTTPS

Three-way handshake and four-way shutdown, flow control and congestion control, OSI seven-layer model, TCP sticky packet and unpack

HTTP /1.0 HTTP /1.1 The differences before HTTP /2

Java RMI, Socket, HttpClient

The cookie and session

Cookie is disabled. How to implement session

Write a simple static file HTTP server in Java

Using thread pools to handle client requests. Using NIO to handle client requests. Using simple rewrite rules.Copy the code

Understand nginx and Apache server features and build a corresponding server

FTP, SMTP protocol with Java

Means of communication between processes

What is a CDN? If implemented?

What is DNS?

The reverse proxy

Framework of knowledge

Servlet thread safety issues

Filters and listeners in servlets

Hibernate’s caching mechanism

Lazy loading for Hiberate

Initialization of the Spring Bean

The AOP principles of Spring

Implement Spring’s IOC yourself

Spring MVC

Spring Boot2.0

Spring Boot starter principle, to implement a starter

Spring Security

Application Server knowledge

JBoss

tomcat

jetty

Weblogic

tool

git & svn

maven & gradle

Three, advanced chapter

The new technology

Java 8

Lambda expressions, Stream APIS,

Java 9

Jigsaw, Jshell, Reactive Streams

Java 10

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

Spring 5

Responsive programming

Spring Boot 2.0

Performance optimization

Use singletons, use Future patterns, use thread pools, select-ready, reduce context switching, reduce lock granularity, data compression, result caching

Online problem analysis

The dump to get

Thread Dump, memory Dump, GC situation

Dump analysis

Analyze deadlocks, analyze memory leaks

Write a variety of outofMemory, StackOverflow procedures

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

Common problem solving ideas

Memory overflow, thread deadlocks, class loading conflicts

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

How to find problems when a Java program is slow to respond, how to resolve problems when a Java program FullGC frequently, how to view garbage collection logs, how to resolve problems when a Java application has OutOfMemory, how to determine whether there is a deadlock, how to determine whether there is a memory leak

Compilation principle knowledge

Compilation and decompilation

Java code compilation and decompilation

Java decompiler 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

Common Linux commands

Process synchronization

Buffer overflow

Segmentation and paging

Virtual memory and main memory

Database knowledge

MySql Execution Engine

MySQL Execution Plan

How do I view the execution plan and optimize SQL based on the execution plan

SQL optimization

The transaction

The isolation level of the transaction and whether the transaction can be locked

The database lock

Row locks, table locks, optimistic locks using database locks,

The database is set up in active/standby mode

binlog

In-memory database

h2

Common NOSQL databases

Redis, memcached

Use database lock, NoSql respectively to achieve distributed lock

Performance tuning

Knowledge of data structures and algorithms

Simple data structures

Stack, queue, linked list, array, hash table,

The tree

Binary tree, dictionary tree, balanced tree, sorting tree, B tree, B+ tree, R tree, multipath tree, red black tree

Sorting algorithm

Various sorting algorithms and time complexity depth first and breadth first search full permutation, greedy algorithm, KMP algorithm, hash algorithm, mass data processing

Big data knowledge

Zookeeper

Basic concepts and common usage

Solr, Lucene, ElasticSearch

Deploy Solr, SolrCloud on Linux, add, delete, query index

Storm, streaming, know Spark, S4

Deploy Storm on Linux, coordinate with ZooKeeper, run Storm Hello World, Local and remote to debug storm Topology.

Hadoop, offline computing

HDFS, graphs,

Distributed log collection flume, Kafka, and Logstash

Data mining, Mahout

Network Security Knowledge

What is a XSS

XSS defenses

What is a CSRF

What is an injection attack

SQL injection, XML injection, CRLF injection

What is a file upload vulnerability

Encryption and decryption

MD5, SHA1, DES, AES, RSA, DSA

What are DOS and DDOS attacks

Why memcached can lead to DDos attacks and what is reflective DDos

SSL, TLS, HTTPS

How do I use Hash collisions for DOS attacks

Sign a certificate to deploy to Apache or Nginx with OpenSSL

4. Structure

distributed

Data consistency, service governance, and service degradation

Distributed transaction

2PC, 3PC, CAP, BASE, Reliable message final consistency, best effort notification, TCC

Dubbo

Service registration, service discovery, service governance

Distributed database

How to build a distributed database, when do you need a distributed database, MyCAT, Otter, HBase

Distributed file system

The MFS, fastdfs

Distributed cache

Cache consistency, cache hit ratio, cache redundancy

Micro service

SOA, Conway’s Law

ServiceMesh

Docker & Kubernets

Spring Boot

Spring Cloud

High concurrency

Depots table

CDN technology

The message queue

ActiveMQ

monitoring

What to monitor

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

Monitoring means

Process monitoring, semantic monitoring, machine resource monitoring, data fluctuation

Monitoring data collection

Log, buried point

Dapper

Load balancing

Tomcat load balancing, Nginx load balancing

DNS

DNS principle and DNS design

CDN

Data consistency

Five, the extension

Cloud computing

IaaS, SaaS, PaaS, Virtualization Technology, openstack, Serverlsess

Search engine

Solr, Lucene, Nutch, Elasticsearch

Rights management

Shiro

Block chain

Hash algorithm, Merkle tree, Public key cryptography algorithm, Consensus algorithm, Raft protocol, Paxos algorithm and Raft Algorithm, Byzantine problem and algorithm, Message authentication code and digital signature

The currency

Mining, consensus mechanisms, lightning networks, side chains, hot issues, forks

The etheric fang

Super books

Artificial intelligence (ai)

Fundamentals of Mathematics, Machine learning, Artificial neural network, Deep learning, application scenarios.

Common framework

TensorFlow, DeepLearning4J

Other languages

Groovy, Python, Go, NodeJs, Swift, Rust

6. Recommended books

In-depth Understanding of Java Virtual Machine, Effective Java, In-depth Analysis of Java Web Technology Insider, Technical Architecture of Large Websites, Code Clean Way, Head First Design Pattern, Maven In Action, Blockchain Principle, Design and Application Java Concurrent Programming Combat, Birdbrother’s Linux Private Dishes, From Paxos to Zookeeper, Architecture is the Future