1 Review my timeline

At the beginning of this article, share your experience of spring recruitment:

Everybody digs a friend everybody good, I am the Android xiaocai chicken that exercises for nearly a year, like to see the source code, stroll to dig gold, write technical article……

OWO, I am a junior, this year spring recruitment cast many resumes, are internship posts, but only ali, toutiao and Meituan, all the way down is not easy.

Personally think in spring recruitment luck > character > three views > technology.

1.1 ali.

  • At the end of March, my senior at Ali gave me an opportunity to push in, but I didn’t know anything about the internship recruitment process and entered a big company, so I didn’t prepare anything.
  • On March 27 After making an appointment with the interviewer for the interview in the evening, I met the interviewer for an hour and talked about Java virtual machine, HashMap, ARouter, Dagger2, annotation processor, multi-process and so on. However, due to the long time, I almost forgot what I talked about. I just felt that I didn’t understand anything at that time .
  • On March 29, I came to Japan without any hope, but two days later, I was surprised that Ali had given me this dish of chicken. Make an appointment for a second interview with the interviewer. Then the next few days, the mentality is very bad, psychological burden is very heavy, is that kind of do not want to lose, strongly want to win the feeling, what stay up to prepare, skip class review, anyway, I have done what you do.
  • March 31 sure enough, I felt something was wrong with myself during the day. I was doing all the talking, and the interviewer didn’t ask much. It was over in less than 30 minutes, and my ali trip was over. In the following month, I basically reviewed and adjusted my mentality.

1.2 the headline

  • I actually sent my resume to Toutiao twice in April. The first time was when a big shot from Toutiao saw my article and gave me a platinum number (thank you very much), which allowed me to attend the interview in early April. At that time, Ali just died, or nothing to prepare, so also like Ali died in the second interview, there is no reference value, so this is my second headline experience.
  • At the end of April, I filled in my resume on Niuke.com and then sent my resume to Toutiao. I don’t remember the exact time.
  • On May 8th, the first side is relatively smooth, mainly Java concurrency visibility, atomicity, order questions, also asked the pros and disadvantages of synchronization keyword and Lock,MVVM, etc., basically according to your resume, the answer has been prepared in advance, reread it.
  • On May 10 2 face, one is a ACM, see the topic have ideas, but was too nervous, but also written in the interviewer’s cues, second interview after restudy the Java concurrency three big characteristics, asked the View events, events interception, the processing of sequence of events, a custom View, N kinds of methods to reduce the transition rendering and optimized rendering, multi-process, OO M. After the interview, there was a long wait of days, during which I didn’t get any information on whether I had passed or not. I received the results immediately after my first headline interview, which was not like a headline.
  • On May 15th, meituan called HR at the top to ask me if I had a second interview. HR told me that I had not and hung up the phone.
  • May 16th then something dramatic happened!! Not long after 10am, headliner HR called me and asked me to prepare for the next round of interviews, scheduled for Next Monday, in a non-negotiable tone.
  • I received the offer from Meituan on May 20th, so I stopped making headlines.
  • On the afternoon of May 21st, HR called me and asked me whether I would take the exam. I felt toutiao was not interested in me enough, so I refused. Although I was really grateful to the big man who gave me the platinum code, I always felt that I was not the person toutiao was looking for.

1.3 Meituan

  • Before the beginning of May, I always wanted to join meituantuan, but I always felt quite fascinated. Both niuke and intern sites were swept by the headlines. Why did MD in TMD still have no action? Even if there are only iOS posts, so I was very depressed, thinking that maybe the company is not short of people.
  • On May 5th, I suddenly realized that I could still go to the official website and then went to the official website of Meituan Recruitment. At that time, it was already very Buddhists, and I thought that meituan would not be short of people this year. Otherwise, why did it make so little noise? And in the official website to cast resume, there is no internal push is not equal to buy lottery ticket? But I ended up giving my resume a try, and basically nothing was written on it.
  • Resume was fished out on May 13?? !!!!!!!!! Boss called me and set up an interview.
  • May 15, 40 minutes, almost according to the resume to ask, or Java concurrency three features, but also asked the Activity start process, there is my resume to write those processes,MVVM and so on. So it is put before the interview content again answer read, but feel now restudy must have more skilled, I asked the interviewer for the interview after my evaluation, the interviewer seems to be very happy, ask me how what all don’t write resume it, also tell me I’m OK, into the probability is very big still, inner OS: flattered?
  • The afternoon of May 15th Boss give me a phone call again, about the next round of the interview time, also made a small 15 minutes of the interview, by the way, asked some technical problems, is basically the source code of some open source projects, ask during the Glide, I just haven’t seen, scared that night I go to the source code of the Glide sweep again, the boss also added my WeChat.
  • May 16th Yes, the efficiency is so high that there is not even another day, the boss met me for an hour. Have a ACM, directly seconds, and then continue to answer read, let me in detail about the Handler, stars, MessageQueue, Message source, besides, to debug the track memory leaks, and network TCP three-way handshake, and operating system of a deadlock, and AsyncTask bottom and at different levels of apis The difference between and so on, more or less all answered, but some still lack of page interruption (forget or won’t QAQ), but until the last did not ask Glide(QAQ jump to jump, I saw a night ah), after the face of the eldest brother seems to be very satisfied with me, on the spot to me, but the rear assistant with me and big boss about an interview.
  • On May 17th Yes, high efficiency and even without the next day, the old panel, I talked about 20 to 30 minutes, the original are some of the more open questions, such as our Meituan APP had a bad start to your list of 20 possible, in the end I just mess made from various aspects about ten kinds of knitting not bottom go to, really feel is to inspect my ability of divergent thinking, then ask me Why do you want to go to Beijing? I told you my world view and wanted to see a bigger world. I felt that big boss was very happy. After the interview I went to ask him privately what did the boss think of me? Then the boss told me I could wait for HR to call (Inner OS: A little happy to be honest)
  • I confirmed the offer with HR on May 20th, so my spring recruitment is over. I feel I have a lot of character defects. I really appreciate the help and tolerance of my boss.

1.4 summary

  • Don’t give up and think that spring recruitment is over, there are many opportunities.
  • To tell you the truth, I personally think luck is really important in the interview. If you meet the super nice leader like me, you will get the green light all the way. Otherwise, you may really face to self-closure.
  • From my subjective experience of this interview, I feel that the headlines are not as efficient and short of people as hearsay. From my strong personality, I can’t accept this kind of operation that you tell me to hang up and don’t tell me the reason, and then call me to make an appointment for the next round of interview.
  • PS: MY guess is that the original candidate gave me the headline, and then the qualification passed to me, and then I dodged, and finally there was no one else, so they called me again to ask me if I was considering the exam. But people are emotional animals, and emotions are based on feedback. If someone gives me negative feedback, I’m not going to give them positive feedback.

Train yourself to be a HashMap and a repeater

The biggest lesson I learned from this spring session is that when you feel like a reread machine that can reread interview questions and find the answers to the interviewer’s questions in constant time like a HashMap, you’re close to success.

Here are a few things I gleaned as I prepared for the interview:

2.1 Java

2.1.1 volatileWhat are main memory and working memory in JMM? How does it correspond to various parts of the JVM?

Refer to the link

2.1.2 serialization

Serializable uses reflection when serializing, resulting in frequent GC calls, see Link

2.1.3 Visibility, Atomicity, Orderliness (required)

  • visibilityvolatile, changes made by one thread are immediately visible to another thread,
  • atomicCASOperations, all or nothing
  • ordersynchronizedBy entering and exitingMonitor(Observer) implementation,CPUIt is possible to execute instructions out of order, so that if you observe them in one thread, everything is in order, and if you observe them in one thread, everything is out of order.Refer to the link

2.1.4 Java Lock Mechanism

The Java locking mechanism is really a trade-off between locking bus, synchronization keywords, and Lock interfaces.

2.1.5 Java Constant Pool? Are references equal for different String assignment methods?

Literals are constants, id indexes are used in the bytecode,equals equals references are not necessarily equal, and on Android String constructors are intercepted by the virtual machine and redirected to StringFactory

2.1.6 Implementation of HashMap? Tree threshold? Load factor?

Array plus linked list plus red and black tree, default load factor 0.75, tree threshold 8, this section is more common, recommended preparation (small AD OWO, you can also follow my column on the analysis of HashMap and ArrayMap)

2.1.7 Java Lock-free Synchronization

CAS implementations such as AtomicInteger and so on

2.1.8 Singleton Mode

  • Double check
public class Singleton {

    private static volatile Singleton singleton;

    private Singleton() {}

    public static Singleton getInstance() {
        if (singleton == null) {
            synchronized (Singleton.class) {
                if(singleton == null) { singleton = new Singleton(); }}}returnsingleton; }}Copy the code
  • Deserialization safety, reflection safety enumeration-level singletons are guaranteed by the JVM when the class is loaded. Deserialization does not generate new objects. Another reflection safety is to check the singletons in the constructor and throw an exception if they exist.

2.1.9 Lock condition variables

Signal should be used with a lock, the current thread must first gain the lock, and then wait for the semaphore associated with the lock, the lock will be unlocked at this time, other threads can rob to the lock, if other threads in the lock, so he can inform the semaphore, and then release the lock, if the first thread in the lock, then it will from waiting to continue to hold Line (Application scenario, encapsulate asynchronous callback operations into synchronous operations to avoid callback hell)

Semaphores are used in a different way than locks, where locks serve shared resources and semaphores serve the logical order of execution between multiple threads. Locks are more efficient.

2.1.10 ThreadLocal principle

ThreadLocalMap is stored on a thread. Each ThreadLocal is stored in the Map using a weak-reference wrapper as a Key. When a thread is reclaimed or there is no other place to reference a ThreadLocal, the ThreadLocal is reclaimed and its value is reclaimed

2.1.11 Soft Reference, Weak Reference, and Virtual Reference

  • Soft references are freed when they run out of memory
  • Weak references to GC
  • Virtual references, which need to be associated with a reference queue, are mainly used to interact with the GC, as are no references.

2.1.12 ClassLoaderParent delegation mechanism

Simply put, the load request is forwarded to the parent loader, the parent loader fails, and then tries to load it

2.1.13 GC Roots has these

A Class loaded by System Class Loader or Boot Class Loader is not necessarily GC Root:

  • The thread that is active
  • Objects on the stack
  • Objects in the JNI stack
  • Global objects in JNI
  • Various lock objects that are being used for synchronization
  • Objects held by the JVM itself, such as system classloaders, etc.

2.1.14 GC algorithm

The name of the describe advantages disadvantages
Mark-clear algorithm Suspend all threads except the GC thread. The algorithm is divided into two phases: “mark” and “clean”. First, all objects that need to be reclaimed are marked from the GC Root, and all marked objects are reclaimed after the mark is completed. There are two disadvantages of the mark-clear algorithm. First, the efficiency is not high. Second, a large number of discrete memory fragments will be generated after the tag is cleared. Too much space fragmentation will cause the program to be unable to find enough contiguous memory when it needs to allocate memory for larger objects and have to trigger another garbage collection action in advance
Replication algorithm Divide the available memory into two equally sized pieces, and use only one piece at a time. When this piece of memory is used up, the surviving objects are copied to the other piece of memory, and the used space is cleaned up at a time In this way, one piece of memory is reclaimed every time. When allocating memory, there is no need to consider the complex situation of memory fragmentation, and only need to move the heap top pointer to allocate memory in order, which is simple to implement and efficient to run The drawback of the replication algorithm is obvious, the available memory is reduced by half
Mark-collation algorithm Tag – sorting algorithm based on tags – clear algorithm made improvements, mark phase is the same, the mark all need recycled object, after the completion of a tag is not recycled directly on the object to clean up, but let all live objects move to the end, in the process of moving clear recyclable objects, this process is called. The advantage of mark-tidy algorithm compared with mark-clear algorithm is that the memory will not cause a large number of discontinuous memory fragmentation problems after the memory is defragmented. In the case of high object survival rate, the replication algorithm has to perform more replication operations, and the efficiency will be reduced, while in the case of high object survival rate, the efficiency of mark-collation algorithm will be greatly improved
Generational collection algorithm Java virtual machine garbage collection algorithm. Based on the fact in programming, the newer the object, the shorter the lifetime of the object, the memory is divided into several blocks according to the lifetime of the object in memory. In Java virtual machines, the memory is divided into the new generation and the old generation. When new objects are created, the memory space is allocated in the new generation. Objects that are still alive after a few collections by the new generation garbage collector are moved to tenage-generation memory, and large objects are created directly in tenage-generation memory when they cannot find enough contiguable memory in the new generation

2.2 the Android

2.2.1 Handler, MessageQueue and a set of things to talk about, detailed source code. Why is the main thread loop not ANR?

  • The Android thread model is a Message loop in which Looper associates the MessageQueue and keeps trying to retrieve messages from the MessageQueue for consumption, which may be blocked by itself.
  • The Handler eventually calls enqueueMessage(Message,when), a delayed implementation of the current time plus the delay time to specify a point in time for the Message to execute, and then finds the insertion location in MessageQueue, which determines whether the thread needs to wake up to consume the Message and update it The next time you need to pause.
  • Message knows which Handler to send to because Message saves the Handler to target.
  • Message internally uses linked lists for recycling

2.2.2 View events and View system related knowledge

Suggest to see “Android development art exploration”, this thing is not clear in a few words

2.2.3 The method of using multithreading in Android

  • Naked new Thread(not recommended)
  • RxJava scheduler (IO (low priority ratio), computation-intensive thread (high priority ratio, used to perform computation-intensive tasks), Android main thread, Looper creation (actually creates Handler internally))
  • Executors#newCachedThreadPool() of the Java Executor framework causes no waste of resources, and threads that are not used for 60 seconds are freed
  • AsyncTask, internally implemented using FutureTask, forwards results to the main thread through a Handler. The default Executor is shared. If multiple AsyncTasks are executed at the same time, queueing may be required, but you can manually specify executors to solve this problem by directly new the anonymous internal thread Classes hold references to external classes, which can cause memory leaks
  • The Android thread model provides handlers and handlerThreads
  • Using IntentService
  • IntentService and makes no difference, the difference between Service, is actually opened a HandlerThread, let it not in the main thread to run time-consuming task

2.2.4 RecyclerView reuse cache

I suggest you take a look, this might be asked, but I’m lucky I didn’t.

2.2.5 Activity Startup process

There are a lot of related articles online, can be combined with their own source code to see, if you can tell about it is also very bonus points.

2.2.6 JNI(Not very often unless you say you can)

  • The C layer is a pointer to jobject. Methods and fields can be accessed using jmethodID and jfiledID. Memory copying is also avoided using direct buffers.
  • Unavoidable memory copying, primitive arrays, cannot be avoided because the JVM does not trust any memory operations at the C layer, especially string operations, because Java strings are of different data types than C/C++ strings. C/C++ uses char for one byte (1 byte =8 bits) or wchar_t for four bytes. Jstring and jchar use utF-16 encoding and use double bytes.
  • Local references that you create must be released or you will keep holding memory leaks
  • Jclass is a jobject, and global references need to be created for peripheral use of the method. JmethodID and jfiledID do not.
  • JNI is implemented by mapping Java methods to C functions. To use this method, functions must be exported as a C interface (because C++ modifies names) or registered in the JNI_OnLoad method.
  • JNIEnv is thread independent. Threads created using pThreads in JNI do not have JNIEnv and need to AttachCurrentThread to retrieve the JNIEnv or DetachCurrentThread when not in use

2.3 professional class

2.3.1 What are the differences between TCP and UDP?

Datagram, stream mode,TCP reliable, packet order will require retransmission,UDP regardless, and even can not guarantee to send

2.3.2 TCP three-way handshake

This is a very high probability of being asked, almost a requirement. It is recommended that you take the time to read it.

2.3.3 Http and Https

CA certificates, intermediaries, public key encryption Symmetric secret keys back to the server, one plaintext one encryption,SSL layer, man-in-the-middle attack, see Link

2.4 ACM

For ACM, more often test linked list, not often brush algorithm students must not have resistance to its psychology.

