background

Five years in the old company, a total of seven years, experienced two companies. 2021-5-30 to leave. The company scale is small, the project pressure is not big, because it is not 985/211 graduate, unified undergraduate, computer major. Target: medium to large companies, preferably large companies, hahaha, but no hope, after all, the background is not so good. Next, I will write a diary to record my interview experience, I hope to help you!

To prepare

I write my resume, watch videos, brush blogs and read interview questions from 7-12 PM when I go home after work every day. Learning content: Java learning video + interview questions. Preparing content: Java basics, thread pools, locks, MySQL indexes, transactions, Spring, collections, etc.

2021-5.30 –

The resignation has been more than 20 days, today the boss signed, did the departure procedures, “so and so direct employment” upload resume, resume refresh. “Some east supply chain department” made a phone call to ask whether my academic record is unified recruit undergraduate course, about me tomorrow afternoon to interview. But he is also a big factory, no interview experience how to do, in the mind very uneasy, it doesn’t matter, start refueling! Hey, there is a message. I saw the screenshot sent to me by my classmate. It turned out that he had brushed my resume and said that he would help me to push it inside. Intra-Promoted Company: Taxi Call

The 2021-6-01

I got up at 5:30 in the morning and began to watch videos, brush materials and prepare for the interview. I didn’t eat until 12:00. The company is so far away, in Yizhuang, it takes two hours to get there. When you get out of the subway, you will see their building. Find the department, give an interview question.

  • What are the similarities and differences between HashMap, Hashtable, and ConcurrentHashMap?
  • Spring init-method, destroy-method, destroy-method
  • How many ways are there to be idempotent?
  • How many ways to implement distributed locks?
  • There is a List set, multiple threads sum up, and say what you think and what framework you use.
  • An open question, counting triangles

Finishing the topic, the feeling is relatively OK, to an interviewer, about more than 30 or so.

  • To introduce myself
  • Introduce the project
  • JVM memory model
  • The underlying implementation of MySQL transaction isolation?
  • MySQL Indexing:
  • What should I pay attention to when hitting an index?
  • List

    to double, write code, check base

Second interview: department head

  • Have a brief chat and introduce the business of the team. Any questions? Wait for notification. (said good “taxi” push, zha also don’t call me ah, forget it, may not resume, but now look not to go is also lucky)

Summary: MySQL transaction isolation implementation details need to be added, JVM details in more look.

Receive “so-and-so rent a house” company interview invitation. We will meet in the afternoon of next Monday, just as we are preparing for Saturday and Sunday.

The 2021-6-04

I took the subway to the company building. Hello, I’m here for an interview. Get an interview question, came to the rest room on the third floor, a lot of people like the market. I wipe, the competition pressure is so big, looked at the interview question, a lot of not, forget it, don’t do, go. B: Here you are. Let’s try it. Let’s do it.

  • String new String == equals
  • Two linked lists intersect. Find the intersection point
  • The three threads print ABC sequentially
  • If aab and aba are equal, give them two strings and judge whether they are equal or not
  • Draw an architectural diagram of RPC

One side: a soft-spoken technical officer.

  • To introduce myself
  • String, new String, what is it called? The reason?
  • Let’s talk about the project
  • Handwrite a singleton
  • The JVM Memory Model, Can Java Stack Allocate Objects?
  • Talk about class loading. Have you seen the parent delegate model source code? To introduce
  • When does the stack overflow?
  • What about stack frames?
  • Do you know about MySQL index? A painting?
  • From a business perspective, how to design a MySQL database? What are the optimization points?
  • Garbage collection? Tell me about it?
  • How does AOP work? Can CGLIB proxy final methods?

The interviewer said to me: I think it’s OK. Please wait for a moment. Our leader will have a meeting and ask HR to inform you that we can meet another day. : All right, start home.

Classmate WeChat: Did our HR call you? B: No, then I’ll ask him out. HR: Hello, in order to save time, I would like to arrange a phone interview with you. (Student intervenes) HR: Hello, come directly to the company for an interview on Friday…

The 2021-6-05

Nothing happened. I lost 9 points on my driver’s license for my cousin’s friend. In the afternoon to a company interview, the results of the interviewer did not receive a phone call, the security did not let me ask, forget, walk away.

The 2021-6-06

“So-and-so rent a house” second interview. The interviewer was young, two years older than me, and he was already a research and development manager. Look at me. Well…

  • Why didn’t the project use the RPC framework?
  • Know about RPC? Draw a flowchart?
  • What is the difference between RPC and HTTP?
  • Are long connections a physical reality?
  • Describe the project?
  • What if the MQ message is lost? Is sending messages an atomic operation?

Third side: R&D director

  • What about the lock? What are the?
  • Thread blocking from an operating system point of view?
  • I don’t remember the rest

Four: Technical Director

  • The flow of the HTTPS
  • What do you think you lack?
  • How did you learn it?
  • Bullshit. All right, sign and get hired

HR talk offer, go home.

The 2021-6-07

“So-and-so excellent fresh” 2 o ‘clock in the afternoon, looking for the building for a long time. Company several floors, I clean, never seen this battle. Go upstairs and wait. There are no interview questions. A:

  • How did your project break down? Why do you do that?
  • How to ensure high service availability?
  • What happens if MySQL fails? (I’m sorry, the company didn’t implement database high availability…)
  • Project experience is a little poor ah, I will not ask you about the Internet project
  • Let’s talk about the WebSocket protocol
  • Talk about the HTTPS protocol

2:

  • Does SpringBoot know? What’s the difference with Spring?
  • If you want to do custom development, what do you do?
  • @ Conditional said
  • What is the propagation mechanism of the transaction?
  • What about MySQL indexing?
  • How does a reentrant lock work? (STATE, AQS)
  • Split services, do you know about service governance?

HR: After a brief chat, why didn’t you leave for five years? You are very rare. There is still a round of department boss interview, you go back first, telephone. I was notified that evening. I had a phone interview on Friday at 6:00.

The 2021-6-08

It’s time to face the final BOSS. I watched a few videos in the morning and prepared for it. At noon, I took a shower and cleaned up. Riding off, the mood is very uneasy. Biking to the place, the company LOGO came into sight, two buildings. Call HR, receive, go upstairs, wait for a while, a young interviewer came over.

  • Design a seckill system and explain your thinking. (I wipe!!)
  • How to design current limits?
  • How to deduct inventory? Is Decrby OK?
  • What if the inventory deduction fails?
  • What is the structure of the project?
  • A, B, C joint index, A =1, B =1, C > A =1, B = >1, C =1 can I hit the index?
  • What about the JVM heap? What are the scenarios that trigger Full GC?
  • What about the G1 garbage collector? How to divide the old and the young?
  • What about Redis lock error?
  • What if Redis has a problem deducting inventory?
  • Designing a money transfer system? A->B $100, any ideas?
  • What are Redis persistence methods?
  • Will Redis data be stored to disk?
  • Why is Redis so fast?
  • Linux statistics Top10 IP access logs, which commands are used? (don’t)
  • What commands does Linux use on its own?
  • How to view Dump logs? How did it happen? What are the commands?
  • A thread pool, 10 cores, 100 Max threads, 100 queues, 10,000 requests calling in. Describe how the thread pool works? What if I refuse?
  • So let’s look at the basics, what’s the difference between String new String? (= = equals)

