I talked to Ali’s interviewers in the last few weeks, so WRITE it down while I still have the memory. I have been working as a JAVA programmer for nearly 5 years. There’s no need to be too sarcastic. Ha ha. I have sent in my resume twice.
“In 2013
The first time was in 2013, when I had been working for three years, and the first round of interviews were relatively easy. The technical aspects of the project are overstated. For the second round, ask some basic questions and then you may forget. Failed.
“In 2016
The first round was a little more detailed,
Methods like Java Object,
Answer: toString equals hashCode wait Clone notify NotifyAll
And then hashCode is equal,equals is equal?
Answer: No, in general it’s agreed that equals equals equals and hashCode equals. HashCode is just a mapping of objects.
It is mainly used in collections to distinguish between different objects. Then he goes on to ask how objects with the same hashCode are distinguished in a HashMap,
Here’s my answer. A hashmap is made up of arrays and linked lists. The search for a Hashmap is based on the hash of the key and the linked list. Objects that are hash equal are stored in the linked list. You need to iterate when you’re looking.
If there are too many equal hash objects, then how to solve the effects of iteration. Then I asked about the difference between arrays and lists, and multithreaded knowledge.
In the second round, the interviewer will ask questions about your project, which is easier to answer
In the third round, I have to ask you what you understand about Spring IOC and how spring BeanFactory is implemented. Your understanding of dubbo, what serialization comes with it. Which is the default.
How does Dubbo know what’s going on inside the server state? Talk about the HTTPS process. Talk about how JVM optimizations are configured in the project.
My answer is that Spring loads beans through either dispath Servlets or filters, either with basic annotations or with basic BeanXML. The instantiation and management lifecycle is preserved through a map. In IOC terms, a map is equivalent to the concept of a window, why Spring can be a proxy, an interceptor.
Can be understood as a registration mechanism, this idea is relatively common.
Dubbo is the framework of RMI, which integrates ZooKeeper + Netty + Hessian + HTTP + WebService.
RPC is a dynamic proxy process, and dubbo is the encapsulation of serialization and input and the coordination of ZooKeeper. Common serializations include XML, JSON, and binary. In it he asked if the service for ZooKeeper could go down or if there was a problem.
Zookeeper was discovered when the server was registered. As for why it could know which server was down, it must be monitoring to discover the service through the heartbeat mechanism. However, I think in ZooKeeper, it is necessary to know which server has good performance, low CPU and low memory usage.
He asked the same question. I actually thought about it when I was watching ZooKeeper. For each service, it should provide external monitoring function API, just like springBoot has a special module to expose the server’s resource usage, whether ZooKeeper can monitor these data, rather than based on random or other methods.
And then there are two final questions one about the HTTPS process,
Https is simply a protocol that transfers server – client data through encrypted signatures. Both parties need to install certificates. The data submitted by the client is encrypted and sent to the server. The server decrypts the data through the certificate private key and verifies the signature.
And he said, you know what the big thing about HTTPS is? I guess what else could it be… Wanted to think. He said ‘anti-hijacking’, which is what signatures are made to prevent data from being modified. Of course, ‘anti-hijacking’ was more accurate, but I missed the point. After answering these questions, I obviously felt that I couldn’t.
Finally, I talked about JVM optimization, which parameters do you usually adjust, I said that usually set XMX and xx:persize parameters. And then he asked what do you usually set it to.
I said, 4G XMS 1G persize. Then parameter Settings have what basis. I said it depends on the project situation. If the project file is large, the amount of query data is large, and the function is complex, it will be adjusted higher.
The specific value also depends on the situation, generally can be based on the memory occupied by running under Tomcat. What are the differences between 32-bit and 64-bit memory Settings? I said 32bit can only be set to more than 1 gb, 64 should be said to be unlimited. Then he has an example, he has a 64 GB machine, set to 32 GB heap memory will not work.
I don’t think it’s appropriate to set so many without considering business development. Of course, I haven’t thought about a specific problem, and I don’t know what happens if I set it to half. General items are not actually adjusted. I don’t know what the ‘compress’ pointer is. Finally I couldn’t bear it.
I said I was project-oriented and didn’t have a particularly deep research framework. But the ability to read source code or solve problems is still there. That’s the end of the interview
Conclusion: I was abused, of course, or my skills are inferior to others. Want oneself to develop nearly 5 years to be still this kind of level too rub a point actually. Like Dubbo, ZooKeeper is also simple to understand and has not been used in actual projects. I’ve only talked about my own understanding of things like JVM tuning, which is even less in-depth. And that’s generally what those parameters are. Dubbo, ZooKeeper, AND JVM tuning in depth.
My technical expression ability is not very professional, I like to add my own experience to understand some technical points. The research direction is not so deep, generally speaking, I am a practical person. I can learn quickly, but I know the system may not be comprehensive. Of course, I will continue to work hard. Comprehensive establishment system learning words to group 230419550 learning Java advanced cattle live explain knowledge points, share knowledge, five stages are the teachers for many years of work experience combing and summarizing, with everyone to establish their own technical system and technical cognition comprehensively and scientifically!
Stage 1: Engineering techniques – Improve efficiency so you have more time to think
Stage 2: Source code analysis – Become a skilled programmer
Stage 3: High performance Distributed high availability – Getting into an Internet company is no longer your problem
Stage 4: Performance Tuning – I can do more than just be a programmer
Stage 5: Project Practice – Theory and time practice The distance from your dream is only on your toes
In addition, I also talk about the interview in Youku
1. Youku pays more attention to basic and expressive skills. You may be asked to graphically represent the structure of your project
2. Ask questions about the project
3. The final leadership will ask the reasons for leaving, as well as technical issues, design issues, high concurrency, isolation level, and Spring transaction control
Of course, I was stuck in the final leadership interview. Some values were not agreed, so I hung up later. What I might remember is how to count order information, intersection or union in large text without using data. I said I could use Java random read and save the data to map for comparison. And if there are 30 banks that need to be connected, how can you design
Maintain your confidence.
Lift to ask:
How do you do that if you need to limit the number of API requests per second.
My answer is:
It’s better to do it on the front system,lua script or something
Another is intercepting statistics through Spring AOP. Lock. (The interviewer said there is no lock, higher performance solution)
What I’m really saying is that decoupling has to be written in the business code. It should be at the gateway level. His higher plan didn’t give me an answer. Who knows?