[Successfully landed ashore] I landed ashore. After working for 2 years, I successfully got Ali's offer in this autumn recruit. I have come to offer my interview experience and I wish!

Preface

What I have to say here is that making a wish online is really good. I hope that everyone will receive the offer they want before the double festival, and enjoy the double festival. Qiuzhao interviewed three departments of Ali, 11 times in total. In the end, the process chose health, and fortunately received a letter of intent for health. Among them, Ali made health interviews seven times, mainly because they did not enter the process twice before, and five times after entering the process (4+1). But generally speaking, it’s good to be able to enter Ali. After all, I have graduated for two years now! I hope to have a pleasant working environment after entering. Let’s talk about my facial nerves. I may not remember it very clearly, but The key points will be written below! I will also put my technical notes and source notes below, I hope this experience will be helpful to you!

In addition, I am here to prepare interview materials for first-line manufacturers and my original super hard-core PDF technical documents, as well as a number of interview questions from large manufacturers that I have carefully prepared for you (constantly updated). Friends in need click here to remark csdn , Just download it yourself! Hope everyone can find the job they want!

Ali side

  • The most impressive project ever? (Chat project)
  • What are the MySQL logs? What are they used for? (Undo log, redo log, binlog)
    database table and database? (I haven't practiced it, and I've talked about the theory of horizontal sub-table and vertical sub-table) How to realize the global unique ID of sub-database sub-table?
  • Database ACID?
  • The isolation level of database transactions?
  • Optimization ideas for slow queries?
  • After you did that project, how did you improve in the database? (Something about foreign key constraints)
  • How is the bottom layer of the put operation of Java HashMap implemented?
  • What are the parameters of the constructor of the thread pool?
  • What is the difference between Lock and synchronized?
  • The underlying implementation principle of the AtomicLong class
  • Thread status
  • Do you actually use too many threads? (No……)
  • Under what circumstances will deadlock occur?
  • JVM memory division?
  • Division of the Java heap?
  • Why do we have to split?
  • What does the garbage collector know?
  • Which objects will be garbage collected by the JVM?
  • What does GC ROOTS include?
  • OOM troubleshooting? (do not know……)
  • How does Java use reflection to get the fields of a class?
  • Common class loaders?
  • Which framework source code have you seen?
  • What is the difference between Spring @Autowired / @Resource?
  • The principle of Spring dependency injection
  • What are the scopes of Spring beans
  • The difference between session and cookie
  • How to identify session (session id stored in cookie)
  • HTTP message structure
  • HTTP status code
  • What are the Java IO models?
  • What is the difference between synchronous/asynchronous, blocking/non-blocking?
  • Does Netty understand? (Don’t understand...)
  • Talk about a few design patterns? What design patterns are used in Spring?
  • How does Java implement singletons?
  • CAP theory?
  • What are the ways to implement distributed transactions? (I don’t know...)
  • What is the architecture design of microservices?
  • cyber security? (I just talked about passive attacks, active attacks, etc. I don’t know much about this)
  • What are the Redis data types?
  • How are the future development directions considered?
  • Do you usually write articles/blogs?
  • Have you done other projects?

