There are many Java learning books on the market. Most of the books explain the most basic parts of Java. Some slightly informal books may have some wrong content, and there are also all kinds of strange ones on the Internet. Many Java interview questions also focus on the basics of Java. In fact, if you apply for a senior Java development engineer, the inventory of these basic knowledge is far from enough. In addition, you must understand algorithms, data structures, operating systems, etc. Because the content involves a lot, I will not explain specific technologies. Instead, I have compiled interview questions for recruiting senior Java development engineers from companies. I hope it will be helpful to everyone.
##1. Java basics1. Object-orientedMaster the core ideas of object-oriented and have a deep understanding Master and understand the technologies related to encapsulation, inheritance and polymorphism2, I/OMaster the byte streams FileInputStream, FileOutputStream and character streams FileWriter, OutputStreamWriter and use them skillfullyMaster File Type construction, acquisition, creation and deletion3. Multi-threadingMaster the Thread typeMaster the principles of multi-threaded program operation and concurrency4 , ExceptionsMaster the working principle of exceptions and master the handling methods of exceptions2. Java Virtual Machine1. JVM memory area divisionMaster the JVM Memory parameter setting and tuningMaster the functions and basic principles of the program counter, heap, virtual machine stack, local method stack, method area (removed in Java8), and metaspace (new in Java8)2. Class loading Master the loading stages of classes: loading, linking (verification, preparation, parsing) initialization, use, and unloading. Master the classification of class loaders and their application class loaders and custom loaders. 3. J2EE Master the built-in objects, actions and related characteristics and working principles of Servlet Master the IOC and AOP implementation principles of the Spring framework (reflection and dynamic proxy) Master the working principles of at least one MVC framework (Spring MVC) and use it skillfully. 4. Data structures and algorithmsMaster the characteristics of linear tables and trees and use them skillfullyMaster common sorting and search algorithms: insertion sort (Hill sort), Selection sort (heap sort), exchange sort (bubble sort) sequential search, binary search, hash search Proficiency in using sorting and search ideas to solve programming problems 5. Database
Master the writing of SQL statementsMaster the optimization of the database (SQL level and table design level)Master at least one database productBe familiar with high concurrency and big data Database development under the circumstances. 6. Web Technology Master the working principle of AJAX. Familiar with at least one JS framework (such as JQuery) 7. Linux Proficient in using common Linux commands Familiar with the basic concepts and features of the Linux operating system 8. Regular expressionsMaster common regular expressions