The path of Java engineer Master

Source: Internet
Author: User
Tags aop reflection solr stream api volatile zookeeper java web nginx load balancing

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.langcommons.*... guava-librariesnetty

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

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.