preface

In a twinkling of an eye, half of the year has passed and autumn recruitment is coming. I am very lucky to get the offer from Ali at the end of golden Three silver four! First of all, I probably I began to read a book from last December to study, to this year’s April, has been learning to see everyone’s face is basically more than 90 percent will, I began to cast resume in May, while the interview while adding basic knowledge. It’s also a little hard. Finally, I got the offer from Ali not long ago and rated P7. Now I put my interview experience sorted out to share with you, I hope to help you! (Answer at the end)

One: Ali technology side

1. Common exception types? 2.session 3. Java lock 4. GC principle 5. hashMap 6. ListLink ArrayList distinction 7. AOP principle 8. Multi-threading 9. Kafka and fault tolerance 10. Spark Hadoop 11. Redis synchronization 12. How to design a step by step login system? 16.Spring loading process? 17. Have you ever written an AOP transaction like Spring? 18. Spring loading process? 19. What is the difference between atomic and volatile? 20. What is the difference between notify () and notifyAll () of a Thread? 21. Which thread does notifiy () wake up? 22. Do I need to recompete after thread.sleep () is awakened? 23. How many ways can a singleton be written? What’s the difference? Which singleton do you often use and why? 24. Ask a question about Thread. Join (). 25. Write a JAVA deadlock example? 26. How to resolve deadlocks? 27.GC recovery algorithm, and its implementation principle? 28.HashMap data storage structure? What if the key is repeated? How is it solved? 29. The implementation principle of Spring AOP, what is the underlying implementation?

I put it all together in a document that looks like this

Ali Technology Level 2 (technical principles, projects I am good at)

The focus is on the principles of interview technology, as well as the enthusiasm and degree of expertise in the technology:

1. Advanced Knowledge of Java 2. Principles of open source frameworks 3. Multi-threading 5. High concurrency 6. Middleware 7. 8. Enthusiasm for technology (whether to read some technical books, visit forums, write blogs, write source code or programs, etc.);

Questions you might ask in a JAVA development technology interview?

1. We mainly assess the high-concurrency big data of network NIO distributed database

2. Implementation of custom tables?

3. Dynamic form design?

4. How are in-JVM and JMM cache models tuned?

5. Common RPC framework

6. Nio and IO

7. Concurrent programming, design mode

8. Map components?

9. What bugs in HashMap cause it to slow down?

10. How to design a HashCode for a HashMap key object?

11. Generic wildcards? Under what circumstances?

12. Back end: Redis? Distributed framework Dubbo? Design patterns?

13. Scenariotype question: second kill, can list the common queuing, verification code, inventory deduction mode on the high concurrency of the system?

14. Able to build cache structure according to actual needs to improve the access speed of the website, proficient in using Ehcache, OSCache and memcache.

15. Familiar with load balancing based on DNS polling, skilled in configuring Web servers to achieve load balancing, and able to comprehensively implement soft load by means of hash or modulo 1 at the program level.

16. Familiar with distributed database design and optimization technology, familiar with mainstream databases such as mysql, Oracle and SqlServer, hadoop hbase MangoDB Redis Ehcache and OSCache memcache. For the database processing with large data volume, it adopts the methods of table and library, database read and write separation, and building cache to optimize the performance.

17. Proficient in Lucene, able to develop large search engines based on Lucene, and use Lucene to improve and optimize database like queries.

Ali will learn:

  • Algorithms and data structure array, linked list, binary tree, queue, stack various operations (performance, scenario)
  • Binary search and various variants of binary search
  • Various sorting algorithms and complexity analysis (quicksort, merge, heap)
  • Various algorithm problems (handwritten)
  • Understand and analyze time and space complexity.
  • Dynamic programming (written test return has..) And greed.
  • Red black tree, AVL tree, Hash tree, Tire tree, B tree, B+ tree.
  • Graph algorithm (less, also two shortest path algorithm to understand it)
  • Computer network OSI7 layer model (TCP4 layer) each layer of the protocol
  • Get/Post and idempotency
  • HTTP protocol header correlation
  • Network attacks (CSRF, XSS)
  • TCP/IP three handshakes, four waves
  • Compare TCP with UDP
  • DDos attack
  • (B) IO/NIO/AIO, how is it implemented in each language
  • Netty
  • Linux kernel select poll epoll
  • 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, intent locks, read locks, write locks, pessimistic locks, optimistic locks, and select SQL locks)
  • Isolation level, problems solved in order (dirty read, unrepeatable read, phantom read)
  • The transaction of the ACID
  • B tree, B plus tree
  • Optimization (Explain, slow query, show profile)
  • Database paradigm
  • Sub-library sub-table, master/slave replication, read/write separation.
  • Nosql (redis vs. memcached, if you’re familiar with Redis, redis has a lot to ask)
  • Operating system: Processes communicate IPC (several ways), as distinct from threads
  • Several strategies of OS (page replacement, process scheduling, etc., with several algorithms in each)
  • Mutexes are deadlock-related
  • Linux common commands (when asked to give a specific scenario)
  • Linux kernel related (select, poll, epoll)
  • Programming language (only Java here) : after I go through the surface, Java feel covered almost, but the following is still divided into classes.
  • Java basics (object-oriented, four features, overloading, static and final, and much more)
  • Collection (HashMap, ConcurrentHashMap, various lists)
  • Concurrency and multithreading (thread pools, SYNC and Lock locking mechanisms, thread communication, volatile, ThreadLocal, CyclicBarrier, Atom packages, CountDownLatch, AQS, CAS principles, etc.)
  • JVM (memory model, GC garbage collection, including generation, GC algorithms, collectors, class loading and parent delegation, JVM tuning, memory leaks and memory spills)
  • IO/NIO
  • Reflection and proxy, exceptions, Java8 correlation, serialization
  • Design pattern (common, available in JDK)
  • Web related (Servlet, Cookie/Session, Spring)

Ali interview topics:

  • The memory model
  • Class loading mechanism
  • GC
  • The JVM tuning
  • Thread Pool Principle
  • A dynamic proxy
  • Pessimistic lock optimistic lock
  • High concurrency problem
  • Transaction isolation level
  • The index principle
  • Current limiting
  • Depots table
  • Distributed transaction commit
  • Micro service
  • Dubbo principle

Finally, I organized all the interview questions and interview outline into the following documents

What I want to say for the interview is that the attitude is really important, which is the key to determine your performance in the interview process. If you can’t play normally, you may lose the offer due to a small mistake, so we must pay attention to it. In addition to remind a bit, prepared sufficiently, is the key to eliminate nervous state of mind you, but with full preparations, nature will be much more confident in the interview process, and then want to get all of the above documents can 【 view the link below, I only hope this document can help in your interview, help you to win the right offer!

2021 Ali Java Interview questions summary