Regarding programmers, in addition to doing projects to improve their own skills, there is also a way to improve their professional skills: more! Look! book!
- The editor compiled a core knowledge of the Java Advanced Architect’s Road, which is also a knowledge point that the interviewer must ask during the interview. The chapter also includes a lot of knowledge points, including basic knowledge, Java collections, JVM, and more. Thread concurrency, spring principle, microservices, Netty and RPC, diary, design pattern, database, distributed cache, data structure, etc.
Due to the fact that there are too many details, only some chapters of knowledge points have been edited. Under the rough introduction, each chapter has more detailed content! The following is the chapter list. Due to the length of the headline, the detailed explanation on the catalog cannot be listed one by one. At the end of the article, there is a detailed explanation of all the following chapters.
JAVA basics
- JAVA abnormal classification and treatment
- Anomaly classification
- Exception handling
- The difference between Throw and throws
- JAVA reflection
- Dynamic language
- The concept of reflection mechanism (all the attributes and methods of the class are known in the running state)
- Java reflection API
- Steps to use reflection (obtain Class object, call object method)
- 3 ways to get the Class object
- Two ways to create objects
- JAVA annotation
- JAVA inner class
- JAVA generic
- JAVA serialization (creating reusable Java objects)
- JAVA copy
JAVA collection
- Interface inheritance and implementation
- List
- ArrayList (array)
- Vector (array implementation, thread synchronization)
- LinkList (linked list)
- Set
- HashSet(Hash表)
- TreeSet (binary tree)
- LinkHashSet(HashSet+LinkedHashMap)
- Map
- HashMap (array + linked list + red-black tree)
- JAVA7 implementation
- JAVA8 implementation
- ConcurrentHashMap
- Segment
- Thread safety (Segment inherits ReentrantLock to lock)
- Parallelism (default 16)
- HashTable (thread safety)
- TreeMap (sortable)
- LinkHashMap (record insertion order)
JAVA multithreaded concurrency
- JAVA Concurrent Knowledge Base
- JAVA thread implementation / creation method
- 4 types of thread pools
- Thread life cycle (state)
- 4 ways to terminate threads
- The difference between sleep and wait
- The difference between start and run
- JAVA background thread
- JAVA lock
- Basic thread method
- Thread context switch
- Synchronization and deadlock
- Principle of Thread Pool
- JAVA blocking queue principle
- Usage of CyclicBarrier, CountDownLatch, Semaphore
- The role of volatile keyword (variable visibility, prohibit reordering)
- How to share data between two threads
- ThreadLocal role (thread local storage)
- The difference between synchronized and ReentrantLock
- ConcurrentHashMap
- Thread scheduling used in Java
- Process scheduling algorithm
- What is CAS (compare and exchange-optimistic locking mechanism-lock spin)
- What is AQS (Abstract Queue Synchronizer)
JVM
- Thread
- JVM memory area
- JVM runtime memory
- Garbage collection and algorithms
- Four reference types in JAVA
- GC generational collection algorithm VS partition collection algorithm
- GC garbage collector
- JAVA IO / NIO
- JVM class loading mechanism
Spring principle
- Spring features
- Lightweight
- Inversion of Control
- Face-to-face
- container
- Frame collection
- Spring core components
- Spring common modules
- Spring main package
- Spring common annotations
- Spring IOC principle
- Spring APO principle
- Spring MVC principle
- Spring Boot principle
- JPA principle
- Mybatis cache
- Tomcat architecture
Microservice
- Service registration discovery
- Client Registration (zookeeper)
- Third party registration (independent service Registrar)
- Client discovery
- Server discovery
- Consul
- Eureka
- SmartStack
- Etcd
- API gateway
- Request forwarding
- Response merge
- Protocol conversion
- Data conversion
- safety certificate
- Configuration Center
- zookeeper configuration center
- Configuration center data classification
- Event scheduling (kafka)
- Service tracking (starter-sleuth)
- Service Fuse (Hystrix)
- Hystrix circuit breaker mechanism
- API management
Netty 与RPC
- Netty principle
- Netty high performance
- Multiplexed communication
- Asynchronous communication NIO
- Zero copy (DIRECT BUFFERS uses off-heap direct memory)
- Memory pool (a buffer reuse mechanism based on the memory pool)
- Efficient Reactor threading model
- Lock-free design, thread binding
- High-performance serialization framework
- Netty RPC implementation
- Key technology
- Core process
- Message codec
- Communication process
- RMI implementation
- Implementation steps
- Protoclol Buffer
- Thrift
Distributed cache
- Cache avalanche
- Cache penetration
- Cache warm-up
- Cache update
- Cache degradation
The internet
- 7-layer network architecture
- TCP/IP principle
- Network Access Layer
- Internet Layer
- Transport layer (Tramsport Layer-TCP/UDP)
- Application Layer
- TCP three-way handshake/four waved hands
- HTTP principle
- Transmission process
- HTTP status
- HTTPS
- CDN principle
- Distribution service system
- Load balancing system
- Management system
Log
- Slf4j
- Log4j
- LogBack
- Logback advantages
- ELK
Zookeeper
- Zookeeper concept
- Zookeeper role
- Leader
- Follower
- Observer
- ZAB agreement
- Transaction number Zxid (transaction request counter + epoch)
- epoch
- The Zab protocol has two modes-recovery mode (primary selection) and broadcast mode (synchronization)
- ZAB agreement 4 stages
- Leader election (election stage-elect a quasi-Leader)
- JAVA implementation of ZAB protocol (FLE-discovery phase and synchronization are merged into Recovery Phase (recovery phase))
- Voting mechanism
- Working principle of Zookeeper (atomic broadcast)
- Znode has four types of directory nodes
Kafka
- Kafka concept
- Kafka data storage design
- Data file of partition (offset, MessageSize, data)
- Data file segmentation (sequential read and write, segment command, binary search)
- Data file index (segment index, sparse storage)
- Producer design
- Load balancing (partitions will be evenly distributed to different brokers)
- Batch send
- Compression (GZIP or Snappy)
- Consumer design
- Consumer Group
RabbitMQ
- RabbitMQ concept
- RabbitMQ architecture
- Exchange type
Hbase
- Hbase concept
- Columnar storage
- Hbase core concept
- Hbase core architecture
- Hbase write logic
- HBase vs Cassandra
- MongoDB
- MongoDB concept
- MongoDB features
Cassandra
- Cassandra concept
- Data model
- Cassandra consistent hash and virtual node
- Gossip protocol
- Data replication
- Data write request and coordinator
- Data read request and background repair
- Data storage (CommitLog, MemTable, SSTable)
- Secondary index (Generate RowKey for the value summary to be indexed)
- Data read and write
Design Patterns
- Design Principles
- Factory method pattern
- Abstract factory pattern
- Singleton mode
- Builder mode
- Prototype mode
- Adapter mode
- Decorator mode
- Agency model
- Appearance mode
- Bridge mode
- Combination mode
- Flyweight model
- Strategy mode
- Template method pattern
- Observer mode
- Iterative subpattern
- Chain of Responsibility Model
- Command mode
- Memo mode
Load balancing
- Layer 4 load balancing vs. Layer 7 load balancing
- Load balancing algorithm/strategy
- LVS
- Keepalive
- Nginx reverse proxy load balancing
- HAProxy
database
- Storage engine
- index
- Three paradigms of database
- Database is transaction
- Stored procedures (set of SQL statements for specific functions)
- Trigger (a program that can be executed automatically)
- Database concurrency strategy
- Database lock
- Distributed lock based on Redis
- Classification table
- Two-phase commit agreement
- Three-phase commit agreement
- Flexible transaction
- CAP
Consensus algorithm
- Paxos
- Oats
- Raft
- NWR
- Gossip
- Consistency Hash
- Consistent Hash feature
- Consistency Hash principle
JAVA algorithm
- Binary search
- Bubble sort algorithm
- Insertion sort algorithm
- Quick sort algorithm
- Hill sorting algorithm
- Merge sort algorithm
- Bucket sorting algorithm
- Base sorting algorithm
- Pruning algorithm
- Backtracking algorithm
- Shortest path algorithm
- Maximum subarray algorithm
- Longest Common Subsequence Algorithm
- Minimum spanning tree algorithm
data structure
- Stack
- Queue
- Link
- Hash Table
- Sorted binary tree
- Red black tree
- B-TREE
- bitmap
Encryption Algorithm
- AES
- RSA
- CRC
- MD5
Hadoop
- Hadoop concept
- HDFS
- Client
- NameNode
- Secondary NameNode
- DataNode
- MapReduce
- JobTracker
- TaskTracker
- Task
- Reduce Task execution process
- The life cycle of Hadoop MapReduce jobs
- Job submission and initialization
- Task scheduling and monitoring.
- Task operating environment preparation
- Task execution
- Homework completed
Spark
- Spark concept
- Core architecture
- Core components
- SPARK programming model
- SPARK calculation model
- SPARK operation process
- SPARK RDD process
- SPARK RDD
Storm
- Storm concept
- Cluster architecture
- Nimbus (master-code distribution to Supervisor)
- Supervisor (slave-manages the start and termination of the Worker process)
- Worker (process that specifically handles component logic)
- Task
- ZooKeeper
- Programming model (spout->tuple->bolt)
- opology operation
- Storm Streaming Grouping
- ResourceManager
- NodeManager
- ApplicationMaster
- YARN operation process
Machine learning
- Decision tree
- Random forest algorithm
- Logistic regression
- SVM
- Naive Bayes
- K nearest neighbor algorithm
- K-means algorithm
- Adaboost algorithm
- Neural Networks
- Markov
cloud computing
- SaaS
- PaaS
- IaaS
- Docker
- Openstack
- Namespaces
- Process (process isolation implemented by CLONE_NEWPID)
- Libnetwork and network isolation
- Resource isolation and CGroups
- Mirroring and UnionFS
- Storage driver
Due to space limitations, the editor, I am here to cut out a few illustrations of knowledge explanation, the program ape (yuan) in need can see the method of obtaining in the picture:
How to obtain free architecture learning materials?
Information acquisition method: