The path of the Java engineer into God

Source: Internet
Author: User
Tags object model solr stream api volatile zookeeper java web jboss nginx load balancing

First, the basic article JVM

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

Java various variable types in

familiar with Java String the use of, familiar with String the various functions

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

familiar with Java various keywords in

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 of

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.*

used in Java Tool Library

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

What is Api&spi

Abnormal

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 difference between a thread and a 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

Dead lock

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 the wait

wait and the Notify

Notify and the Notifyall

ThreadLocal

To write a deadlock program

Write code to solve producer consumer problems

Daemon Threads

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

Tail recursion

Bit arithmetic

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

Design Patterns

Understand at type of design pattern

Use common design Patterns

Single case, strategy, factory, adapter, responsibility chain.

Implement AOP

Implement IOC

Don't synchronized and the Lock , a single-instance mode for thread safety

NiO and the reactor Design Patterns

Network programming

TCP , UDP , http , HTTPS and other common protocols

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

Java RMI , Socket , HttpClient

Cookies with the Session

Cookie is disabled, how to implement session

with Java write a simple static file of the HTTP Server

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 Nginx and the Apache Server features and build a corresponding server

with Java Implement FTP , SMTP Protocol

Ways to communicate between processes

What is CDN ? If implemented?

What is DNS ?

Reverse Proxy

Framework Knowledge

Servlet Thread safety issues

Servlet in the Filter and the Listener

Hibernate The caching mechanism

hiberate The lazy load

Spring Bean Initialization of

Spring of the AOP principle

own Implementation Spring of the IOC

Spring MVC

Spring Boot2.0

Spring Boot's starter principle, the implementation of a starter

Spring Security

Application Server

Jboss

Tomcat

Jetty

Weblogic

Tools

Git & SVN

Maven & 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 your own various OutOfMemory , StackOverflow program

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

Compiling and deserializing

Java compilation and decompile of code

Java the Anti-compilation tool

lexical analysis, grammatical analysis ( LL algorithm, recursive descent algorithm, LR algorithm), semantic analysis, runtime Environment, intermediate code, code generation, code optimization

Operating system knowledge

Linux Common commands for

Process synchronization

Buffer overflow

Segmentation and Paging

Virtual memory and main storage

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 Optimized

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 main backup and build

Binlog

In-memory database

H2

used in NoSQL Database

Redis, memcached

using Database locks, respectively, NOSQL Implementing Distributed Locks

Performance tuning

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 is DOS attacks and DDOS Attack

Why memcached can lead to DDoS attacks, what is reflective DDoS

SSL , TLS , HTTPS

How to pass Hash collision with DOS Attack

with OpenSSL sign a certificate to deploy to Apache or Nginx

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

ServiceMesh

Docker & Kubernets

Spring Boot

Spring Cloud

High concurrency

Sub-database 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

Aether Square

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 the Java engineer into God

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.