Click the topHollis“Pay attention to me, wonderful content first time present.

Word count: 5000

Reading time: 10 minutes

Major version Update time note
v1.0 2015-08-01 First release
v1.1 2018-03-18 Increase new technical knowledge and perfect knowledge system

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 survival 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

Javac, JAVAP, JAD, CRF

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

The use of common collection classes

ArrayList vs. LinkedList vs. Vector

Difference between SynchronizedList and Vector

HashMap, HashTable, and ConcurrentHashMap

Stream usage in Java 8

Apache collections handle the use of utility classes

Different implementations 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, and why

Serialization underlying principles

Serialization and singleton patterns

protobuf

Why is serialization 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 versus inheritance

Type erasure

K, T, V, E

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

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?

Relationship between synchronized and lock

How do you implement a thread-safe singleton without using 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

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

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

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.

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

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

JBoss

tomcat

jetty

Weblogic

git & svn

maven & gradle

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

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

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 the problem when a Java program FullGC frequently,

How to view garbage collection logs,

How to resolve OutOfMemory in a Java application

How to tell if there is a deadlock,

How do I know if there is a memory leak

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

Common Linux commands

Process synchronization

Buffer overflow

Segmentation and paging

Virtual memory and main memory

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

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

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

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

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

SOA, Conway’s Law

ServiceMesh

Docker & Kubernets

Spring Boot

Spring Cloud

Depots table

CDN technology

The message queue

ActiveMQ

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

Tomcat load balancing, Nginx load balancing

DNS principle and DNS design

Data consistency

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

Solr, Lucene, Nutch, Elasticsearch

Shiro

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

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

Common framework

TensorFlow, DeepLearning4J

Groovy, Python, Go, NodeJs, Swift, Rust

In-depth Understanding of the Java Virtual Machine

“Effective Java”

An Inside Look at Java Web Technology

Technical Architecture for Large Web Sites

The Code Clean Way

Head First Design Patterns

Maven in Action

Blockchain Principle, Design and Application

Java Concurrent Programming

Birdman’s Linux Home Dish

From Paxos to Zookeeper

Architecture is the Future

PS: for a long time, I also in advanced according to the Java programmer guide to enrich their own knowledge system, in the process of learning to learn the contents of the summary to my blog (http://www.hollischuang.com) and public (Hollis). Welcome to study together.

In addition, welcome to join my knowledge planet, some content will be first or exclusive on knowledge Planet. I’ll be talking to you on the planet.

The planet of knowledge Hollis and his friendsSmall program

– MORE | – MORE excellent articles

  • The evolution of the architecture of Internet companies

  • The whole web Map hash method analysis of the most thorough article

  • Overview of large site architecture technology

  • Java development must master the online troubleshooting command

If you saw this, you enjoyed this article.

So please long press the QR code to follow Hollis

Forwarding moments is the biggest support for me.