Seven types of weapons for the interviewer: Java Chapter

Source: Internet
Author: User
Tags memcached

Origin

I have experienced a lot of interviews, the Internet, foreign companies, there are. Summing up the experience of these interviews, found that the interviewer asked the question is actually just a few big categories, do not play too much fresh stuff. Come to think of it, the interviewer has the following seven kinds of weapons. There are seven kinds of weapons in the martial arts world as Mr. Cologne. I'll give you a word.

(Welcome reprint.) Reprint Please specify source: http://www.cnblogs.com/hzg1981/)

Immortal Sword = Language Foundation

Immortality Sword is the first of seven kinds of weapons, the same, the study of programming language is also the most basic technical interview. The one that is not satisfied is directly pass. In Java, for example, the study of language can be broadly divided into three levels:

Beginner : A grammar study, which is the use of the language itself.

This level of investigation will examine some of the basic grammar of the language, for this level of investigation to be done for every detail of the master. The form of investigation may be to ask you whether a piece of code compiles successfully, or what results will be output, or let you say the different meanings of the different keywords, what the use of a keyword can be, and so on. Java FAQs:

Inner class, the use of Static Nested class;

The difference between the final finally finalized keywords;

The use of volatile\sychronized keywords (Java development is often server-side development, so the concurrency related keywords to focus on);

What are the usage scenarios for the static keyword (say static block pass, say import static will add points).

Intermediate : the use of libraries or frameworks. Or the use level of the technology stack for that language.

Use of libraries:

That is, the use of the standard library for that language. In Java, for example, you will be asked about the common framework of the JDK, such as IO, Collection, Juc concurrency Framework, and CONCURRENTHASHMAP implementation principles, and so on. In particular, it is important to note that the principle of hashmap and Concurrenthashmap is one of the most popular technical points of the interviewer, and must be well mastered. At the same time, because Java development is often server-side, Juc package is also important to master. There are also some important specifications, such as JDBC, servlet, and so on.

Use of the framework:

In Java, for example, Spring Springmvc and MyBatis (Hibernate) are used and principles of these frameworks to be mastered. For spring, focus on the implementation of IOC and AOP, where AOP has to know two implementations of dynamic proxy and cglib. For ORM Framework, we should focus on the implementation principle and different points of MyBatis and hibernate.

Advanced : The underlying implementation of the language. Or the design thought level of the language .

In Java, for example, because Java is based on the JVM, it will ask some questions about the JVM, such as the runtime memory area of the JVM, the JVM memory model, the GC mechanism, the JVM's performance tuning, the class loading mechanism, and so on. Also need to master technology such as JIT, and why is Oracle's Java virtual machine called hotspot?

There is a general understanding of the history of a language, in Java, for example, you need to know what major updates in Java each major version, and so on.

Jasper knife = Handwritten code

Knives and swords are the most basic weapons in the martial arts. For the interviewer, language inspection and handwritten code questions are also the most basic research. The simple truth is that programming languages and handwritten code are the most important basic skills of coder. As with the programming language, this part does not pass, the interview is directly pass. At the same time, this part is also "talk is cheap, show me the Code" the best embodiment, to eliminate the rhetoric of "parallel imports."

The handwritten code question can be divided into the following three categories:

1. Algorithm problem.

The most basic algorithm problem is generally sort, find, etc., common have two points to find, fast row and so on. Must be proficient in mastering. These questions are likely to be found in all kinds of company visits.

The problem of the medium difficulty algorithm is usually the question of dynamic programming algorithm (DP), such as Fibonacci and its common variant. The key point of DP is to find the recursive solution of the problem first, then use the top-down or bottom-up method to eliminate the repetition state in the recursive process and reduce the complexity of time.

In fact, even the MS Amozon this kind of research algorithm is known to the company, the problem of basic algorithms is rarely beyond the DP of this medium difficulty. Because after all, it's not ACM.

2. Data structure problem.