You might ask why ACM? There are some reasonable reasons for improving code quality and being able to read other people’s code better, but the most important thing for us to interview is that ACM is the most direct means for the interviewer to evaluate your coding ability, so it is enough to brush the questions without so much nonsense.

To brush the questions, it is recommended to brush the questions with Leetcode, which is within 200, simple and medium difficulty. It is not recommended to brush the questions with difficulty, because the questions will not be answered in the interview. No one wants to wait for you to think for an hour and a half.

When programming the whiteboard on site in front of the interviewer, you can tell the interviewer the idea first. Whether you can write it or not is another matter. How the time complexity and space complexity come must be clear. It is not necessary to write the best time and space algorithm when coding, but it is recommended that you write the least amount of code and think the most clearly, so that the interviewer can look comfortable, and you can speak comfortable.

The following are ACM problems I have collected online or encountered in real life, and basically have similar problems in Leetcode.

2.4.1 Array and linked list

  • Reverse list (headlines are almost mandatory)
    public ListNode reverseList(ListNode head)
    {
        if (head == null)
        {
            return null;
        }
        if (head.next == null)
        {
            return head;
        }
        ListNode prev = null;
        ListNode current = head;
        while(current ! = null) { ListNode next = current.next; current.next = prev; prev = current; current = next; }return prev;
    }
Copy the code
  • Removes duplicates from the sorted array
    public int removeDuplicates(int[] nums)
    {
        int length = nums.length;
        if (length == 0 || length == 1)
        {
            return length;
        }
        int size = 1;
        int pre = nums[0];
        for (int i = 1; i < length; )
        {
            if (nums[i] == pre)
            {
                i++;
            } else{ pre = nums[size++] = nums[i++]; }}return size;
    }
Copy the code
  • Duplicate element found in array
  • N ordered arrays of length n, find the largest n number
  • Delete a node in a single linked list with the time complexity of O(1). Assign the next element to the node to be deleted, which is equivalent to deleting the current element, only the time to delete the last element is O(N). The average time complexity is still O(1).
      public void deleteNode(ListNode node) {
          ListNode next = node.next;
          node.val = next.val;
          node.next = next.next;
      }
Copy the code
  • Delete two Pointers to the penultimate NTH element of the single linked list. The first one takes N steps first and then the second one, and the time complexity is O(N). See link
      public ListNode removeNthFromEnd(ListNode head, int n) {
          if (head == null)
          {
              return null;
          }
          if (head.next == null)
          {
              return n == 1 ? null : head;
          }
          int size = 0;
          ListNode point = head;
          ListNode node = head;
          do
          {
              if (size >= n + 1)
              {
                  point = point.next;
              }
              node = node.next;
              size++;
          } while(node ! = null);if (size == n)
          {
              return head.next;
          }
          node = point.next;
          point.next = node == null ? null : node.next;
          return head;
      }
Copy the code
  • Find the first K number in the long sequence
  • Implement a double-headed stack with an array
  public static class Stack<T>
      {
          
          public Stack(int cap)
          {
              if (cap <= 0)
              {
                  throw new IllegalArgumentException();
              }
              array = new Object[cap];
              left = 0;
              right = cap - 1;
          }
  
          private Object[] array;
          private int left;
          private int right;
          
          public void push1(T val)
          {
              int index = left + 1;
              if (index < right)
              {
                  array[index] = val;
              }
              left = index;
          }
          
          @SuppressWarnings("unchecked")
          public T pop1()
          {
              if (left > 0)
              {
                  return (T)array[left--];
              }
              return null;
          }
          
          public void push2(T val)
          {
              int index = right - 1;
              if (index > left)
              {
                  array[index] = val;
              }
              right = index;
          }
  
          @SuppressWarnings("unchecked")
          public T pop2()
          {
              if (right < array.length)
              {
                 return (T)array[right++];
              }
              returnnull; }}Copy the code
  • The sum of two lists is also expressed as 1 -> 2 -> 3 + 2 -> 3 -> 4 = 3 -> 5 -> 7
      public ListNode addTwoNumbers(ListNode node1, ListNode node2)
      {
          ListNode head = null;
          ListNode tail = null;
          boolean upAdd = false;
          while(! (node1 == null && node2 == null)) { ListNode midResult = null;if(node1 ! = null) { midResult = node1; node1 = node1.next; }if(node2 ! = null) {if (midResult == null)
                  {
                      midResult = node2;
                  } else
                  {
                      midResult.val += node2.val;
                  }
                  node2 = node2.next;
              }
              if (upAdd)
              {
                  midResult.val += 1;
              }
              if (midResult.val >= 10)
              {
                  upAdd = true;
                  midResult.val %= 10;
              }
              else
              {
                  upAdd = false;
              }
              if (head == null)
              {
                  head = midResult;
                  tail = midResult;
              } else{ tail.next = midResult; tail = midResult; }}if (upAdd)
          {
              tail.next = new ListNode(1);
          }
          return head;
      }
