3

background

I have been in my old club for five years, working for a total of seven years, and have been in two companies. Resigned on January 5-30, 2021-2. The company is small in scale and the project pressure is not great, because it is not graduated from 985/211, and it recruits undergraduates and majors in computer science. Goal: Medium and large companies, preferably large companies, hahaha, but don't hold out hope, after all, the background is not very good. Next, I will record my interview experience in a diary, hoping to help everyone!

ready

Write a resume, go home from get off work 7-12 o'clock every day, watch videos, blog, and watch interview questions. Learning content: Java learning video + interview . Preparation content: Java foundation, thread pool, lock, MySQL index, transaction, Spring, collection, etc.

2021-5.30

It has been more than 20 days since I mentioned the resignation. Today, the boss signed the letter and completed the resignation procedures. "Direct Employment of XX" uploaded the resume and refreshed the resume. "Supply Chain Department of Some East" called to ask if my academic qualifications are recruiting undergraduates, and asked me to go for an interview tomorrow afternoon. But he can be regarded as a big company. What if he has no interview experience, he is very nervous, it doesn't matter, let's start! Hey, there is a piece of news. I saw a screenshot that my classmate sent me. It turned out that he brushed my resume. He said to help me push it in. I was still very excited. Introducing company: "Taxi"

2021-6-01

I got up at 5:30 in the morning and started watching videos, reviewing information, and preparing for the interview. I didn't eat until 12:00. The company is too far away. In Yizhuang, it takes two hours to get there. When you exit the subway, you will see their building. I found the department and gave Zhang interview questions.

  • What are the common points and differences between HashMap, HashTable and ConcurrentHashMap?
  • How to implement Spring's init-method and destroy-method?
  • Say several ways to achieve idempotence?
  • Say several ways to implement distributed locks?
  • There is a List collection, multi-threaded calculation of the total, speak your thoughts and the framework used.
  • An open question, counting triangles

After finishing the question, I felt quite OK. An interviewer came, about 30 or so.

  • Self introduction
  • Introduce the project
  • JVM memory model
  • The underlying implementation of MySQL transaction isolation?
  • What about MySQL index?
  • What should I pay attention to when hitting the index?
  • List<int style="margin: 0px; padding: 0px;">Remove duplication, write code, and investigate the basics</int>

Two sides: department head

  • Have a brief chat and introduce the team's business. Do you have anything to ask? Wait for notification. (It is said that "Taxi Taxi" is pushed inside, why don't you call me, forget it, maybe I haven't done my resume, but I am lucky if I don't see it now)

Summary: I need to add more details about the underlying implementation of MySQL transaction isolation, and look at the details of the JVM.

Received an interview invitation from the company "XX Renting a House". I will meet next Monday afternoon, and I will be preparing on Saturday and Sunday.

2021-6-04

Take the subway to the company building. Hello, here for an interview. After receiving an interview question, I went to the third floor lounge, where a lot of people looked like a vegetable market. I wiped it, the pressure of competition is so great, I took a look at the interview questions, a lot of them won't, forget it, don't do it, let's go. It's all here, try it. Start to do the problem.

  • String new String relationship ==, equals
  • Two linked lists intersect, find the point of intersection
  • Three threads print ABC sequentially
  • If aab and aba are equal, give two strings to judge whether they are equal
  • Draw the architecture diagram of RPC

One side: a technical officer who speaks softly.

  • Self introduction
  • String, new String, why is this question so chosen? the reason?
  • Talk about the project
  • Handwriting a singleton
  • JVM memory model, can the Java stack allocate objects?
  • Speaking of the class loading process, have you read the source code of the parent delegation model? introduce
  • Under what circumstances will the stack overflow?
  • What about stack frames?
  • Do you understand MySQL index? Draw it?
  • From a business perspective, how to design a MySQL database? What are the optimization points?
  • Do you understand garbage collection? introduce?
  • Tell me about the principle of AOP? Can Cglib proxy final methods?

The interviewer said to me: I think it's ok, wait a minute, our leader will have a meeting, and let HR inform you that it is another day. : Okay, let's go home.

Classmate WeChat: Did our HR call you? : No, then I will let him make an appointment with you.
HR: Hello, in order not to delay time, I will invite you to interview by phone. (Classmates intervene)
HR: Hello, come to the company for an interview on Friday. . . .

2021-6-05

I was in peace and helped my cousin’s friend deduct 9 points from my driver’s license. . . In the afternoon, I went to an interview with a company, but the interviewer didn't receive a call, and the security didn't let me ask. Forget it, let's leave.

2021-6-06

Re-examination of "XX Renting a House". The interviewer is very young, two years older than me. He is already a R&D manager. Look at me. Hey. . . .

  • Why doesn't the project use the RPC framework?
  • Do you know RPC? , Draw a flowchart?
  • What is the difference between RPC and HTTP protocol?
  • Are long connections physically real?
  • Tell me about the project?
  • What should I do if the MQ message is lost? Is sending a message an atomic operation?

Three sides: Director of R&D

  • What about the lock? What?
  • Thread blocking introduced from the perspective of the operating system?
  • I can't remember the others

Four sides in the afternoon: Technical Director

  • HTTPS flow
  • What do you think you still lack?
  • How to learn?
  • Nonsense, OK, sign, hired

HR talk about offer, go home.

2021-6-07

"XX You Xian" at two o'clock in the afternoon, looking for the building for a long time. There are several floors in the company, I have never seen such a battle. Go upstairs and wait for a while, there are no interview questions.
one side:

  • How was your project split? Why is it so dismantled?
  • How to ensure high service availability?
  • What should I do if MySQL fails? (Hang up, I am ashamed that the company did not achieve high database availability...)
  • The project experience is a bit poor, so I won’t ask you questions about the Internet project.
  • Talk about the WebSocket protocol
  • Talk about the HTTPS protocol

Two sides:

  • Does SpringBoot understand? What is the difference with Spring?
  • What if I want to do customized development?
  • @Conditional say something
  • The propagation mechanism of the transaction?
  • Talk about MySQL index?
  • The principle of reentrant lock? (State, AQS)
  • Split the service, do you understand the service governance?

HR: After a brief chat, why didn't you leave your job for five years? You are rare. There is another round of interviews for the department boss. You should go back first. Call us.
Receive notice in the evening, call for interview at 6 o'clock on Friday.

2021-6-08

The time to come is finally here, and it's time to face the final BOSS. Fortunately, I didn't need to take the subway. I watched a few videos in the morning and prepared a bit. At 12 o'clock noon, I took a bath and cleaned up. Starting off by bike, I felt very nervous. After riding a bike to the place, the company LOGO came into view, two buildings. Call HR, receive reception, go upstairs, wait a while, a young interviewer comes over.

  • Design a spike system and talk about your ideas. (I wipe it!!!)
  • How to design the current limit?
  • How to deduct inventory? Can decrby?
  • What should I do if inventory deduction fails?
  • Draw the project structure?
  • a,b,c joint index, can a=1,b=1,c>1 hit the index? Can a=1,b>1,c=1 hit the index?
  • What about JVM heap? What are the scenarios that trigger Full GC?
  • Talk about the G1 garbage collector? How are the young generations distributed in the old age?
  • What should I do if there is a Redis lock error?
  • What should I do if there is a problem with Redis deducting inventory?
  • Design a transfer system? A->B transfer 100 yuan, any ideas?
  • What are the persistence methods for Redis?
  • Will Redis data be stored on disk?
  • Why is Redis so fast?
  • Linux statistics of top10 IP access logs, which commands are used? (will not)
  • What commands did Linux itself use?
  • How to view Dump log? How did it happen? What are the commands?
  • A thread pool, 10 cores, 100 maximum threads, 100 queues, and 10,000 requests come in. Describe how the thread pool works? What should I do if I refuse?
  • Let’s examine the basics, what is the difference between String new String? (== equals)

