At present, there are "Java xx book" Similar books, and the contents of the book are focused on the most basic part of Java, the most serious is that there is a lot of wrong content, very misleading. In addition, there are a variety of Java interview questions on the web, many of which are also focused on the Java language Foundation. In fact, if you want to apply for Senior Development Engineer Job, just understand the basic knowledge of Java is not enough, but also must know the common data structure, algorithm, network, operating system and other knowledge. Therefore this article does not explain the concrete technology, the author synthesizes oneself to apply each big company's experience, has collated a big company to the Java Senior Development Engineer position appraisal outline, hoped can help to the need person.
1 Java Basics
1.1 Collection and map
(1) Mastering the succession system of collection and map.
(2) Master ArrayList, LinkedList, Vector, Stack, Priorityqueue, HashSet, Linkedhashset, TreeSet, HashMap, Linkedhashmap, TreeMap, Weakhashmap, Enummap, TreeMap, hashtable characteristics and the principle of implementation.
(3) Master copyonwritearraylist, Copyonwritearrayset, concurrenthashmap of the implementation of the principle and application of the scene.
1.2 IO
(1) Mastering the succession system of InputStream, OutputStream, Reader and writer.
(2) Mastering the byte stream (FileInputStream, DataInputStream, Bufferedinputstream, Fileoutputsteam, DataOutputStream, Bufferedoutputstream) and character streams (BufferedReader, InputStreamReader, FileReader, BufferedWriter, OutputStreamWriter, PrintWriter, FileWriter), and skilled use.
(3) Master the principle of NIO implementation and the use of methods.
1.3 Exceptions
(1) Mastering the Throwable succession system.
(2) Master the abnormal working principle.
(3) Understand common exceptions (such as FileNotFoundException), non-inspected exceptions (such as NullPointerException), and errors (such as IOError).
1.4 Multi-Threading
(1) Master executors can create three kinds (JAVA8 added a, a total of four kinds) thread pool characteristics and application scope.
(2) Mastering multi-thread synchronization mechanism, and skilled use.
1.5 Socket
(1) Master socket Communication principle.
(2) Skilled use of multi-threaded socket for programming.
2 Java Virtual machine
2.1 JVM Memory Area Division
(1) Master the function and basic principle of program counter, heap, virtual machine stack, local method stack, method area (JAVA8 removed), Meta space (JAVA8 new).
(2) to master the division of the heap: The New Generation (Eden, Survivor1, Survivor2) and the old age of the role and working principle.
(3) Mastering the JVM memory parameter setting and tuning.
class 2.2 Loading
(1) Mastering the loading phase of classes: loading, linking (validating, preparing, parsing), initializing, using, and uninstalling.
(2) Mastering class loader classification and its application: Start the ClassLoader, extension class loader, application ClassLoader, custom loader.
3 Java
(1) Master JSP built-in objects, actions and related characteristics and working principle.
(2) Mastering the characteristics and working principle of servlet.
(3) Master the IOC and AOP implementation principles of the Spring Framework (reflection and dynamic proxies).
(4) Grasp at least one MVC framework (Spring mvc,struts, etc.) working principle, and skilled use.
(5) Grasp at least one ORM framework (Hibernate,mybatis, etc.) working principle, and skilled use.
4 data structures and algorithms
(1) Mastering the characteristics of linear tables and trees and using them skillfully.
(2) Mastering common Sorting and finding algorithms: Insert sort (direct insert sort, hill Sort), select sort (Direct select sort, heap sort), swap sort (bubble sort, quick sort), merge sort, order lookup, binary lookup, hash lookup.
(3) Skilled use of common sorting and finding algorithms to solve programming problems.
(4) Understand several basic algorithms: greedy algorithm, divide and conquer strategy, dynamic programming.
5 Computer network
(1) Master the hierarchical structure of the network, and the functional characteristics of each layer.
(2) Master the communication Principle of TCP/IP (three handshake, four wave)
6 Database
(1) Mastering complex SQL statement writing.
(2) Mastering the Database optimization (SQL level and table design level).
(3) At least one database product.
(4) familiar with high concurrency, big data in the case of database development.
7 Web Technology
(1) Learn how Ajax works.
(2) Be familiar with at least one JS framework (such as jquery).
8 Design Patterns
(1) familiar with the common design patterns.
(2) The design pattern theory is applied to the actual development.
9 Linux
(1) Skilled use of common Linux commands.
(2) familiar with the basic concepts and characteristics of Linux operating system.
(3) familiar with shell scripts.
10 Operating system
(1) Master the process management of the operating system.
(2) Understand the I/O of the operating system.
11 Regular Expressions
(1) Mastering common regular expression symbols.
(2) Skilled use of regular expressions to solve practical problems (such as matching phone numbers, mailboxes, domain names, etc.).
Go Senior Java Development Engineer Interview exam