The second interview :(asked several repeated questions with the first one, so that I said it again)

  • What do you think are the difficulties of the project? (The activity is overbooked, which is associated with seckill)
  • How to handle seckill scenes?
  • Can we use Redis Decrby for inventory deduction? How to do? (You can guarantee atomicity with Lua)
  • Lua is too heavy. Any other plans?
  • How does inventory recover?
  • It is not enough to prevent overselling, but how to deal with the orders that have not been paid?
  • How to prevent the user name and password from being stolen? (JS encryption, no, still can crack, oh, HTTPS…)
  • What is the process of HTTPS?
  • What asymmetric encryption algorithms do you know? What about symmetric encryption?
  • C, B, A index problem, c=1,b=1,a=1 can hit the index? C >1,b=1,c=1 Why is that?
  • How does the review business distinguish between modules? (bizId)
  • A business to blow up the database how to do? (Split libraries, split services, separate deployments, what else? MQ)
  • Understand current limiting? The drop? Never mind, neither have you. Never mind. (ORZ)
  • Linux statistics Top10 IP access logs, which commands are used? (don’t)
  • Tell me about your understanding of the structure of a HashMap. What if the keys are the same? Is the list inserted forward or backward? What about red-black trees?
  • What Linux commands have you used? (mkdir, ll, etc… Linux is really my weak point, so I’m going to catch up with.)
  • So 1, 2, 2, 3, 3, 4, 4, 5, how do I find the index position of 3? (Count statistics, O(N) O(N), is there a better way? Cycle. (Correct answer dichotomy, I mentioned, but the train of thought is wrong, was criticized)
  • How do Git team developers do this? What if a feature is not online?
  • What is the problem with Maven if the package conflicts are not resolved? How do I resolve package conflicts?
  • Design a thread pool for Dubbo? Each request 50ms 200 Qps, client 500ms timeout, how to design? What about 200 requests? How big is the queue? How big is the thread pool? (Bad answer)
  • Integer A1 =10000 Integer A2 =10000, they == the result? How can they be equal? (equals, == the reference address of the comparison, using the Integer cache)
  • Integer a1=100 Integer a2=100? Can parameters be set? How to set it?

Department boss face:

  • Are you classmate X? (roommate)
  • What’s your future plan?
  • Technological growth? What are the business options?
  • Don’t just look at the technology. Know the business
  • If DB is going to hang, what are the ways to solve it? Said something I thought was the solution, but obviously not. After all, I have never touched it, so I can only understand it by myself.
  • How to calculate QPS? Are you aware of the frameworks on the market? How does it work? How does it work?
  • They’ve got everything they need to ask. Talk about non-technical stuff
  • Hold on, I’ll have HR call you.

HR:

  • Reasons for leaving?
  • Why did you quit your job in five years?
  • Expected salary?
  • Wait for news on Monday.

I had a brief chat with my classmates. My classmates said that my answer is OK, but I have less experience. (Well, small companies do suffer from small volumes of business). Take your time! I said, have this interview opportunity I already satisfied!! Otherwise, my resume would never pass muster.

conclusion

You do need to do a lot of preparation before the interview, but it’s better if you have actual experience. No wonder it’s easier to jump from Dachang to Dachang. Small companies should not be discouraged, some companies do not look at the project, look at your understanding of high concurrency projects, even if you have not done it, have their own solution is also OK. The foundation must be solid, not only back the theory, in-depth understanding, understanding of the deeper the better, although the interview to build rockets, work screw, you have the ability to build rockets also afraid of screw bad screw?

After a whole week of interviews with four companies, the final result was acceptable to me. JVM,MySQL must master, other basic knowledge should be firm, and should be used in practical practice, or learn more is also a theory, Linux operating system to catch up with, because of their high concurrency scene experience is less, this can only be learned in the business of large companies.

In addition, marketing materials, both paid and unpaid, can be helpful, but it’s better if you have a good project to go with it, otherwise the interviewer won’t be able to ask.

Don’t ask me why I haven’t left for five years. I don’t know. Is it good or bad?

On the whole, I felt that I had barely passed my preparation, but it was still not good enough. I should have been able to answer better, which reminds me of a sentence that you could have done better. So, tell yourself to stop wasting time, learn more, summarize more. Very lucky. Thank you again for pushing in. Thank you.

Here to recommend to you my learning materials, let me gain a lot, but also let me be able to answer in the interview process [JAVA learning video + interview questions]

Updated June 11, 2021

I have received the offer. Very happy. Go on, keep up with Daniel!