Second side: (asked several repeated questions on the other side, I repeated it again)

  • What are the difficulties in the project? (Activity registration is overcrowded, think of spikes)
  • How to deal with the spike scene?
  • Can Redis decrby be used for inventory deduction? How to do? (Lua can be used to ensure atomicity)
  • Lua is too heavy, is there any other solution?
  • How to restore inventory?
  • It’s not enough to prevent oversold. How to deal with unpaid orders?
  • How to prevent the user name and password from being stolen? (Js encryption, no, it can still be cracked, oh, https...)
  • Talk about the process of https?
  • Have you learned about asymmetric encryption algorithms? What about symmetric encryption algorithms?
  • c,b,a index problem, can c=1,b=1,a=1 hit the index? Can c>1,b=1,c=1 hit the index? why?
  • How does the comment business distinguish between modules? (bizId)
  • What should I do if a certain business blows up the database? (Sub-database, split service, separate deployment, what else? MQ)
  • Do you understand current limiting? Downgrade? Forget it, you haven't touched it either, don't ask. (ORZ)
  • Linux statistics of top10 IP access logs, which commands are used? (will not)
  • Tell me about your understanding of the structure of HashMap. What if the keys are the same? Is the linked list inserted before or after? Where's the red-black tree?
  • What Linux commands have you used? (Mkdir, ll, etc...Linux is indeed my weakness, I will make up for it in the future.)
  • 1 2 2 3 3 4 4 5. How to determine the index position of 3? (Counting statistics, O(N) O(N), is there a better way? Loop it. (The correct answer dichotomy, I mentioned, but the idea is wrong, I was approved)
  • How to do GIT team development? What if there is a feature that does not need to be online?
  • If maven package conflicts, what problems will there be if it is not resolved? How to solve the problem of package conflicts?
  • Design Dubbo's thread pool? Each request is 50ms 200 QPS, the client timeout is 500ms, how to design? How about making 200 requests directly? How big is the queue? How big is the thread pool? (Bad answer)
  • Integer a1=10000 Integer a2=10000, they == the result? How can it be equal? (Equals, == reference address for comparison, inspect Integer cache)
  • What about Integer a1=100 Integer a2=100? Can the parameters be set? How to set it up?

Department boss:

  • Are you a classmate so and so? (Roommate)
  • Tell me about your future plans?
  • Technology growth? What are the business options?
  • Don’t just look at the technology, but be familiar with the business
  • If the DB is going to hang up, what methods should be used to solve it? (I talked about some plans I think, but obviously they are not... After all, I have never touched it, so I can only understand it myself)
  • How to count QPS? Do you understand the frameworks on the market? How to achieve it, the principle?
  • They have asked what they should ask, let’s talk about non-technical ones.
  • Wait a minute, I will let HR find you.

HR surface:

  • Reason for leaving?
  • How did you leave your job in five years?
  • expected salary?
  • Wait for news on Monday.

Have a brief chat with classmates. My classmates said that my answer was okay, but with less experience. (Hey, small companies have a small business volume, and they really suffer). Take it easy! I said, I am content with this interview opportunity! ! ! Otherwise, my resume will definitely not pass.

to sum up

​ It is true that you have to prepare more before the interview, but it is better if you have actual combat experience. No wonder it is easier for a big factory to jump to a big factory. Don't be discouraged by small companies. Some companies don't look at projects. It depends on your understanding of high-concurrency projects. Even if you haven't done it before, you can have your own plan. The foundation must be solid. Don’t just memorize the theory. You should have a deeper understanding. The deeper you understand, the better. Although you can build rockets during interviews and screw screws at work, are you afraid that you can’t screw the screws if you have the ability to build rockets?

​ For a whole week, a total of four companies, the final result is still acceptable. JVM and MySQL must be mastered. Other basic knowledge must be firm and used in actual combat. Otherwise, no matter how much you learn, it is also theoretical. The Linux operating system must make up for it. Since you have less experience in high concurrency scenarios, this can only be done in business volume. Only larger companies can learn.

​ In addition, the information on the market, whether paid or non-paid, is really helpful for interviews, but if you have a good project match, it is better, otherwise the interviewer can't ask.

​ Don't ask me why I haven't resigned for five years. I don't know. Is it a good thing or a bad thing?

​ Overall, I feel that I have barely passed the preparation, but it is still not good enough. I should be able to answer better. It reminds me of a sentence that you could have done better. So, warn yourself not to waste time, study more, and sum up more. Fortunately, thank you again for your introductory suggestions, thank you.

I would like to recommend my learning materials to everyone here, which has gained me a lot, and also allowed me to answer during the interview [160e7211ae87c2 Java learning video + interview ]

Update on June 11, 2021

已经收到 offer。很开心。往后继续加油,像大牛看齐!

Java架构师
182 声望70 粉丝