Interview Summary--java the skills that senior engineer should master
In front of the interview also summed up a and two, the third may be more inclined to the inner monologue and interview skills summed up it ...
One, monologue
Before interviewing others, now it's their turn to find a job, how to say it, each interviewer's opinion is different, the way the interview is different, such as I interviewed others I like to ask the project he used those, and then for the use of technology to ask some questions, or some scenarios of some technical implementation is I particularly like to ask, For example, when your interface service data is truncated, how do you prevent the data from being submitted maliciously? Relatively speaking, Java bottom and base will ask a little bit less, of course, ask less than the representative does not ask, but to say that the focus is on your project and your design ideas. Of course, understand the foundation and the bottom of the better, so that you know it, more know the reason why, the written code and procedures more robust and maintainable. So, the foundation is still very important.
Now it's my turn to go out for an interview how to say, in fact, still very nervous, I thought I would not be so nervous or anxious, in fact, there are, in the not find the right job, even at night a little sleep, always feel that there is something pressing in my heart, sleep is not at ease. Since I can't sleep, it's better to look at the data, I have a habit, sleep before the problem, the next morning can think of the answer, before bedtime records, the next morning will be able to remember particularly profound, do not say nonsense, directly into the business.
Second, interview skills
1. Memorize your resume
Reason: The first question of the interview, is generally let you introduce yourself briefly, or introduce your recent project, and an interviewer, if not even his own resume is not familiar with the items mentioned in the project, the technology can not be described clearly, I think no company will accept this, even if you are super talent, You can not express yourself, you will probably have a headache, so remember: Be sure to memorize your resume, do not require you to write down, at least to memorize the last two companies you have been, the two companies you have done the project, you are responsible for the module, The technology that is used in the project and the corresponding technical implementation plan (this is particularly important).
2, in-depth understanding and memorize some Java basics
Why: Most companies, whether they're interviewing for a beginner or a senior, whether it's a written test or an interview, you'll ask a series of basic questions about the JVM, strings, collections, threads, and so on, and if every one of you memorize it by rote, it's the memory of the understanding, and the JVM, If you want to talk about your understanding of the JVM, you first need to know what structure the JVM has, what each structure is used for, and then consider how a Java object can be built into the JVM from creation to recycle. If you combine memory from these aspects, believe that it will take less effort and that you understand it more thoroughly. As for if you were to talk about the collection, for example, the different sets of arrylist, LinkedList, vectors, and so on, in the same way, you need to understand what the structure of each is, and you will know what the effect is, so you'll be more refined in your usual usage. And in the interview process, also not speechless.
3, maintain self-confidence and a heavy calm mentality
Reason: In the interview process, self-confidence is indispensable, I believe you can, interview on the way to their own say: I belive I can! Anyway, I am doing so, the heart of the ego hint it, in fact, in the face of the interviewer, you are confident that the state will let the interviewer think you are a very strong person, at least from the feeling will give you a high score. There is also a heavy calm, if you provide a technical solution or to say a technical principle, there's no need to be nervous. What all say, you can say to the interviewer: I think first, and then assemble their own memory knowledge, assemble the language, organized to say, so that you can better performance of your talent, is not it. Interview who will be nervous, I will be nervous, sometimes obviously remember the knowledge point forget, it does not matter, bold to say forget, or directly say don't know. Keep in mind that there is a part that doesn't matter, and if you know it, you should be the CTO level (a joke).
4, try to remember the interview process you do not answer or answer the problem of the wrong
Reason: The failure of the interview does not matter, after all, the requirements of each company are different, ask the question and you are good at the area may be a difference, but please remember that the interview in the process of those you can not answer the question, or you feel that the answer is not very accurate, write down yourself, if not, You can ask the interviewer on the spot if there is a good answer, if the interviewer is not willing to tell you (generally is the basis of the interviewer will not bother to answer you), then you go home slowly to check the information, if it is some specific technology, you can write their own case, after all, the knowledge point is so much, the problem hundred change, the principle unchanged, Interviewing is also a process of learning knowledge that allows you to understand the technologies most companies currently need or require. I don't know, I'll see you next time.
5, before going to the interview, it is best to understand the situation you want to interview the company (including product, project situation)
Reason: As the saying goes, knowing, win, interviewing is a battle, you need to know the basic situation of your interview, including job requirements, so that you can probably know you need to interview the company's technical requirements. Why do you get to know the company's main products and projects, is to give you a general understanding of the company's technical framework, including you may be a way of their implementation of questions and doubts, I believe the interviewer is willing to help you answer these questions. In this way, you have a picture of the performance, but also learned knowledge, why not.
6, reasonable arrangements for your interview time (if there are more than the company's interview opportunities, try to put the company you want to go to the last interview)
Reason: It is estimated that many people do not understand this, probably most of the people for how to arrange interview time is confused, random arrangements. But here is a trick, if there are multiple interview opportunities, you want to go to the most companies to the end of the interview, so you experienced in front of these companies screening, if successful is a chance, if not successful, but also for the final pave. But here are two points to consider: 1, you need to remember your resume of the company and the basic situation (this shows that you are not the sea) 2, if not remember, then you can answer a time, after the follow-up understanding of the company information, through the mail or other means with their agreement, adjust the interview time. and suggest to arrange a day of interview company not more than two, the best is the morning one, afternoon family, so you can have sufficient time to adjust the state.
Third, the basic summary of interview questions
1, the JVM structure principle, the GC work mechanism detailed explanation
A: Specific reference: JVM structure, GC working mechanism in detail, speaking of GC, remember two points: 1, GC is responsible for the collection of all no reference objects of memory space. Note: Garbage collection reclaims the memory space occupied by objects without any references, rather than the object itself, 2, GC recovery mechanism of two algorithms, a, reference counting method B, accessibility analysis algorithm (the accessibility here, you can see the basic 2 Java objects of what cycle), as for more detailed GC algorithm introduction, We can refer to: Java GC mechanism algorithm
2, the life cycle of Java objects
A: The creation phase, the application phase, the invisible phase, the unreachable phase, the collection phase, the end stage, the object space redistribution stage, and so on, specific references: Java object lifecycle
3, map or HashMap principle of storage
A: HashMap is composed of a structure of the array + linked list, specific reference: HashMap principle of realization
4, when the data table A, b field made a combination index, then use a alone or a separate use of B will have the index effect. (using like query How to have an indexed effect)
A: see A, B two fields to do the combined index, who is in front, who is in the back, if a in the former, then a separate use of a will have an indexed effect, the use of a separate B is not, and vice versa. Similarly, if you use a like fuzzy query, if you just use the preceding%, then there is an index effect, if you use a double% match, then no index effect
5, when the database storage date format, how to consider the time zone conversion problem.
A: Use timestamp for reason references: time zone conversion problems encountered in Java programming
6. What are the methods in the Javaobject class?
A: What are the methods of object
7, HTTP protocol, get and post the difference
A: Talking about the difference between get and post in HTTP
Iv. threading, Design patterns, caching
1, Simpledataformat is not thread-safe, how to better use and avoid risk?
A: About SimpleDateFormat safe time format thread safety issues
2, how to look at design patterns, and simply say your understanding of the Observer model
Answer: 1, the design pattern God horse uses 2, the Observer Pattern class diagram and realizes
3, the cluster environment, the session how to achieve sharing
A: 1, the Java cluster session sharing 2, session of the multi-server sharing scheme, there is a solution is to use a fixed server dedicated to maintain session, other server sharing
4, distributed, clustered environment, caching how to refresh, how to maintain synchronization.
A: How the cache is refreshed. 1, timed refresh 2, active refresh coverage, each cache frame has its own refresh mechanism, or cache failure mechanism, take redis and ehcache examples, they have their own outdated mechanism, another active refresh coverage, only need to obtain the corresponding key data coverage can be
B, how the cache remains synchronized. This redis has its own cluster synchronization mechanism, that is, replication function, specific reference: based on Redis distributed cache implementation, Ehcache also has a distributed cache synchronization configuration, only need to configure a different server address, reference: Ehcache Distributed Cache synchronization
5, a SQL execution over a long time, how you optimize, from what aspect.
A: 1, to see whether the SQL involves multiple tables or subqueries, if so, see if you can do business split, related field redundancy or merge into temporary tables (Business and algorithm optimization)
2, related to the query of the list, whether it can make a table query, the results of a single table query after the field integration
3, if the above two can not operate, do not have linked list query, then consider the corresponding query conditions to do the index. Faster query speed
4, for a large number of tables for the separation of history table (such as the Transaction Flow table)
5, database master-slave separation, read and write separation, reduce reading and writing for the same table at the same time pressure, as the master-slave synchronization, MySQL has its own binlog to achieve master-slave synchronization
6, explain analysis of SQL statements, view the execution plan, analyze the index is used, analyze the number of scan lines, etc.
7, check the MySQL execution log to see if there are other aspects of the problem
Personal understanding: Fundamentally, the query is slow to occupy a lot of MySQL memory, then you can take the discretion to consider
V. Design program-related
The interview will also ask some questions about the design plan, such as
1, your interface service data has been truncated, how do you prevent the malicious submission of data.
A: We can set up a business number in the interface transfer parameter, which is used to differentiate between repeated submissions. So even if the data is caught, the other person can not distinguish each field you mean, at this time, the role of this business number is coming
2, assume that the server often downtime, you from what aspects to troubleshoot problems.
A: This will leave you reader added, can comment on the reply
In a word, it is still to be seen, but also to learn. Again, the basics are important. Interview skills are also very important, or that sentence: I wish you all reader can find the right job ~ ~
In addition, we advise you not to change jobs frequently, these knowledge points can promote is good, do not blindly job-hopping, looking for work is very tired, and no one company like frequent job-hopping employees Java Program Ape job-hopping should learn what aspects of technology
Internet products, large enterprise-level projects are often used:
Concurrent processing technology. Specific to Java is usually related to java.util.concurrent, concurrent locking mechanism, NIO, of course, the recent popular Netty framework can also be used as a high concurrent processing of one of the alternatives, which requires the Java thread Scheduling mechanism has a relatively deep understanding. However, these may involve concurrent controlled objects (such as reentrantlock, etc.) that can only exist in a JVM, and once the system is large to require multiple JVMs to be deployed to handle concurrency, a shared session-sharing technique (such as spring-session) is required. , or to design the system as a stateless service as far as possible, which requires a deeper understanding of restful.
High availability, load balancing technology. Internet products, enterprise-class applications usually require a year of downtime control within a very small range, this needs to be supported by a high availability and load-balancing architecture, which is generally not related to the Java technology itself, but is a beginner programmer's prerequisite for advanced programmers and even architect CIOs. Therefore, we can have a proper understanding of nginx, Haproxy and other support in this regard. In addition, now the most "fashionable" approach is to apply Docker, with ETCD, kubernetes and other tools at the level of the container to achieve high availability and load balance, of course, this needs to see the actual demand, the most fashionable is not necessarily the most suitable, to consider the cost of construction.
Caching technology. Caching should be a timeless truth in large systems or high concurrency conditions to improve response speed (although it has also seen 0 of cached articles that are implemented by large data processing technologies for Taobao's search for merchandise features, but can achieve Taobao volume and technical level is generally not likely), this tool too much, Ehcache, memcached, Redis ... From the Java point of view, need to understand the Java for these tools connectors, the second is the cache technology behind the JSR-107 standard, you can refer to the implementation of Spring-cache, read the source to deepen understanding.
Asynchronous processing technology. This is often one way to counteract high concurrency, from the Java point of view the simplest asynchronous processing is the new start of an asynchronous thread, which also requires a knowledge of Java thread scheduling, of course, you can also use the @async in spring and so simple to implement asynchronous threading processing. If it is very resource-consuming business processing, simple asynchronous thread is not enough to meet the requirements, this requires some message middleware to do these asynchronous processing, message-oriented middleware has a lot of activemq, RABBITMQ, Kafka ... What you need to know is the Java Connector for these middleware. However, the most critical part of asynchronous processing is the issue of transaction guarantees, which may require an understanding of the two-step submission of the transaction.
Here I have a roadmap for job-hopping Java developers who want to switch jobs:
Divided into 5 major topics:
High Concurrent Topics:
Application Framework Topics:
Project Management topics:
Double One architecture:
Performance optimization: