Ali technical Job requirements and System diagram:

A lot of people on Alibaba technical post system structure and level of technical requirements set not too clear, want to go to the interview also do not know what level of the interview, the technical system of Ali is a kind of level division!

Ali P6(Technical Supervisor)

Job Requirements:

Be able to solve problems independently, develop systematic technical implementation schemes, and the assessment will involve some technical depth.

Skills required:

In addition to P5 skills, the following skills should be mastered, which should be at least familiar with.

Architecture design, operation and maintenance capability, operating system.

Ali P7(Technical Expert)

Job Requirements:

Ability to independently lead product or business development, and have certain ability in product or business planning.

Skills required:

On the basis of P6, you need to be proficient in Java development and Web development.

Be proficient in at least one area of architecture design.

The appended drawings:

The technical four questions are as follows

One side (asking about data structures, JVMS, locks, etc.) :

  1. Self introduction and project
  2. What is the underlying implementation of HashMap?
  3. Hash consistent algorithm?
  4. What is the difference between HashMap and ConcurrentHashMap? What is the difference between Treemap and HashMap?
  5. Java memory partition?
  6. Java object recycling method, recycling algorithm?
  7. CMS and G1?
  8. What problem does CMS solve? Tell me about the recycling process?
  9. How many times did the CMS recycle pause?
  10. When does the Java stack run out of memory, what about the Java heap, one scenario?
  11. How does the collection class solve this problem? What is the difference between the two references?
  12. What do Java locks know?
  13. How to realize the upgrading process of synchronized lock (partial lock to light lock and then to heavy lock), and what problems are solved?
  14. What is the basic architecture of Tomcat?
  15. What is a class loader?
  16. What about the parental delegation model?
  17. What is the mechanism of GC? GC algorithm and recycle strategy?
  18. Future career plans?

Second side (thread, database, cache, protocol, etc.) :

  1. Talk about the project
  2. What components do thread pools consist of?
  3. What thread pools are available and how are they used? What are the rejection strategies?
  4. When does a multithread deadlock occur? Write an example?
  5. What is the data structure of Redis? What about the thread model?
  6. Talk about Redis data elimination mechanism?
  7. What about Redis data consistency?
  8. How does Redis distribute?
  9. What about RPC?
  10. Three handshakes and four waves? What’s wrong with not having three handshakes?
  11. Http request process, DNS resolution process?
  12. What are the four transaction isolation levels InnoDB supports? What’s not? What about MySQL isolation levels?
  13. Transaction characteristics and slow queries?
  14. How about BTree?
  15. How to optimize MySQL?

Three sides (distributed, message queue, etc.) :

  1. To introduce myself
  2. Cap? What do you mean by cap?
  3. What are the methods to achieve strong consistency and weak consistency?
  4. How to achieve load balancing? Why do you do that?
  5. Cache avalanche say?
  6. MySQL master-slave replication What is the principle? What are the advantages and disadvantages?
  7. What about distributed transactions?
  8. Message queuing, what scenarios are used (peak clipping, limiting, asynchronous)?
  9. How to overcome the PERFORMANCE bottleneck of ZK?
  10. So kafka, how do you keep data from getting lost? Ensure that messages are not consumed twice?
  11. How is message delivery confirmation implemented?

Four sides (starting from the project) :

  1. He talked about his project
  2. What are the main architectures used?
  3. More complex business logic?
  4. Encountered difficult to solve problems and breakthrough receiving goods
  5. The future plan and the future career development, talk about their own views

BAT interview questions for Java positions

Face by answer summary

Forward + follow meClick here to get the document collection method

