JAVA Architect interview questions, how to become architect __java

Source: Internet
Author: User
Tags redis
Java Architects interview questions, how to become architectsOften interview some candidates, sorted out my interview using the topic, LU continued to organize a lot of problems, so each time to draw a part to ask. The answer will be gradually released in later articles.

Basic Topics

State of Java Threads

The difference between process and thread, how processes communicate, how threads communicate between

What the HASHMAP data structure is. How it is achieved. The difference between the Hashtable,concurrenthashmap and the

The difference between cookies and session

What's the use of indexing. How to build an index.

How ArrayList is achieved, the difference between ArrayList and LinkedList. ArrayList how to achieve expansion.

Equals method implementation

Object-oriented

Thread state, what's the difference between blocked and waiting?

How the JVM loads byte-code files

JVM GC,GC algorithm.

What happens when the full GC appears, and what happens to the Yong GC.

JVM Memory model

Java Runtime Data area

The realization principle of the transaction

Technical Depth

Have you seen the JDK source code, see the class implementation principle is what.

HTTP protocol

TCP protocol

Consistent hash algorithm

How the JVM loads byte-code files

How the ClassLoader unloads byte codes

The difference between IO and NIO, the advantages of NIO

The implementation principle of Java thread pool, the function of KeepAliveTime and other parameters.

Implementation principle of HTTP connection pool

Realization principle of database connection pool

The realization principle of database

Technical Framework

See what source framework source code

Why use Redis,redis have the advantages and disadvantages. Redis how to achieve expansion.

Netty is how to use the thread pool, why do you use

Why use Spring,spring's pros and cons

Spring's IOC container initialization process

Spring's IOC container implementation principle, why beans can be found through byname and Bytype

Spring AOP Implementation Principles

How the message middleware is implemented, and what are the technical difficulties

System Architecture

How to build a highly available system

Which design patterns can increase the scalability of the system

Introduces design patterns, such as template mode, command mode, policy mode, adapter mode, bridging mode, decoration mode, observer mode, state mode, visitor mode.

Abstract ability, how to improve the efficiency of research and development.

What is high cohesion low coupling, please give examples of how to implement

What is the situation with the interface, what situation with the message

If AB two systems depend on each other, how to unbind

How to write a design document, what is the directory

What scenario should split the system and what scenario should merge the system

The difference between system and module, which is used in different scenarios

Distributed Systems

Distributed transactions, two-phase commit.

How to implement distributed locks

How to implement distributed session

How to guarantee the consistency of messages

Load Balancing

Forward proxy (client proxy) and reverse proxy (server-side proxy)

Implementation principle of CDN

How to improve the QPS and throughput of the system

Practical Ability

Have dealt with the online problem. Memory leaks, CPU utilization elevation, and how to deal with the application without response.

Any technical problems encountered in the development. How to solve the

If you have a billions of whitelist, you need to have a high concurrent query every day, and you need to update it at night and how to design this feature.

How Sina Weibo is implemented to push Twitter to subscribers

How Google returns the search results to the user in a second.

12306 How to achieve the booking system of the website, how to ensure that no ticket will not be oversold.

How to implement a second kill system to ensure that only a few users can buy a product.

Soft Ability

How to learn a new technology, such as how to learn Java, focus on what to learn

What new technologies are there to focus on

How to deal with a lot of work tasks when they are very miscellaneous

How the project delays processing

How to deal with the different design ideas of colleagues

How to ensure the development quality

What is career planning. Short term, what is the long-term goal

What is the team planning?

Can introduce the next from the work to the present own growth in there



The level of the Java architect:


Now that the Java architect, first of all, if you're a senior Java Siege Corpse, use a variety of frameworks and know how they're implemented. JVM virtual machine principle, tuning, understand that the JVM allows you to write better code; Pool technology, what object pool, connection pool, thread pool ...:; Java reflection Technology, but there are serious performance problems, alternative Java bytecode technology; NIO, there's nothing to say, It is noteworthy that the "Direct memory" features, the use of the scene; Java multithreading synchronous asynchronous; Java various collection Object Realization principle, understand these can let you choose the appropriate data structure in solving the problem, solve the problem efficiently, such as hashmap principle of realization, A lot of people over five years of experience don't know, and there are performance problems when it comes to expansion. Without figuring out these principles, you can't write efficient code, and you'll think you're doing the right thing. In short, the more basic things more important, many people think they will use them to write code, in fact, just know how to invoke the API, it is still far from the use.

Proficient in the use of various data structures and algorithms, array, hash, list, sort tree ..., a sentence is either time to change space or space to change time, here to expand can say a lot of, need to have some application experience, to solve a variety of performance or business problems;

Skilled use of Linux operating system, the necessary, nothing to say.

Familiar with the TCP protocol, create a three-time handshake and disconnect four times the entire process of handshake, do not understand, can not be optimized for high concurrent network applications; Familiar with HTTP protocols, especially HTTP headers, I've found that many more than five years of work are not clear about the lifecycle of sessions and cookies and the associations between them.

System cluster, load balancing, reverse proxy, static and dynamic separation, Web site statics.

Distributed Storage Systems Nfs,fastdfs,tfs,hadoop understand their pros and cons and apply scenarios.

Distributed caching technology Memcached,redis, improve the performance of the system must, in a word, put the contents of the hard disk into the memory to speed up, by the way an algorithm consistent hash.

Tools Nginx essential Skills super easy to use, high-performance, basically will not hang off the server, a lot of functions to solve various problems.

Database design capabilities, MySQL essential, the most basic database tools, free to use, the basic parameters of its optimization, slow query log analysis, master-slave replication configuration, at least to become half MySQL DBA. Other NoSQL databases such as MongoDB.

There is also the queue middleware. such as message push, you can first write the message to the database, push put on the queue server, by the push server to queue to obtain processing, so that the message can be placed in the database and queue directly to the user feedback, push process by the push server and queue Server completion, the benefits of asynchronous processing, ease the server pressure, the solution of the Lotus root system.

The above is a commonly used technology, there are a lot of their own slowly to explore it; because there are many things to know, so to become a qualified architect, you must have a strong self-learning ability, no one will hand-hand to teach you everything.

Want to become an architect is not to understand a lot of technology on it, these are the basis for the problem, is the tool, do not know how to solve these solutions. This is necessary to become an architect.

Architects also need to address business features, system performance requirements to solve the problem of the lowest cost of the design is qualified, someone else a hundreds of users of the system, a small amount of traffic, data, you give people on the cluster, distributed storage, high-end server, in order to structure and architecture, this is the most nonsense, The architect's role is to meet business requirements first, the second lowest hardware network cost and technical maintenance costs.

The architect also needs to be based on the business development phase anticipate the solution to the next phase of the system architecture, and take into account the upgrade of the schema when designing the current architecture, and make it easy to upgrade; otherwise, if the system bottleneck comes up, there is a problem, or the existing schema cannot be expanded to throw the redo directly, or expand the problem of a lot of trouble, which will cause losses to the enterprise.

Programmers should need to have self-knowledge, will be, will not be, the rapid development of the Internet era, can only keep up with the progress of the times, will not be eliminated.

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.