Two sides

  • Tell me about the project that you find the most difficult. Where is the difficulty?
    Answer: A microservice-oriented job programming platform that supports compilation and operation and stack visualization.

  • Tell me about the modules you are responsible for.
    Answer: Responsible for the encapsulation and microservice of compiled modules.

  • Tell me how to encapsulate it.
    Answer: C language is supported, so g++ and gdb are encapsulated.

  • Tell me about the commonly used commands of gdb (I asked this by the way on one side, here is a supplement)
    Answer: gdb -o, gdb -r, gdb -n, gdb -s

  • Which command in gdb jumps out? (I asked this by the way on one side, here is a supplement)

  • Can you talk about the compilation process of C language? Compilation and loading process (I asked this by the way on one side, here is a supplement)
    Answer: C source program header file ---> pre-compiled processing (cpp) ---> the compiler itself --> Optimizer --> Assembler --> Linker --> Executable file. Preprocessing is used to replace all #include header files and macro definitions with their real content. After preprocessing, the text file is still obtained, but the file size will be much larger. The next step is to compile the entire c file. In this step, the corresponding .s file is generated. At this time, it is some assembly code, such as mov AB. After this, there will be an optimization process, a certain rearrangement and the like, optimization. Then it is actually assembled into machine code. Then the generated machine code may reference a lot of external files, so use links to link external files. Here is the difference between dynamic link and static link, which is more memorable.

  • Under what circumstances are dynamic linking and static linking used?
    Answer: The static operation is fast, but the compilation is slow, and it takes up memory, and the library function update must be recompiled before it can be used. The dynamic compilation runs slowly, but the compiled program occupies less memory. The update of library functions does not need to rewrite the compiler, and only go back to link the required files when needed.

  • Does the project refer to open source projects?
    Answer: Yes, refer to eclipse che

  • What are the optimization points of the project?
    Answer: The original open source project has been changed in line with the actual situation of our project team.

  • For the understanding of microservices, springcloud and dubbo will talk about it.
    A: I talked about the main difference between the http call method. Others, such as registration center, or link tracking, gateways are similar in design. I compared Tars, which is also a microservice framework, and talked about my own understanding.

  • How to implement the rpc framework?
    Answer: The caller encapsulates various classes through the proxy mode. The proxy class makes remote calls, mainly for serialization. The remote end deserializes, obtains the data, and finds the calling class through reflection to execute the method. Then return to the result. Therefore, the caller uses the remote service as if it were a local class. (The requirement is the structure of the class, both on the caller and the non-caller)

  • What is proud of the university?
    Answer: Multithreading ability, monitor, minister, assistant counselor, develop online projects, issue SCI papers, part-time. Served multiple tasks together, and all maintained excellent grades, and obtained the qualifications for research.

  • Tell me about your shortcomings?
    Answer: I give myself too little time, I am exercising myself, and I don’t have time to think deeply about life.

  • Speaking of multithreading, how would you learn multithreading?
    Answer: Blogs, Mukenet, Zhihu, and netizens recommend book systems to learn. The monthly visit volume of my blog is stable and broken.

  • The paper talks about the principle.
    Answer: The re-identification paper talked about how to achieve it, and where is the innovation.

  • Talk about the database engine
    A: b+ tree, the advantage is that only leaf nodes have data, non-leaf nodes only record the key value, which is convenient for reading many keys at one time, so that a non-leaf node has many sons (a key points to a son) ), the tree becomes dwarf and flat, so the number of IOs will be less. In detail, once io is 16k by default, if a key is 2byte, then nodes with 8k sons can be read, and hundreds of thousands of data can be found in only 3 ios. And said that when scanning, you can perform range query to the right. Also talked about clustered key index and non-clustered auxiliary index. Back to the table phenomenon and index coverage.

  • Tell me how to find out that a thread has entered an endless loop?
    Answer: dump to export the stack information, check the status of the thread, whether it has been in the running state for a long time. If so, locate the method executed inside the thread. Then I was asked if there are any other options? Answer debug and look for it directly.

Three sides

  • Self introduction

  • Digging deep into the project, part of it is the analysis and troubleshooting of thread problems, and I asked how to look at the thread stack and what to look at? ,

  • How to identify the problematic thread?

  • If there is a project that the number of threads has been increasing slowly, what are the possible reasons and how to solve it?

  • What does the laboratory project do (because the laboratory project is a national project of engineering realization, there are more questions)?

  • What are you responsible for in the laboratory project? How is the corresponding algorithm designed?

  • The underlying implementation of Synchronized, how does the head change at each stage of the upgrade process from bias lock to weight lock? When will the lock escalation at each stage be triggered?

  • Explain the principle of AQS

  • What occasions are g1 and cms suitable for? What are the improvements in g1?

  • What's wrong with the counting method in the garbage mark algorithm

  • What causes the excessive number of syn_sent connections in the tcp connection process?

  • What are the transaction propagation mechanisms and what scenarios are they applied to?

  • A single increment array, move the front part to the end, how to find the largest one

  • Have you participated in any competitions before?

  • Written test scores are good, how do I learn algorithms?

  • Two ropes, each rope burned for 1 hour, the length of the rope has nothing to do with the burning time, how to measure 15 minutes

  • There are 100 stones, A and B are taken alternately, each takes 1-5 pieces at a time, if A takes first, the first time you take a few pieces to ensure that you will win in the end

  • Find the sum of the largest substring numbers

  • When sorting the data of a large file, the memory will definitely not fit, what should I do? (Answer outside row, divide and conquer + merge/loser tree)

  • Sorting ideas and process of heap

  • How does the structure of concurrentHashMap achieve thread safety? Do you need to lock the get method? Why?

  • The function and implementation principle of voliate, what are the memory barriers, and what is the use of examples?

  • What are the disadvantages of CAS and how to solve the ABA problem?

  • Why is Myisam faster than innoDB in read-only scenarios?

  • Digging deep into the internship project, have you considered automation to realize the corresponding functions, have you considered the optimization plan, and how to improve?

  • Why is HashMap not thread-safe, for example how it is thread-safe?

  • What do you usually use redis for?

  • Rhetorical link

to sum up

Finally, I prepared the Java architecture learning materials for everyone. The learning technology content includes: Spring, Dubbo, MyBatis, RPC, source code analysis, high concurrency, high performance, distributed, performance optimization, microservice advanced architecture development, etc. Friends in need can click here to remark csdn and download by themselves ! As a programmer, it is necessary to enrich one's knowledge reserves and enhance the depth and breadth of one's knowledge. In my opinion, the rewards will be as much as you pay.

There are also Java core knowledge points + a full set of architect learning materials and videos + first-line interview collections + interview resume templates + Alibaba Meituan Netease Tencent Xiaomi Iqiyi Kuaishou Bilibili interview questions + Spring source code collection + Java architecture actual combat electronics Share the book with everyone for free!

Guess you like

Origin blog.csdn.net/jiagouwgm/article/details/111565006