Ant Financial took 6 sides and successfully bluffed the interviewer to take 36K. Suddenly I felt that the Java interview seemed not too difficult...

Ant Financial-before the interview

Ant's interview is quite unique. There is no HR appointment time for each round of interview. Generally, the interviewer calls at around 8pm and asks if the interview is possible. If possible, start the interview. You cannot just make an appointment at another time.

There are 6 sides in the whole process, the first five sides are technical sides, telephone interview, and the last side is HR side, on-site. The big guy said that the technology must be mastered. In fact, the interview questions can also be memorized. If he has time in advance, he can look at the interview questions in advance, maybe some questions can be answered better, which can play a role of embracing the Buddha.

Note: Here we have prepared the latest and most complete collection of 2020 interview questions for the first-line Java manufacturers: JAVA basic-intermediate-advanced interview + SSM framework + distributed + performance tuning + micro Service + Concurrent Programming + Network + Design Pattern + Data Structure and Algorithm, click here  !

  • Part 1: Java Basics-Intermediate-Advanced

  • Part 2: Open source framework (SSM: Spring+SpringMVC+MyBatis)

  • Part 3: Performance Tuning (JVM+MySQL+Tomcat)

  • Part 4: Distributed (current limit: ZK+Nginx; cache: Redis+MongoDB+Memcached; communication: MQ+kafka)

  • Part 5: Microservices (SpringBoot+SpringCloud+Dubbo)

  • Part VI: Other: Concurrent Programming + Design Patterns + Data Structure and Algorithms + Network

one side

  • Introduce yourself

  • Ask project experience, talk about "data synchronization"

  • Then I talked about the K8S project

  • Are there any technologies that have been studied more deeply? (Big guys: kubernetes, golang, prometheus, java)

  • What is the architecture of kubernetes?

  • This problem is very big. I split it into apiserver, controller, kubelet, and scheduler.

  • Comparison of golang and java

  • This problem is very big. At that time, I mainly compared the difference between vm, coroutine support, object-oriented and generics, and some understanding of their respective usage scenarios.

  • Golang's gc algorithm

  • I know it’s a three-color mark, but I can’t tell the details

  • Randomly select 10 characters from an unlimited character stream

  • I haven't seen it before and I haven't figured it out. I checked it is the reservoir sampling algorithm, the classic interview questions, and I suffered a lot if I didn't brush the questions.

  • How to extend kubernetes scheduler so that it can handle large-scale node scheduling

  • Single node speedup: select some nodes at random during the optimization stage; expand the scheduler node horizontally, and the pod does a consistent hash to determine which scheduler schedules.

  • What do you want to ask me?

On the one hand, it was actually a bit stiff. The boss himself didn't let go. The interviewer didn't give any feedback or in-depth response to the boss's answer. They were all "oh good" and passed. So the boss felt that he had actually hung up at the time (if he was not interested in the candidate, he sometimes just walked through the scene after asking the question), and was surprised when he received a second call.

Two sides

  • Let’s talk about the project first

  • What changes have been made to Prometheus?

  • What did the self-developed configuration center specifically do?

  • Have you used any advanced features of MySQL?

  • I don’t understand it here. I asked what is an advanced feature, and the interviewer switched to the next question

  • How is the core data table of the configuration center designed?

  • Why use Redis in business, and what are the advantages of Redis?

  • Single thread: Concurrency safety; high performance; rich primitives and data structures; widely used, low cost of pitting

  • Are you familiar with the implementation of data structures in Redis?

  • Said a zset jump table

  • Which data structures of Redis have been used, and in what scenarios?

  • What parameters can be configured to initialize a thread pool in Java, and what are their functions?

  • Which JVM parameters have been tuned for Java applications written by myself, and why are you tuned like this? (I’m asking, the big guys only know the basics of maximum heap and minimum heap, G1, GC log and OOM dumper)

  • Are there any parameters when using Jetty? Why do they match?

  • Jetty QTP wait queue is configured to be unlimited, do you think it is okay? Is there any problem?

  • Which commands in Linux Bash have you used, and why do you use them?

  • A written test question: You need to answer in the given link, you cannot google, you cannot jump out, and you cannot use IDE:

The title is this:

Start two threads, one outputs 1,3,5,7…99, the other outputs 2,4,6,8…100 and finally STDOUT outputs 1, 2, 3, 4, 5…100 in sequence

Boss: Use Go to achieve it. Interviewer: No, use Java's notify mechanism to achieve Boss:: (I haven't realized the seriousness of the problem) Then use Java BlockingQueue. Interviewer: Say no, require Java's wait + notify Mechanism to achieve

Because I haven’t written wait + notify at all, I can only say that I won’t. The interviewer said that’s OK, you can write it with go

Finally, I implemented a version with go channel, but I couldn't run the code on the given webpage, and I didn't know whether it was written correctly, and the interview ended.

This round of interviewers continued their one-sided style, and rushed to the next one after asking one question. They didn't seem to show interest or approval for my answer. So after this round, he thought he might have died again...

Three sides

  • Still talk about the project first

  • I am very interested in monitoring alarm items, and asked a lot of details. Finally, I asked a question: Now I want you to implement a query language that is not weaker in semantics than PromQL. Can you implement it? (Although I have seen some Prometheus code here, I actually didn’t take a closer look at the lexer and parser parts of PromQL. Okay, because I wanted to write declarative Stream SQL in the data synchronization project, I studied a little about ANTLR. I used ANTLR to write grammar + AST traversal plug query logic to fool it.)

  • What do you think is the most in-depth project (data synchronization of course)

  • Chat data synchronization project

  • Ask how well you master Linux? (I haven't learned it systematically, basically it is accumulated by my own operation and maintenance)

  • How do you master Golang? (After half a year, I have seen effective go)

  • How is the algorithm mastered? (Up to the picture is fine)

  • Ask the shortest path algorithm (just remember dijkstra, describing the code flow)

  • How is k8s mastered? (I haven't written controller and scheduler myself, but I am familiar with the concepts, and I have read the source code of these parts of xxx)

  • How is k8s' exec implemented? (This problem is in my mind. I wrote the small homework of PingCAP before and I am very familiar with this one)

This round of chat is much smoother. At the same time, I found that the interviewers of Ants seemed to like to let you evaluate yourself: "How do you think you have mastered xxx?" (There are only five interviewers, the sample is not big enough to count). In fact, I panicked to death with these kinds of questions. , I’m afraid I can’t answer if I blow my head too far. If I knew it, I would preview how to brag.

All sides

  • Introduce yourself

  • How do you think you have mastered the basic knowledge

  • What data structures are usually used?

  • What are the advantages and disadvantages of linked lists compared to arrays?

  • How to judge whether two acyclic singly linked lists have intersections

  • How to judge whether two singly linked lists with rings have intersections

  • How to judge whether a singly linked list has a ring, and find the point of entry

  • What is the difference between TCP and UDP?

  • Describe the process of TCP waving four times

  • What status does TCP have

  • What is the LISTEN status of TCP

  • What is the CLOSE_WAIT state of TCP

  • What are the steps to go through to establish a socket connection

  • What are the common HTTP status codes

  • What is the difference between 301 and 302

  • What is the difference between 504 and 500

  • What is the difference between HTTPS and HTTP

  • Write an algorithmic problem: handwriting quick sort

The basic knowledge of this round of the whole questioning, if the foundation is solid, there is no problem, but the big guy feels a bit like the school recruiting questioning method.

Five sides

  • Introduce yourself

  • What secondary development have you done on k8s?

  • Have you built a chart with Helm yourself? What?

  • Have you considered encapsulating a PaaS platform for R&D?

  • What did the configuration center do?

  • Why not use zookeeper?

  • How does the configuration center ensure consistency?

  • Singleton Bean is used in Spring. How to ensure concurrency security when accessing Bean fields?

  • Use concurrency safe data structures, such as ConcurrentHashMap; or add mutex locks

  • What if I still want to isolate the data of two threads?

  • ThreadLocal, and then gave an example

  • What is escape analysis in Golang? How to avoid memory escape?

  • I don't know this, I'm sorry

  • Compare the GC of Golang and Java

  • Answered CMS, G1, and three-color markers. My point of comparison is that JVM has generational collection, but Go's Runtime does not, so I can’t explain it in depth.

  • What is the timing of Golang's GC trigger

  • Threshold trigger; active trigger; two-minute timing trigger;

  • Have you ever written the Operator or Controller of k8s? (Boss: never wrote)

  • Talk about your understanding of microservice architecture

  • The general idea "The essence of microservices is the evolution of personnel organization and separation of concerns"

  • Talk about your understanding of Serveless

  • The general idea is "Serveless is another boundary division between application development and infrastructure providers after docker and container orchestration"

  • Do you think Serveless is the future? Why?

  • The general idea "is the future of cloud services. Cut the cake away from the enterprise's IT, operation and maintenance, and middleware departments, forming a scale effect. The more you do, the more you earn; in the company, servless can help accelerate the front-end business iteration, but I still don’t see the benefits of the middle and back office. In the future, there may be an architecture that is more suitable for the middle and back office than servless."

Interviewer: What do you want to ask me in the end?

Big Brother: Why are there five technical rounds and two of them seem to have nothing to do with k8s?

Interviewer: We think you have done a lot of things, and we want you to try it in all directions

Me: Is this the last technical round?

Interviewer: Not necessarily

Later, I asked the interviewer some business-related questions, so I won’t repeat them.

The last three water blowing questions of the five sides said they were quite interested, but unfortunately the interviewer just listened to him and did not discuss with him. Also, after asking the interviewer, I learned that the two-sided interviewer is from the PaaS platform, so the main question is that Java does not involve k8s and go.

Six sides (HR side)

I have heard that the HR of the Ali department is here to "smell the taste" (see if you suit Ali's style) and have a veto. So it's still quite stressful.

  • Ask experience

  • Why should we consider it?

  • The golden sentence: "Now I have encountered a bottleneck in my technological growth, and I have always admired your company and have been relaxed.""

  • What is the company's main business now? (I have asked a lot about the technology, I feel like I want to test my ability to explain complex problems)

  • Bring someone now? What is the report level?

  • Are you satisfied with your experience over the past few years?

  • Do you think you have any shortcomings?

  • Have you encountered anything frustrating?

  • What is your future career plan?

  • When looking at opportunities, do you mainly consider salary, platform, personnel, or other factors?

  • How is the treatment now

  • What do you want to ask me?

The overall chat was more than 40 minutes, and the topic was quite broad. The interviewer also said that the system department is under a lot of pressure, and only talents can stay.

The boss feels that there is nothing to prepare for in the HR side except for the salary part, so you can just say what you want. Because when you get to the HR side, at least it proves that your technique is okay. Speak straight so that HR can judge whether the values ​​on both sides are in sync. If it is really out of sync, then it’s actually much better to hang on the HR side than to regret and change jobs after entering. No one likes resumes that frequently change jobs.

summary

I asked some subjective evaluations afterwards:

  • Interview difficulty: normal

  • Interview experience: Not bad, it doesn't feel so difficult. (Anyway, I'm sour)

  • Problem bias: basic knowledge, common sense development, technical insights

Ant’s interview style is relatively "cold", and the interviewer’s unanimous feeling for the boss is very strong, crouching tiger, hidden dragon. In terms of the interview content, there are relatively more investigations in the basic knowledge part. There are no problems of partiality and curiosity. Students with solid basic knowledge can boldly vote for ants.

Finally, free Java architecture learning materials are provided, including: architecture foundation, open source framework, distributed, microservice, high concurrency, network, etc., click here 

  • Java Architecture Advanced Architecture Foundation ( Java Foundation+Concurrent Programming+JVM+MySQL+Tomcat+Network+Data Structure and Algorithm )

  • Advanced Java Architecture Open Source Framework ( Design Pattern+Spring+SpringMVC+MyBatis )

  • Advanced Java Architecture Distributed Architecture ( Current Limiting (ZK/Nginx) + Cache (Redis/MongoDB/Memcached) + Communication (MQ/kafka) )

 

 

  • Advanced Java Architecture Microservice Architecture (RPC+SpringBoot+SpringCloud+Dubbo+K8s)

[JAVA Interview Collection]+[Java Advanced Core Knowledge Collection]: https://docs.qq.com/doc/DVklUZXFObHZYcVdl

 

 

 

 

 

 

 

 

 

 

Guess you like

Origin blog.csdn.net/mifffy_java/article/details/109293397