What are the essential knowledge of JAVA in 2018?

1. Basics

JVM
JVM memory structure
Heap , stack, method area, direct memory, heap and stack difference
Java memory model
Memory visibility, reordering, sequential consistency, volatile, lock, final
garbage collection
Memory allocation strategy, garbage collector (G1), GC algorithm, GC parameters,
JVM parameters for determining object survival and tuning
Java object model
oop-klass, object header
HotSpot
httpok
real-time compiler, compilation optimization
class loading mechanism
classLoader, class loading process, parent delegation (destroy parent delegation), modules (jboss modules, osgi, jigsaw)
virtual machine performance monitoring and troubleshooting tools
jps, jstack, jmap, jstat, jconsole, jinfo, jhat, javap, btrace, TProfiler
Compile and decompile
javac, javap, jad, CRF
Java basics
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 types of String The principle and difference of substring in function
JDK 6 and JDK 7, the difference between
replaceFirst, replaceAll, and replace,
the overload of String to "+",
the difference between String.valueOf and Integer.toString,
the immutability of strings, the
automatic unboxing
of Integer Cache mechanism
Familiar with the
principles and usage of various keywords transient, instanceof, volatile, synchronized, final, static, and const in Java.
Collection class The use of
common collection classes, the difference between ArrayList and LinkedList and Vector, the difference between SynchronizedList and Vector, the difference between HashMap, HashTable, ConcurrentHashMap, the related usage of stream in Java 8, the use of apache collection processing tool class, HashMap in different versions of JDK The difference in implementation of and why
enumeration
Enumeration usage, enumeration and singleton, Enum class
Java IO & Java NIO, and learn to use
the difference between bio, nio and aio, usage and principles of three IO, netty
Java reflection and javassist
reflection and factory mode, java.lang. reflect.*
Java serialization
What is serialization and deserialization, why serialization, the underlying principle of serialization, serialization and singleton mode, protobuf, why serialization is not safe
Annotations
Meta- annotations, custom annotations, in Java Commonly used annotations, the combination of annotations and reflection
JMS
What is Java message service, JMS messaging model
JMX
java.lang.management. , javax.management.
Generics
Generics and inheritance, type erasure, KTVE in generics? The meaning of object, etc., various usages of generics
Unit testing
junit, mock, mockito, memory database (h2)
regular expression
java.lang.util.regex.*
Common Java tool library
commons.lang, commons.*… guava-
What are API&SPI exceptions
in librariesnetty , exception types, correct exception handling, custom exception time handling


Time zone, season, time API
coding method in Java
Solve the problem of garbled characters, common coding methods
Syntactic
sugar principle in Java, deciphering the syntactic sugar
Java concurrent programming
What is thread and the difference between process
Read the source code, and learn to use
Thread, Runnable, Callable, ReentrantLock, ReentrantReadWriteLock, Atomic*, Semaphore, CountDownLatch, ConcurrentHashMap, Executors
thread
pool Design thread pool, submit() and execute()
thread safety by yourself
Deadlock , how to troubleshoot deadlock, Java thread scheduling, thread safety and memory model The relationship between
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, reusable Locking, blocking locks, deadlocks
Deadlock
volatile
happens-before, compiler instruction reordering and CPU instruction
resynchronized synchronization
is how to achieve? The relationship between synchronized and lock, how to implement a thread-safe singleton
sleep and wait without using synchronized
wait and notify
notify and notifyAll
ThreadLocal
writes a deadlock program
Write code to solve the producer-consumer problem
Daemon thread Difference between
daemon thread and non-daemon thread and usage

2. Advanced

Basic knowledge of Java
Bytecode , class file format
CPU cache, L1, L2, L3 and pseudo-sharing
Tail recursion
Bit operation
Use bit operation to implement addition, subtraction, multiplication, division, remainder
Design patterns
Understand the basic 23 design patterns
Will use common Design Patterns
Singleton , Strategy, Factory, Adapter, Chain of Responsibility.
Implement AOP
to implement IOC
without synchronization and lock, implement thread-safe singleton mode
nio and reactor design mode
Network programming knowledge
tcp, udp, http, https and other common protocols
Three- way handshake and four-time shutdown, flow control and congestion control, OSI seven layers Model, difference between tcp sticking and unpacking
before http/1.0 http/1.1 http/2
Java RMI, Socket, HttpClient
cookie and session
cookie are disabled, how to implement session
Write a simple HTTP server for static files in Java
Implement client Cache function, support return 304, realize concurrent download of a file, use thread pool to process client requests, use
nio to process client requests, support simple rewrite rules And build a corresponding server to implement FTP and SMTP protocols
in Java
The way of inter-process communication
What is CDN? If realized?
What is DNS?
Reverse proxy
Framework knowledge
Servlet thread safety issues
Servlet filter and listener
Hibernate's caching mechanism
Hiberate's lazy loading
Spring Bean initialization
Spring's AOP
principle Implement Spring's IOC
Spring MVC
Spring Boot2.0
Spring Boot's starter principle, implement it yourself A starter
Spring Security
application server knowledge
JBoss
tomcat
jetty
Weblogic
tools
git & svn
maven & gradle

3. Advanced