Concurrent programming:

  • What are multithreaded concurrency and parallelism?
  • What are thread safety issues?
  • What are memory visibility issues for shared variables?
  • What are atomic operations in Java?
  • What are CAS operations in Java and how does AtomicLong work?
  • What is Java instruction reorder?
  • What are the memory semantics of the Synchronized keyword in Java?
  • What are the memory semantics of the Volatile keyword in Java?
  • What is pseudo-sharing, why does it happen, and how can it be avoided?
  • What are reentrant locks, optimistic locks, pessimistic locks, fair locks, unfair locks, exclusive locks, shared locks?
  • How does ThreadLocal work?
  • How does ThreadLocal work internally as a thread-isolation method for variables?
  • What is the implementation of InheritableThreadLocal?
  • How does InheritableThreadLocal compensate for ThreadLocal not supporting inheritance?
  • How is the implementation inside CyclicBarrier different from CountDownLatch?
  • How does the Random number generator class use CAS algorithm to ensure the uniqueness of new seeds in multithreading?
  • How does ThreadLocalRandom use ThreadLocal principles to solve the limitations of Random?
  • How to use ThreadLocal to implement request Scope scoped beans in Spring framework?
  • And the implementation of the lock in the packet?
  • How about exclusive lock ReentrantLock?
  • Talk about ReentrantReadWriteLock.
  • StampedLock lock principle?
  • ConcurrentLinkedQueue is a non-blocking unbounded queue based on linked lists.
  • How is the CAS non-blocking algorithm used inside ConcurrentLinkedQueue to ensure thread safety for queue entry and queue exit operations in multiple threads?
  • Principle of LinkedBlockingQueue based on linked list.
  • How to use two exclusive reentrantLocks and corresponding condition variables inside the LinkedBlockingQueue to ensure thread safety for multi-threaded in-queue and out-queue operations?
  • Why not use one lock, and why use two locks to improve concurrency?
  • What about the PriorityBlockingQueue principle for unbounded priority queues?
  • PriorityBlockingQueue uses the heap algorithm internally to ensure that the highest priority element is in each queue.
  • Analyze the use and principle of CountDownLatch in JUC?
  • What is the difference between CountDownLatch and thread Join methods?
  • What is the use of CyclicBarrier in JUC?
  • How is the implementation inside CyclicBarrier different from CountDownLatch?
  • What is the internal implementation of Semaphore?
  • Simple comparison of synchronizer implementation, talk about your opinion?
  • The concurrent component CopyOnWriteArrayList is a List that achieves concurrency safety through copy-on-write.

JVM

  • Java memory allocation?
  • What is the structure of the Java heap?
  • What is Perm Gen space in the heap?
  • Describe the memory area changes in each version.
  • What is the role of each region?
  • Is there a memory leak in Java?
  • Java class loading process?
  • Describe how the JVM loads Class files.
  • What is a class loader?
  • What are class loaders?
  • What is the Tomcat class loading mechanism?
  • Class loader parent delegate model mechanism?
  • What is the GC? Why GC?
  • What is the Java garbage collection mechanism?
  • How do you tell if an object is alive?
  • What are the advantages and principles of garbage collection and consider 2 recycling mechanisms?
  • What is the rationale behind the garbage collector?
  • Can the garbage collector reclaim memory right away? Is there any way to proactively notify the virtual machine for garbage collection?
  • Deep copy and shallow copy?
  • What do system.gc () and Runtime.gc() do?
  • If a reference to an object is set to NULL, does the garbage collector immediately free the memory occupied by the object?
  • What is Distributed Garbage Collection (DGC)? How does it work?
  • What is the difference between a serial collector and a throughput collector?
  • When can objects be garbage collected in Java?
  • How about Minor and Major GC?
  • Does garbage collection occur in JVM permanent generations?
  • What are the methods of garbage collection in Java?
  • Describe your understanding of performance evaluation and test metrics?
  • What are the common performance tuning methods?
  • What about distributed caching and consistent hashing?
  • Synchronous versus asynchronous? Blocking and non-blocking?
  • What is GC tuning?
  • What are the common asynchronous methods?

Spring

  • Why is the proxy pattern needed?
  • What are the advantages and bottlenecks of the static proxy pattern?
  • Understanding how the Java interface proxy pattern works?
  • How do I implement dynamic proxies using Java reflection?
  • Specific enhancements to the Java interface proxy pattern?
  • Talk about the implementation of Cglib class enhanced dynamic proxy?
  • What is point cut, advice, Join point?
  • What is the difference between Join Point and Point cut?
  • How do I understand aspects of aspect oriented programming?
  • What do you understand about SpringAOP Weaving?
  • What is the Introduction of SpringAOP?
  • A simple comparison between OOP and AOP?
  • JDK dynamic proxy and CGLIB proxy.
  • Explain the implementation principle of AOP based on Schema in Spring framework.
  • How to implement AOP based transaction management in the Spring framework?
  • Talk about your understanding of the design idea of inversion of control?
  • How to understand the Spring IOC container?
  • How many IOC containers are available in Spring?
  • How does Spring IOC manage dependencies between beans and avoid circular dependencies?
  • Understanding dependency injection for the Spring IOC container?
  • What are the singleton patterns and advanced features of Spring IOC?
  • What is the difference between a BeanFactory and a FactoryBean, and what is the difference between a BeanFactory and an ApplicationContext?
  • How does Spring address loop dependencies during Bean creation?
  • What about design patterns during Spring Bean creation?

The database

  • What storage engines does MySQL have? What’s the difference?
  • How do Float and Decimal store amounts?
  • Timestamp, Datetime, Timestamp
  • Char, Varchar, Varbinary
  • What is an index?
  • How about B+ tree index versus Hash index?
  • MySQL index type?
  • How to manage MySQL index?
  • Understanding of Explain parameters and important parameters?
  • What are the advantages and disadvantages of index and index classification?
  • What’s the transpose of a binary tree?
  • What is the difference between a clustered index and a non-clustered index?
  • How to optimize B+tree? What principles does the index follow? What automatic optimizations do storage engines do? When does an index fail?
  • What is the relationship between indexes and locks?
  • What are the other index types, and what are the pros and cons of each?
  • What about Innodb transactions?
  • Describe database transaction characteristics and potential problems?
  • What is MySQL isolation level?
  • How many transaction failure scenarios are there and how are they resolved?
  • What are consistent unlocked reads and consistent locked reads?
  • How does Innodb solve phantom reading?
  • How about Innodb row locking?
  • What are deadlocks and monitoring?
  • Self-growth and locking, locking algorithms, locking problems, what is locking escalation?
  • How does the thread of optimistic lock compensate for failure?
  • How to prevent deadlocks and ensure data consistency in high-concurrency scenarios (receiving red packets)?
  • MySQL > lock concurrency
  • What are the back tables and cluster factors?
  • What are the relationships between tables?
  • Understand the query optimizer module;
  • What is the basic idea of query optimization?
  • MySQL > separate read and write tables
  • What impact does the Query statement have on database performance?
  • What impact does Schema design have on system performance?
  • What impact does the hardware environment have on database performance?
  • What impact does table structure have on performance?
  • Index optimization?
  • What is the principle of JOIN?
  • What are the principles of Sql optimization?
  • MySQL table design and specification?
  • Describe the application scenarios of MySQL storage engine.
  • What are the common optimization methods for MySQL?
  • MySQL > alter database
  • MySQL Bottleneck Analysis?

The cache

  • What are redis data structures?
  • Redis cache penetration, cache avalanche?
  • How to use Redis to implement distributed locks?
  • How to solve Redis concurrency competition problem?
  • What are the advantages and disadvantages of Redis persistence? How to implement it?
  • Redis cache invalidation policy?
  • Redis cluster, high availability, principle?
  • Redis cache sharding?
  • Redis data elimination strategy?
  • Redis queue application scenario?
  • Distributed usage scenario (store session)?

Network programming

  • How does TCP establish and disconnect a connection?
  • HTTP interaction flow, HTTP and HTTPS differences, SSL interaction flow?
  • What does TCP’s sliding window protocol do?
  • What are the HTTP protocol methods?
  • The basic flow of Socket interaction?
  • Talk about TCP (connection setup, slow start, sliding window, seven-tier model)?
  • Webservice protocol (WSDL/SOAP format, different from RESTT)?
  • Tell us about the Netty threading model. What is zero copy?
  • TCP three handshakes, four waves?
  • DNS resolution process?
  • How does TCP ensure reliable data transmission?

distributed

  • What is the CAP theorem?
  • CAP theory and BASE theory?
  • What is final consistency? How is the final consistency implemented?
  • What is a consistent Hash?
  • What about distributed transactions?
  • How to implement distributed locking?
  • How to implement distributed sessions?
  • How can message consistency be guaranteed?
  • Load balancing?
  • Forward and reverse proxies?
  • CDN implementation principle?
  • How to improve system QPS and throughput?
  • The underlying implementation principles and mechanisms of Dubbo?
  • Describe the detailed process of a service from publication to consumption?
  • How do distributed systems do service governance?
  • How does messaging middleware solve message loss?
  • Dubbo service request failed.
  • Understanding distributed transactions?
  • How to achieve load balancing and what algorithms can be used to achieve it?
  • What is the purpose of Zookeeper and how does election work?
  • Talk about vertical splitting of data horizontal splitting?
  • Working principles and Application scenarios of ZooKeeper?
  • Mechanism of ZooKeeper Watch?
  • How can I handle the redis/ ZK node failure?
  • How to achieve unique sequence number in distributed cluster?
  • What MQ has been used, how has it been used, how does it compare to other MQS, and is the connection to MQ thread-safe?
  • How is the data of the MQ system guaranteed against loss?
  • Can you think of any strategies for dividing databases into tables?

Summary of interview experience

Be very careful about what you put on your resume. Be very familiar with what you put on your resume. Because most of the time, the interviewer will ask based on your resume;

It’s also important to have a project that’s on the table, and this is likely to be the place where the interviewer will ask a lot of questions, so take a good look at the projects you’ve worked on before the interview;

Talk to the interviewer about basic knowledge such as the use of design patterns, multi-threading, etc., based on specific project scenarios or how you use them in daily life.

It is recommended to find out the values of the company and determine if you are a good fit.

In addition, I personally feel that the interview is also like a brand new journey, failure and victory are common. Therefore, I advise you not to lose heart and morale because of the failure of the interview. Don’t be complacent because you passed the interview, you will be a better future, continue to work hard!

Finally asked for the above interview knowledge I summarizes the Internet company’s Java programmer interview involves most of the interview questions and answers into a document and architectural video data Shared with big free, hope I can help to you and find a good job of before the interview, also save you search for information on the Internet to learn, You can also follow me for more dry stuff to share.

Forward + followClick here to get the document collection method