How to interview people in java


  How java
  interviewers  interview others Let me first express my own views on interviews:
  1. Written tests and interviews are definitely not accurate enough to evaluate a person. The most accurate way to understand a person is to "learn horsepower from a distance, and see people's hearts over time". It is a helpless act of doing questions and communicating within one or two hours, but there is no other way to do it, so passing the interview does not mean how successful it is, and failing to pass does not mean how much failure.
  2. A good interviewer should not put himself in a condescending role when talking to himself, and should treat himself and the applicant as two technical people who communicate on an equal footing. Treating yourself as an authority is often subject to perspectives. , language expression, the constraints of inertia in the field of work.
  3. A good survey topic is one that everyone can contact frequently, people at different levels can have different levels of answers, and topics that can be discussed later can be derived from the question.
  As an example, the following question is a question I often ask before, from fresh graduates to people who have worked for more than ten years:
  Quoting
  "Everyone on the earth knows that Java has a thing called a garbage collector, which allows created objects There is no need to delete or free it like c/cpp, can you talk about when GC is used, what does it do, and what does it do?"
  I will analyze this problem myself, first of all, "when", different levels The answers are arranged from low to high:
  1. When the system is idle.
  Analysis: This kind of answer accounts for about 30%. If I encounter it, I will usually turn to other topics, such as algorithms, such as SSH, to see if I can discover some other aspects that he is good at.
  2. The system itself decides, unpredictable time/when calling System.gc().
  Analysis: This kind of answer accounts for about 55%. Most fresh students can answer this answer, at least it can’t be considered a mistake, right? It should be subdivided in the follow-up to see whether the answer is too general due to the language expression, or there is only such a vague awareness.
  3. Can tell the structure of the new generation and the old generation, and can propose minor gc/full gc
  analysis: At this level, you can basically say that you have a conceptual understanding of GC operation, such as reading "In-depth JVM Virtual Machine" and the like . This part is less than 10%.
  4. It can explain the trigger conditions of minorgc/full gc, the trigger conditions of OOM, and the strategy of reducing GC tuning.
  Analysis: List some of the answers I expect: eden is full of minor gc, and the objects upgraded to the old age are larger than the remaining space of the old age, full gc, or are forced to full gc by the HandlePromotionFailure parameter when it is smaller; the time consumption of gc and non-gc exceeds GCTimeRatio Limiting causes OOM, tuning such as controlling the ratio of the new generation to the old generation through NewRatio, and controlling the number of survivals before entering old age through MaxTenuringThreshold... If you can answer this stage, it will bring me relatively high expectations. Of course, during the interview, normal people I can't remember the spelling of each parameter, and I turned over the manual when I wrote this paragraph myself. The answer is less than 2% of this part.
  PS: The sum is less than 100%, because there are indeed a small number of people who directly say they don't know, or directly refuse to answer = =#
  Analyze the second question: "What is it":
  1. Objects that are not used.
  Analysis: It is equivalent to not answering, the question is asking what object is the "unused object". about 30%.
  2. Objects out of scope/objects with empty reference counts.
  Analysis: These two answers are 60%, a fairly high proportion. It is estimated that teachers teach this way when they teach Java in schools. The first answer did not solve my question. How does gc determine which objects are out of scope? As for reference counting to determine whether an object is collectible, I can add the following example to let the interviewer analyze whether obj1 and obj2 are not Will it be dropped by GC?
  class C{
  publicObject x;
  }
  C obj1, obj2= new C();
  obj1.x = obj2;   obj2.x
  = obj1;
  obj1, obj2= null;
Object.
  Analysis: Root object search and tagging are not bad. Less than 5% of people can answer this step. It is estimated that the method of reference counting is too "deep in the hearts of the people". You can basically get all the points for this question.
  PS: There are interviewers who add strong citations, weak citations, soft citations, phantom citations, etc. in this question. It is not the answer I want to ask, but it can be added.
  4. It cannot be searched from the root, and after the first marking and cleaning, there is still no resurrected object.
  Analysis: The answer I'm looking for. But it is true that very few interviewers will answer this point, so in my mind I will give all points to the 3rd point.
  Finally, there is a question: "what to do". This question has too much room to play. There are many actions of different generations and different collectors.
  1. Delete unused objects to free up memory space.
  Analysis: Same as point 1 of question 2. 40%.
  2. Add some instructions such as stopping the execution of other threads, running finalize, etc.
  Analysis: At least make the question more specific. If it is like answer 1, it is difficult for me to find the topic to continue in the answer, accounting for about 40% of the people.
  To add a digression, the answer I am most afraid of during the interview is "I can't say this question, but when I encounter it, I can find it by searching the Internet". Doing program development is really not about training fennel beans. There are several ways to write "fennel". I agree without rote memorization. I will not correct grammar and words. There is no way to get information from which to evaluate the candidate, and it is difficult to continue to explore topics from the answers to discuss. It is recommended that everyone try their best to answer in areas that they are familiar with and can discuss, and show the interviewer's best side.
  3. Can say for example, what the new generation does is copy cleaning, what is from survivor, to survivor used for, the old generation is doing mark cleaning, should the fragments be sorted after mark cleaning, what are the advantages of copy cleaning and mark cleaning? disadvantages, etc.
  Analysis: Those who have read "In-depth JVM Virtual Machine" can basically answer this level. In fact, I have been looking forward to this level. Also less than 10%.
  4. In addition to 3, it can also explain the age, characteristics, advantages and disadvantages of serial, parallel (defragmentation/non-defragmentation), CMS and other collectors, and can explain the method of controlling/adjusting the selection of collectors.
  Analysis: Same as the fourth point of the two questions above.
  Finally, I would like to introduce my background. I work as a platform architect in a small and medium-sized listed software company. I have about 3 years of interviewer experience. The main direction of my work is large-scale enterprise-level applications. I have participated in several billion-dollar projects. The underlying architecture of the project works.
  How does a java interviewer interview others (2)
  1. Do you do both the front and the back? 10 points
  This is usually my first question, and more than 90% of people will answer: "Do all of them, a little more backstage, and
  a little less front desk". It's not the answer I want. Ghosts know how much programmers need to involve in the front-end, let alone the back-end.
  I met a smart person, and he answered like
  this .
  2. Transaction, what is transaction, why use transaction 10 points
  Most of the interviewers will give various examples (such as bank deposit, this is the most) to illustrate this problem, in fact, they all understand.
  But this is not the case The answer I want, the answer I expect is only one sentence: "guarantee the consistency and integrity of the data", but unfortunately only about 5% of the people answered
  this question, which can roughly understand the interviewer's analytical ability and language summary ability , and their understanding of the game. If they
  can't answer deduct points, and examples will not add points
  . 3. Aspect-oriented (AOP), what is the principle? 10 points.
  This is the mastery of skills
  . Looking for an intermediary, etc., is actually to cover up that they understand a little bit of implementation logic, but do not know how the source code is implemented.
  But there is really a scholar who can explain the principle of agency, which is very good.
  I can't answer it, and I will give an example. No extra points, double points for explaining the principle.
  4. How to communicate between two projects 10 points
  For very basic questions, you will get points if you answer them, indicating that you have contacted or understood the network
  5. Ask on the basis of the previous question , How to solve the garbled characters, can utf-8 and
  gbk Various.
  What's more, utf-8 and gbk can be directly converted...
  It directly shows that they have not encountered such problems at all, and they do not understand coding.
  No points will be deducted if they cannot answer, nonsense will be deducted, and correct answers will be doubled.
  6. Briefly describe the principle of a technology or design pattern 20 points
  This It almost gives points, but 90% of the people can't answer. I'm very puzzled. If I can't answer , I will
  lose points, but I will add points.

Also , all of you who are looking for a job, hope to practice your eloquence and skills.



Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326240170&siteId=291194637