New technologies
Java 8
lambda expressions, Stream API,
Java 9
Jigsaw, Jshell, Reactive Streams
Java 10
local variable type inference, G1 parallel Full GC, ThreadLocal handshake mechanism
Spring 5
reactive programming
Spring Boot 2.0
performance optimization
Use singleton, use Future mode, use thread pool, select ready, reduce context switching, reduce lock granularity, data compression, result cache
Online problem analysis
dump acquisition
Thread Dump, memory Dump, gc situation
dump analysis
Analysis of deadlock, analysis of memory leak
Write various by yourself outofmemory , stackoverflow programs
HeapOutOfMemory, Young OutOfMemory, MethodArea OutOfMemory, ConstantPool OutOfMemory, DirectMemory OutOfMemory, Stack OutOfMemory Stack OverFlow
common problem solutions
Memory overflow, thread deadlock, class loading conflicts
Use tools to try to solve the following problems and write a summary
When a Java How to find the problem when the program response is very slow, how
to solve the problem when a Java program frequently FullGC,
How to view the garbage collection log, how to solve the problem of OutOfMemory
in a Java application, how
to judge whether there is a deadlock, how
to judge whether there is a memory leak Analysis, Syntax Analysis (LL Algorithm, Recursive Descent Algorithm, LR Algorithm), Semantic Analysis, Runtime Environment, Intermediate Code, Code Generation, Code Optimization Operating System Knowledge Common Commands of Linux Process Synchronization Buffer Overflow Segmentation and Paging Virtual Memory and Main memory Database knowledge MySql Execution engine MySQL Execution plan How to view the execution plan, how to optimize SQL according to the execution plan Transaction isolation level of transaction, whether transaction can realize lock function Database lock Row lock, table lock, using database lock to achieve optimism Lock, database master and backup Build binlog memory database h2 Commonly used nosql database redis and memcached use database lock and NoSql respectively to realize distributed lock Performance tuning Data structure and algorithm knowledge





























Simple data structures
stacks , queues, linked lists, arrays, hash tables,
trees,
binary trees , dictionary trees, balanced trees, sorting trees, B-trees, B+ trees, R-trees, multi-way trees, red-black trees
Sorting algorithms
Various sorting algorithms And time complexity depth-first and breadth-first search full permutation, greedy algorithm, KMP algorithm, hash algorithm, massive data processing
Big data knowledge
Zookeeper
basic concepts, common usage
Solr, Lucene, ElasticSearch
deploy solr, solrcloud, new on linux , delete, query the index
Storm, stream computing, understand Spark, S4
deploy storm on linux, coordinate with zookeeper, run storm hello world, run storm topology in local and remote mode.
Hadoop, offline computing
HDFS, MapReduce
distributed log collection flume, kafka, logstash
data mining, mahout
network security knowledge
What is XSS
XSS defense
What is CSRF
What is injection attack
SQL injection, XML injection, CRLF injection
What is file upload vulnerability
Encryption and decrypt
MD5, SHA1, DES, AES, RSA, DSA
What is DOS attack and DDOS attack
Why can memcached lead to DDos attack, what is reflective DDoS
SSL, TLS, HTTPS
how to perform DOS attack through Hash collision Sign a certificate
with openssl and deploy to apache or nginx

4. Architecture

Distributed
Data Consistency, Service Governance, Service Degradation
Distributed Transactions
2PC, 3PC, CAP, BASE, Reliable Message Eventual Consistency, Best Effort Notification, TCC
Dubbo
Service Registration, Service Discovery, Service Governance
Distributed Database
How to build a distributed database Database, when do you need distributed database, mycat, otter, HBase
distributed file system
mfs, fastdfs
distributed cache
Cache consistency, cache hit rate, cache redundancy Microservice SOA, Conway's Law
ServiceMesh Docker & Kubernetes Spring Boot Spring Cloud High concurrency Sub- database sub-table partition CDN technology Message queue ActiveMQ, RabbitMQ, JMS monitoring What CPU, memory, disk I/O, network I/O, etc. to monitor Monitoring methods Process monitoring, semantic monitoring, machine resource monitoring, data fluctuation Monitoring data collection Logs, buried point Dapper load balancing tomcat load balancing, Nginx load balancing




















DNS
DNS Principle, DNS Design
CDN
Data Consistency
5. Extension
Cloud Computing
IaaS, SaaS, PaaS, Virtualization Technology, OpenStack, Serverlsess
Search Engine
Solr, Lucene, Nutch, Elasticsearch
Authority Management
Shiro Blockchain Hash
Algorithm, Merkle
Trees, Public Key Cryptography, Consensus Algorithms, Raft Protocol, Paxos Algorithms and Raft Algorithms, Byzantine Problems and Algorithms, Message Authentication Codes and Digital
Signatures Bitcoin
Mining, Consensus Mechanisms, Lightning Network, Sidechains, Hot Issues, Forks
Ethereum
Fang Hyperledger
Artificial Intelligence
Mathematical foundation, machine learning, artificial neural network, deep learning, application scenarios.
Common frameworks
TensorFlow, DeepLearning4J
other languages
​​Groovy, Python, Go, NodeJs, Swift, Rust
Six, recommended books
"In-depth Understanding of Java Virtual Machine" "Effective Java" "In-depth Analysis of Java Web Technology Insider" "Large Website Technology Architecture" "The Way of Clean Code" "Head First Design Patterns" "Maven Practice" "Blockchain Principles, Design and Application" "Java Concurrent Programming Practice" "Brother Bird's Linux Private Kitchen" "From Paxos to Zookeeper" "Architecture is the Future"

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325721134&siteId=291194637