The most basic data structure problem is generally for the list of such topics, such as single-linked list reversal, to determine whether the single-linked list intersect, and so on.

The problem of medium difficulty is usually for the problem of binary tree. Reverses the two-fork tree, the binary tree's hierarchical traversal, and so on. It is worth noting that the topic of binary tree can be examined in fact very extensive. For example, the classic LCS of the recent public ancestor topic, in fact, the solution of the idea is very test of the ability to solve the problem: to break the problem down, and then conquer.

High-level data structure is usually a B-tree, figure such as the structures. Generally such questions are seldom tested.

Because the algorithm and data structure are inseparable, so often merge them into the same class, collectively referred to as the algorithm problem, but in fact, there is a difference.

3. For specific areas of the handwritten code question. such as handwriting JDBC query implementation, handwriting producer consumer prototype, handwriting singleton mode, and so on.

Finally, there is a point to note that the handwriting code problem has a feature: you give a way of writing, the interviewer will often ask you have a better wording? What if the title modifies some prerequisites? Therefore, for this kind of problem, in the ordinary study accumulation must pay attention to learn extrapolate.

Peacock Feather = design mode

Peacock Feather, each piece is so beautiful. The design pattern is the same, each design pattern contains the beauty of design. In the classic 23 design patterns, can say 10 kinds of patterns and their ideas, even pass.

Here are some of the patterns you need to master:

To create a class:

Single example (thread safe)? Why does double check lock in Java fail? ), factory method, abstract factory (the difference between factory method and abstract factory)? ), Builder.

Structure class:

Adapter adapter, proxy mode proxy, adorner mode (embodied in Java IO framwork?). ), appearance mode.

Behavior class:

Observer, State mode, template method, policy mode, responsibility chain mode (embodied in jetty? )。

Design patterns in the Internet enterprises in the interview appears relatively few, generally only need to focus on the single-case model can be. As with other models, they can be used to describe their use in JDK or other important open source frameworks.

In addition, in addition to the 23 classic design patterns, it is best to master more modern design patterns such as multiple examples, object pool.

Other links in the development of sentimental ring =java

This part of the content is more, and these technical links and Java development have a close relationship. These include: Linux shell programming or Python script programming, used in server operations, SQL relational database, HTTP TCP network protocol, reverse proxy, distributed cache, and so on. Following the flow of client data in succession, introduced a few more important links.

1 Nignx, Tomcat, Apache, Jetty and other Web servers

Nignx can be used as a reverse proxy, so it is located at the forefront of the entire server system. Tomcat or Apache can be responsible for forwarding requests to the application server. Jetty can help communicate between servers in a distributed cluster.

Need to master Nignx and Apache principles and different, jetty principles, and so on.

2 thread pool, NIO framework, etc.

There is a need to master the principle of high concurrency (threading) in Java and learn about other common ways, such as node. JS's event-based approach, and the way Python Golang, and so on.

Because the performance bottleneck of application server is often on Io, it is necessary to master Java Common NIO framework such as Netty.

3 Message middleware and distributed framework

Need to be familiar with common message middleware such as Kafka, and common distributed framework zookeeper, etc., if the study of the source code is better.

4 Cache

Caching is the bridge between the application server (cluster) and the data server. Memcached and Redis are common. Common problems to be mastered are the memcached and Redis principles, their different, redis persistence, consistent hashing, and so on.

5 data

5.1 Relational database

Need to master common SQL statements, common SQL performance tuning methods and so on. It is important to note that the relational database can also be distributed oh, that is, the Sub-Library sub-table. Another method of performance tuning is paging (limit start), which is often required after a single table has exceeded millions of records, and so on.

5.2 NoSQL

It's best to master the knowledge of Hadoop, Spark, and prepare for a future transformation as a data engineer.

6 Scripting and JVM monitoring

Finally speaking of operation and maintenance phase. In daily operations, you need at least a command of the shell or Python script, with the shell focusing on awk and some common performance monitoring commands. Common topics will allow you to write an awk script that handles the logs, or ask you how to use commands such as PS Iostat netstat vmstat. JVM monitoring is primarily about getting Java core and heap dump, and how to analyze them, as well as some simple monitoring commands such as Jstack and Jmap jhat.

Key points:

This part of the content will often be combined with your project experience to ask. Be careful to answer honestly, don't exaggerate your role in the project, or the interviewer will think you are cheating and dishonest. If that's the case, you're dead!

Overlord gun = System design + architecture Design

What technology is the King of seven kinds of weapons: the gun? Of course it's system design and architecture design! Don't want to be architect's coder not good coder Oh!

To win this round, interviewers usually pay attention to the accumulation of system design & architecture design. Even if we develop only one module in the whole system, we should have a general understanding of the whole system, especially the position and function of our responsible module in the whole system, and how to interact with other modules in the system, it must be very clear.

This part of the study, often will be on-site to give an application scenario, and give a certain constraints and expected to achieve the goal, asked you to give your design plan. Pay special attention to the need to thoroughly understand the requirements before you can design. Because the design and implementation of a system, must be to meet a specific needs. The demand is not clear on the design, equals aimless. The requirements can be broadly divided into several areas:

Functional:

In addition to figuring out the unique functional requirements of specific topics, there are a number of common features to consider, such as, generally speaking, as a server system, there must be a log function, which is essential. Another example, as an e-commerce platform, the product recommended this feature is also necessary, and so on.

On the performance:

In addition to figuring out specific performance requirements for specific topics, consider some common performance metrics, such as scalability, whether to use distributed clusters, throughput, the number of users who can serve at the same time, QPS, etc., response time, and so on. According to the specific data of these performance indicators, combined with other data, such as hardware performance, data size, etc., decide what kind of design, such as the most common distributed cache, plus reverse NIGNX proxy, and so on.

Exception handling:

Write a function, in addition to handling normal input, but also consider the processing of illegal input, although the system design is much larger than writing a function on the scale, but the truth is the same: in addition to consider the implementation of normal business processes, but also to consider the abnormal situation, as well as illegal input.

In the case of Java server systems, there are usually exceptions to consider: Network failure, single point of failure in a server cluster (power outages, and so on), various malicious attacks (SQL injection, malicious impersonation of user clicks, etc.), and so on. The techniques for dealing with these anomalies are: disaster backup, data redundancy backup, distributed transactions, and so on.

Common topics: Design e-commerce second-kill system, design database system, and so on.

parting hook =hr noodles

The parting hook is the last of seven weapons. In the same vein, HR interviews are the last part of an interview.

Research content:

HR will examine other qualities outside of your technology, such as personality, whether you can integrate into the company, whether you can identify with the corporate culture, communication with people will not have problems, and the face of difficult response and so on.

What to ask and what not to ask:

Do not think to this step can rest assured and HR talk price ... So the salary of this piece is best to ask less. At the same time need to pay attention to, such as overtime, such as the best less ask, can wait to get an offer to ask again,

Should ask some enterprise culture aspect thing, this can add a lot of points.

The seventh kind of weapon?

What is the seventh type of weapon? Water: "Oh?" "Car:" No weapons! "Water:" no? "Car:" No, no weapon, no weapons, no weapons, no weapons.

What is the seventh type of weapon in the interview? Eye Rim! Sometimes the interviewer is looking at you. So, you have no fate with this position, haha haha ....

Written in the last

Well, the interviewer's seven weapons will be introduced, if you have any additional welcome message. Finally, I wish you all well acquainted with these weapons of the interviewer so that we can know and Baizhanbudai. Get your offer!.

(Welcome reprint.) Reprint Please specify source: http://www.cnblogs.com/hzg1981/)

Reference documents:

Http://www.bing.com/knows/search?q= seven kinds of weapons &mkt=zh-cn&form=bkacai

Http://www.my285.com/wuxia/gulong/qzwq/index.htm

Seven types of weapons for the interviewer: Java Chapter

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.