This is a creation in Article, where the information may have evolved or changed.
Array of algorithms and data structures, linked lists, binary trees, queues, stacks of various operations (performance, scenarios)
Binary search and binary search for various variants
Various sorting Algorithms and complexity analysis (fast, merge, Heap)
All kinds of Algorithm questions (handwriting)
Understand and analyze the complexity of time and space.
Dynamic planning (written in the Hui ... ), greed.
Red-black tree, AVL tree, hash tree, tire tree, B-tree, + + tree.
Graph algorithm (relatively few, also on the two shortest path algorithm to understand it)
Network OSI7 layer Model (TCP4 Layer) protocol for each layer
URL-to-page process
Httphttp/https 1.0, 1.1, 2.0
Get/post and Idempotent
HTTP protocol Header related
Network attacks (CSRF, XSS)
TCP/IP three-time handshake, four-time wave
Congestion control (process, threshold)
Flow control and Sliding window
TCP vs. UDP comparison
Subnetting (usually only written tests are available)
DDoS attacks
B Io/nio/aio three principles, how each language is realized
Netty
Linux Kernel Select poll Epoll
Database (up to or mysql,nosql with Redis) index (including classification and optimization, failure conditions, underlying structure)
SQL syntax (join,union, subquery, having,group by)
Engine contrast (INNODB,MYISAM)
Database locks (row lock, table lock, page level lock, intent lock, read lock, write lock, pessimistic lock, optimistic lock, and lock Select SQL mode)
Isolation level, problem solved in turn (dirty read, non-repeatable read, Phantom Read)
Acid of the transaction
B-Tree, + + Tree
Optimization (explain, slow query, show profile)
The paradigm of the database.
Sub-database sub-table, master-slave replication, read and write separation.
NoSQL related (Redis and memcached differences, if you're familiar with Redis,redis and a bunch of questions to ask)
Operating system: Process communication IPC (several ways), different from threads
Several strategies of the OS (page permutation, process scheduling, etc., each with several algorithms)
Mutex related to deadlock
Linux common commands (when asked will give a specific scene)
Linux kernel correlation (SELECT, poll, Epoll)
Programming language (only Java here): After I pass through the face, the Java sense of coverage is almost the same, but the following is a sub-class.
Java Basics (Object-oriented, four attributes, overloaded overrides, static and final, and much more)
Collection (HashMap, concurrenthashmap, all kinds of lists, the best combination of source to see)
Concurrency and multithreading (thread pool, sync and lock lock mechanism, threading communication, volatile, ThreadLocal, Cyclicbarrier, Atom Packet, Countdownlatch, AQS, CAS principle, etc.)
JVM (memory model, GC garbage collection, including generational, GC algorithms, collectors, class loading and parental delegation, JVM tuning, memory leaks and memory overflows)
Io/nio related
Reflection and Proxy, exception, Java8 correlation, serialization
Design patterns (Common, JDK-owned)
Web-related (servlet, cookie/session, Spring, Mybatis, Tomcat, hibernate, etc.)
See JDK Source code
Project experience this person's project is different, covering the technology is not the same, so can not be unified to say.
Nothing but to find the highlights of their project, resume on the concise and draw attention, at the same time you have to be very familiar with this point (after all, can be prepared in advance)
It is best to practice more, like a script or a manuscript, to ensure that the interview can be very skilled in speaking out, and let people listen very comfortable.
Internship experience If you have an internship experience, the focus of the interview process will also be done in the internship on the above, so we best to do a summary of the work done by the internship, and also catch the bright spot, understand the internal principles, the process of early exercise.
Other extension skills (this is too much, it's almost impossible to master it all, just as a reference for other times to expand your skills)
Distributed architecture: (Understand the principle of the line, if there is real experience better) cap principle and base theory.
NoSQL and KV storage (redis,hbase,mongodb,memcached, etc.)
Service theory (including service discovery, governance, etc., zookeeper, ETCD, Springcloud micro-services)
Load balancing (principle, CDN, consistent hash)
RPC Framework (including some framework theory of the whole, communication Netty, serialization protocol Thrift,protobuff, etc.)
Message Queuing (principle, KAFKA,ACTIVEMQ,ROCKETMQ)
Distributed Storage Systems (GFS, HDFS, Fastdfs), storage models (skiplist, LSM, etc.)
Distributed transactions, distributed locks, etc.
Scripting language: (just as a horizontal extension, generally asked Linux will also ask the shell script) python
Php
Shell
Golang
...
Big Data and data analytics: Hadoop Biosphere (Hive, HBase, HDFs, Zookeeper, Storm, Kafka)
Spark System
Languages: Python, R, Scala
Search Engine and technology
Machine learning algorithms: many models and algorithms. Do not elaborate, if very skilled to go to the algorithm, many domestic companies are very scarce algorithm hillock, other posts can probably understand the theory.
The theory and use of other tools: This is more, ask more like Git, Docker, Maven/gradle, Jenkins and so on, you need to learn selectively.
If you want to learn Java this technology, but also want to get high salaries in the IT industry, can participate in our training camp courses, choose the most suitable for their own courses, technical Daniel Pro, 7 months later, enter the famous enterprises get high salary. Our curriculum includes: Java Engineering, high performance and distributed, high performance, in Layman's. High architecture. Performance tuning, Spring,mybatis,netty source analysis and big data, and many other points of knowledge. If you want to get a high salary, want to learn, want to have a good job prospects, want to compete with others can get advantage, want to go to Ali interview but worry about interview but, you can come, group number: 561614305