Copy the code
  • Swap two or two nodes of the linked list
      public ListNode swapPairs(ListNode head)
      {
          if (head == null)
          {
              return null;
          }
          if (head.next == null)
          {
              return head;
          }
          ListNode current = head;
          ListNode after = current.next;
          ListNode nextCurrent;
          head = after;
          do
          {
              nextCurrent = after.next;
              after.next = current;
              if (nextCurrent == null)
              {
                  current.next = null;
                  break;
              }
              current.next = nextCurrent.next;
              after = nextCurrent.next;
              if (after == null)
              {
                  current.next = nextCurrent;
                  break;
              }
              current = nextCurrent;
          } while (true);
          return head;
      }
Copy the code
  • Find two elements whose sum is 6 in [1, 2, 3, 4, 5].
      public int[] twoSum(int[]mun,int target)
      {
          Map<Integer, Integer> table = new HashMap<>();
          for (int i = 0; i < mun.length; ++i)
          {
              Integer value = table.get(target - mun[i]);
              if(value ! = null) {return new int[]{i, value};
              }
              table.put(mun[i], i);
          }
          return null;
      }
Copy the code

2.4.2 tree

  • How many nodes there are in a particular level of a binary tree

2.4.3 sorting

  • Bidirectional linked list sort (this is more excessive, encountered on their own blessings)
  public static void quickSort(Node head, Node tail) {
  		if (head == null || tail == null || head == tail || head.next == tail) {
  			return;
  		}
  		
  		if(head ! = tail) { Node mid = getMid(head, tail); quickSort(head, mid); quickSort(mid.next, tail); } } public static Node getMid(Node start, Node end) { int base = start.value;while(start ! = end) {while(start ! = end && base <= end.value) { end = end.pre; } start.value = end.value;while(start ! = end && base >= start.value) { start = start.next; } end.value = start.value; } start.value = base;returnstart; } /** * public static void quickSort(List<Integer> List) {public static void quickSort(List<Integer> List) {if (list == null || list.isEmpty()) {
  			return;
  		}
  		quickSort(list, 0, list.size() - 1);
  	}
  	
  	private static void quickSort(List<Integer> list, int i, int j) {
  		if (i < j) {
  			int mid = partition(list, i, j);
  			partition(list, i, mid);
  			partition(list,mid + 1, j);
  		}
  	}
  	
  	private static int partition(List<Integer> list, int i, int j) {
  		int baseVal = list.get(i);
  		while (i < j) {
  			while (i < j && baseVal <= list.get(j)) {
  				j--;
  			}
  			list.set(i, list.get(j));
  			while (i < j && baseVal >= list.get(i)) {
  				i++;
  			}
  			list.set(j, list.get(i));
  		}
  		list.set(i, baseVal);
  		return i;
  	}
Copy the code
  • Common sorts, such as heap sort, fast, merge, bubble, etc., also need to remember their time complexity.

2.5 the project

2.5.1 What Protocol does Video Chat Use?

Github also has a number of open source implementations of RTMP.

2.5.2 How do you solve some problems you encountered in the project? What are your ideas?

This section is more abstract, based on your own project, focus on the module you are familiar with, the general interviewer will draw some questions to ask you.

2.6 questions

Don’t ask questions like:

  • Which group is the interviewer in?

This kind of question is worthless, because you can’t get any additional information from the interviewer, and it won’t affect his or her judgment of you. Instead, ask how the interviewer feels about you, and show the mood you want to add and the depth of your question.

  • Is XXX really short of staff this year? What is the recruitment strategy?
  • What does the interviewer think my weaknesses are (both in terms of personality and skills)?
  • If I fail in the interview, could you please tell me the reason why I failed? This will not only help me but also the younger students under my guidance, and also help XX to recruit better people when I share my experience.
  • Does XXX need a classmate like me?

Finally, something that I think is important

3.1 Active preparation, trial and error

  • Opportunities are for those who are prepared. Don’t think you can succeed without going to war.
  • Interviews are what interviewers are looking for. By reading a lot of interviews, you can get a sense of what interviewers are looking for, and you can tailor your preparation accordingly.
  • As students, we often do not have any practical project experience, so the operating system, computer network, data structure and algorithm, computer composition principle, these four foundations are the focus of the spring recruitment investigation.
  • I think the world knows the importance of Exploring the Art of Android Development for Android job seekers. If you haven’t read it yet, take a look.
  • Keep going to interviews. If you fail in an interview, make sure you understand why and find ways to tease out your weaknesses from the interviewer, so that your chances of succeeding in the next interview increase.

3.2 The really important and most overlooked issues

There are often many students who think they are well prepared and have repeated the offer, but they still do not get the offer. Then you may need to consider the following questions.

As I said at the beginning, for luck > > character through the > technology, project and foundation is very important, but in a very short hours to fully grasp a person want to some basic situation is too difficult, the interviewer usually is just the tip of the iceberg for you see, so during the interview, you may have to care about the following questions:

  • Be flexible: Prepare some tactful words, such as when talking about the source code, if you feel that you are not completely right, finally add a sentence – I may not be completely accurate, but I feel that reading source code is not endorsement, but learning one of his ideas to use in their own code.
  • Know your target: Learn a lot about the company’s culture and come prepared with something to say that will make them smile.
  • Stay the course: May sometimes be asked some metaphysical question, this kind of problem often do not have a standard answer, QiuShengYu must be stronger, don’t also want to come out, because often the interviewer asks you these questions, the purpose is not to see if you can answer correctly, but to look at your divergent thinking, and see how much you can give the answer, the process you try, as you will be the interviewer The value of
  • Three views to be positive: the world outlook should be open, the courage to meet the challenge, but not when lick the dog, can not have no bottom line, unless you put forward, otherwise when the company let you play truant to practice, I think you should refuse, because if delayed, it may affect the employment, the last must be more than worth the loss, rationality is greater than everything.
  • Correct attitude: we are to apply for a job, not to be a grandfather, how much value do you plan to create for the company during these three months of internship? When the interviewer asks you to make a choice, observe whether the question is up to you. If not, say what the company wants me to do. I’m willing to take on new challenges to grow.
  • Be polite and easygoing: Speak slowly but never fast, be polite and easygoing, don’t talk greedily, keep your mouth shut, even if you know a lot. Because you’ve prepared for the interview, and the interviewer has prepared for you, and he has questions for you, and if you keep talking and he doesn’t get a chance to ask, he’s not going to be happy. Don’t steal other people’s talk, don’t jump to conclusions when things happen, even if he said wrong can not directly face, to a bit euphemistic.
  • Don’t be too honest: of course, this does not call you to lie, should say don’t know or don’t know, don’t pretend to know. What I want to say is don’t expose your weaknesses, because as I said before, the interviewer has a very short time to interview you, and often he or she has very limited knowledge of you, you should try to show your strengths rather than weaknesses.
  • Holding hostage: headline when I go to the interview, my hand holding chips is I have a great chance of a state-owned internship (university-enterprise cooperation projects), when I go to Meituan interview, my chip is my headlines also arrived on three sides, you chip indirectly proves that the value of you, can also affect the interviewer about your judgment.

3.3 conclusion

Let me tell you that I am a double-non-two-ben. Since I failed in the college entrance examination, I thought I would continue to be so ordinary. However, after three years, I was finally given a chance to prove myself again. Last but not least, don’t forget to give me a thumbs up if you like my article, please it’s really important to me.