table of Contents
Technical side (23 questions)
Technical two sides (3 large blocks)
Performance optimization (21 points)
Project actual combat (34 blocks)
JAVA direction technology inspection point (15 points)
Questions that may be asked in the JAVA development technical interview (17 questions)
Ali technical interview 1
- 1.The hierarchical structure of the Java IO stream?
- 2. Please tell us the commonly used exception types?
- 3. What is the full name of SKU, and the difference and relationship between SKU and SPU?
- 4. After using the FileInputStream, without closing the stream, what can I do if I want to use it again?
- 5. Design a distributed login system?
- 6. Spring loading process?
- 7. Have you ever written AOP transactions like Spring?
- 8. What is the syntactic sugar for try…catch to close the stream in Java?
- 9. How to design a spike system? What to consider?
- 10. Have you encountered an online GC? What are the symptoms and how to solve it?
- 11spring loading process?
- 12. What is the difference between atomic and volatile?
- 13. What is the difference between Thread's notify() and notifyAll()?
- 14. Which thread is notifiy() awakened?
- 15. Does Thread.sleep() need to compete again after waking up?
- 16. How many ways are there to write singletons? What are the differences? Which singleton do you use frequently, and why do you use this?
- 17.Ask a Thread.join() related question?
- 18. How to design data model for commodity-related module system?
- 19. Write a JAVA deadlock example?
- 20. How to solve the deadlock?
- 21.GC recovery algorithm, and implementation principle?
- 22. HashMap data storage structure? What should I do if the key is repeated? How to solve it?
- 23. The realization principle of Spring AOP, what is the underlying realization?
Ali technical interview 2
The telephone interview mainly examines 3 pieces of content:
Basic knowledge of Java, the principle of open source framework, JVM, multithreading, high concurrency, middleware, etc.;
Previous project experience, the technology used, the problems encountered, how to solve them, what are the personal gains and growth;
Passion for technology (whether you usually read some technical books, visit forums, write blogs, write source code or programs, etc.);
Questions that may be asked in the JAVA development technical interview?
Our main assessment is the network nio distributed database high concurrency big data
Implementation of custom tables?
Dynamic form design?
How to tune in-jvm (required) and jmm cache model?
Commonly used RPC framework
nio sum io
Concurrent programming, design pattern
Map component?
What vulnerabilities in hashmap will cause it to slow down?
How to design a hashcode for the key object of the hashmap?
Generic wildcards? Under what circumstances?
Back-end aspect: redis? distributed framework dubbo (Alibaba open source framework)? design pattern?
Scenario-style question: seckill, can you list the impact of common queuing, verification codes, and inventory deduction methods on the high concurrency of the system?
Can build a cache structure according to actual needs to improve website access speed, proficiently use ehcache, oscache, and understand memcache.
Understand load balancing based on dns polling, and be proficient in configuring web servers to achieve load balancing. Program-level can comprehensively use hash-based or modulo-based methods to achieve soft load.
Familiar with distributed database design and optimization technology, familiar with mainstream databases such as mysql, oracle, and SqlServer, familiar with hadoop hbase mangodb redis ehcache, oscache memcache. For database processing with a large amount of data, methods such as table sub-database, database read-write separation, and cache establishment are used to optimize performance.
Familiar with Lucene, can develop large search engines based on Lucene, and can use Lucene to improve and optimize database like queries.
JAVA direction technical inspection point (Supplement):
- Master the Java programming language, including the use of io/nio/socket/multi threads/collection/concurrency and other functions;
- Familiar with jvm (sun hotspot and ibm j9) memory model, gc garbage collection tuning and other skills;
- Proficient in JVM, JMM, MVC architecture, and proficient in using struts2.
- Proficiency in using spring, struts, ibatis to build application systems.
- Familiar with front-end technologies such as Servlet, jsp, and freemark.
- Proficiency in using axis to build WebService service interface based on SOAP protocol.
- Proficiency in using MAVEN to build project engineering.
- Proficiency in using web services such as tomcat.
- Familiar with mysql and other relational databases, familiar with mysql cluster construction.
- Proficient in using NOSQL technologies such as redis.
- Familiar with tcp and http protocols.
- Familiar with nginx, haproxy and other configurations.
- Familiar with javascript, ajax and other technologies.
- Familiar with the mainstream distributed file system FastDFS, etc.
- Familiar with JMS, can use ActiveMQ proficiently.
The Java technology leader is required to be able to know what the project itself is, not only has deep technical skills, but also has strong business capabilities, has a good idea and business sense, and is full of interest and desire for technology. Don’t ask an interviewer to answer a question. One, with a dull expression that can't see any of his own thoughts at all.
Describe every project you did in the interview: What did you do? What problems did you solve with these tasks? What difficulties remain unsolved? How to optimize these difficulties in the future? What functions can be achieved after optimization? How are these functions related to middleware and distributed parallel systems? ? Java middleware direction message transmission method mq long connection short connection
What are the optimizations for the Java virtual machine?
The underlying computer understands the memory management/data mining system
How to understand reliability and availability~
Comparison of jsp and sever lap
Database to interface, character set conversion
Base stack
How to analyze and monitor jvm optimization when the cup is high
java curb highlights details
How to distribute documents in distributed cache
Vertical partition of the migration database
How to deal with the high-concurrency front-end application layer
LB design load balance
Load balancing
Anti-cyber attack
Notification after data log event monitoring
The underlying mechanism of database transaction realization
Cyber attack on string space input
The underlying principle of the Quartz framework
Synchronize data in database synchronization without directly reading the log through the database engine
The traversal method of binary tree, pre-order, middle-order, post-order and layer order
volatile keyword
synchronized
concurrentHashMap
Lock optimization strategy
operating system
Project part
The use of cache, if you need to implement a simple cache for the ajax asynchronous request in the search box, what structure is used?
The cache in memory cannot always exist. What algorithm is used to periodically remove entries with lower search weights?
How does TCP ensure security
Red-black tree problem, B+ number
The enhancement of HashMap in JDK1.8, if there are too many nodes on a bucket, the structure of linked list + array will be converted into a red-black tree.
If the stand-alone server used in the project is deployed as a distributed server?
MySQL's common optimization method, set as slow query
Handwriting a thread-safe singleton pattern
You must know knowledge when entering Ali:
Algorithms and data structure arrays, linked lists, binary trees, queues, stacks of various operations (performance, scenarios)
Binary search and various variants of binary search
Various sorting algorithms and complexity analysis (fast sorting, merging, heap)
Various algorithmic questions (handwritten)
Understand and can analyze time and space complexity.
Dynamic planning (written back and forth...), greedy.
Red-black tree, AVL tree, Hash tree, Tire tree, B tree, B+ tree.
Graph algorithm (less, just understand the two shortest path algorithms)
Computer network OSI7 layer model (TCP4 layer) protocol for each layer
The process of url to page
HTTPhttp/https 1.0、1.1、2.0
get/post and idempotence
http protocol header related
Cyber attacks (CSRF, XSS)
TCP/IP three-way handshake, four waved hands
Congestion control (process, threshold)
Flow control and sliding window
Comparison of TCP and UDP
Subnetting (generally only available for written test)
DDos attack
(B) The three principles of IO/NIO/AIO and how each language is implemented
Netty
Linux kernel select poll epoll
Database (mostly mysql, Nosql has redis) index (including classification and optimization methods, failure conditions, underlying structure)
sql syntax (join, union, subquery, having, group by)
Engine comparison (InnoDB, MyISAM)
Database locks (row locks, table locks, page-level locks, intention locks, read locks, write locks, pessimistic locks, optimistic locks, and select sql locks)
Isolation level, the problems to be solved in turn (dirty read, non-repeatable read, phantom read)
ACID of the transaction
B tree, B+ tree
Optimization (explain, slow query, show profile)
The paradigm of the database.
Sub-database and sub-table, master-slave replication, read-write separation.
Nosql related (the difference between redis and memcached, if you are familiar with redis, redis has a lot to ask)
Operating system: process communication IPC (several ways), different from threads
Several strategies of OS (page replacement, process scheduling, etc., there are several algorithms in each)
Mutex and deadlock related
Linux commonly used commands (when asked, I will give a specific scene)
Linux kernel related (select, poll, epoll)
Programming language (here, only Java): After passing through me, Java feels that the coverage is almost the same, but the following is still divided into categories.
Java basics (object-oriented, four features, overloading and rewriting, static and final, etc.)
Collection (HashMap, ConcurrentHashMap, various Lists, it is best to look at the source code)
Concurrency and multithreading (thread pool, SYNC and Lock lock mechanism, thread communication, volatile, ThreadLocal, CyclicBarrier, Atom package, CountDownLatch, AQS, CAS principle, etc.)
JVM (memory model, GC garbage collection, including generation, GC algorithm, collector, class loading and parent delegation, JVM tuning, memory leak and memory overflow)
IO/NIO related
Reflection and proxy, exception, Java8 related, serialization
Design mode (commonly used, some in jdk)
Web相关(servlet、cookie/session、Spring
Use of the framework and interview topics
Open source framework reference answer
Spring interview topics
spring reference answer
Spring Boot interview topics
springboot reference answer
Spring Cloud interview topics
springcloud reference
Spring MVC interview topics
springmvc reference answer
Highly concurrent programming interview topics
High concurrency programming reference answer
Multi-threaded interview topics
Multi-threaded reference answer
MyBatis optimization interview topics
MyBatis optimization reference answer
Nginx interview topics
Dubbo interview topics
Friends who need to get the interview system documents can like the article and follow the author, and then click here to get all the above interview PDF documents!