This article was first published on wechat public number — interesting things in the world, handling reprint please indicate the source, otherwise will be held responsible for copyright. Wechat account: A1018998632, QQ group: 859640274
Java knowledge
Java is the foundation of Android development. In the beginning of BAT, more basic Knowledge of Java will be involved, so it is more important. The following books I introduce are from shallow to deep.
- 1.Thinking in Java: This book has been called one of the Three Bibles of Java, although it is relatively thick and contains lengthy examples. But if you read through and type through the examples, I think your Java foundation will be pretty solid.
- 2.Effective Java: Many people compare Thinking in Java to this book, but I think the focus of the two books is different. TIJ focuses on the basics of Java, while EJ covers a wide range of design patterns and best programming techniques. So this book is a little bit higher than TIJ. The book is thin, so it doesn’t look like much effort.
- 3. Understand the Java Virtual Machine in depth: The first two books are introductions to Java, so this last book is a great source for understanding the basics of how Java works. The JVM family of languages is a family of languages, and once you understand the JVM and bytecode, your horizons are no longer limited by the Java language, and you will learn more about languages that are more elegant than Java and use a rich Java class library.
- 4. Concurrent Programming in Java: Although Effective Java and Thinking in Java both spend some time talking about concurrency, they don’t go far enough. Concurrent programming is hard enough to learn through a book.
Here are my notes and summaries from the previous books, so you can see which chapters I focused on and then read the books according to your own needs.
Thinking in Java Notes
The Effective Java notes
In-depth understanding of Java virtual machine notes
Java concurrent programming notes
Knowledge of the Android
BAT for Android knowledge requirements not only stay in the call surface API, in the interview they will often ask some Framwork level of knowledge, so the Android Framwork layer source code is a must see, but to see what extent? At this time you need some books to guide you, the content of the following books is from shallow to deep, we grasp their level as appropriate to choose.
- 1. Heroes of Android: This book doesn’t actually cover much android source code, but it does have a deep understanding of some apis. If you’ve been learning Android for a year, you can read this book.
- 2. Android development art exploration: this book involves a lot of Android source code, each chapter will be shallow to deep, from API calls to specific source code execution process, so read this book requires a little patience, recommended entry android 2 to 3 years of developers to watch.
- 3.Android system source code scenario analysis: I haven’t read much about this book, it is full of talk about the source code of Framwork work mechanism and even in-depth Linux driver, so you can choose to watch.
Here are my notes and summaries from the previous books, so you can see which chapters I focused on and then read the books according to your own needs.
Android development Art Exploration Notes
Knowledge of Java design patterns
Design mode interview time not often rely on, but if asked, is must answer out, otherwise very lose points. Here is a book with Android as well
- Android source code design pattern analysis and combat: this book to Android source code examples of Java design pattern, played a dual role, very suitable for everyone to learn the design pattern.
Here are my notes and summaries from the previous books, so you can see which chapters I focused on and then read the books according to your own needs.
Android source code design pattern analysis and combat notes
Knowledge of algorithms and data structures
Algorithms and data structures are a cliche, and they’re going to be a big part of any interview or written test. So HERE’s a book I’d recommend
- Introduction to Algorithms: This book is very thick and contains a lot of hard arithmetic knowledge. We don’t need to read all of them, grab a few chapters and implement the whole pseudo-code book in Java, and your algorithm won’t be weak. Here are the algorithm sections I recommend implementing
- 1. The second chapter is the basis of the algorithm. All the algorithms are realized and all the problems are done after class
- 2. In chapter 4, divide and conquer strategy, all the algorithms are realized and all the questions are done after class
- 3. Chapter six heap sort, all the algorithm, all the homework
- 4. In chapter 7, quick sort, all the algorithms are realized, and the questions are selected after class
- 5. Chapter 8 linear time sorting, all the algorithms are realized, after class questions are selected
- 6. In Chapter 9, median order statistics, all algorithms are implemented, and questions are selected after class
- 7. Chapter 10, basic data structure. For those who have no basic data structure, all the algorithms will be realized and the questions will be selected after class. Skip the basics
- 8. Chapter 11, hash table, people who have no data structure foundation, all algorithms are realized, and questions are selected after class. Skip the basics
- 9. Chapter 12, binary search tree, algorithm all realized, after class questions selected
- 10. Chapter 13, red-black tree, all the algorithms are realized, and the questions are selected after class
- 11. Chapter 15, Dynamic programming, all the algorithms are realized, and questions are selected after class
- 12. Chapter 16, greedy algorithm, algorithm all realized, after class questions selected
- 13. Chapter 18, B tree, algorithm all realized, after class questions selected
- 14. Chapter 22, the basic graph algorithm, algorithm all realized, after class questions selected to do
- 15. In Chapter 23, minimum spanning tree, all algorithms are realized and questions are selected after class
- 16. In Chapter 24, single source shortest path, all algorithms are realized, and questions are selected after class
Computer system knowledge
BAT interviews are likely to ask about computer system knowledge, such as processes and threads, virtual memory, file systems and so on. So I need to supplement my knowledge in this area.
- Modern operating systems: This is a pretty big book, so all you have to do is read a few commonly tested chunks of knowledge:
- 1. Processes and threads
- 2. Memory management
- File management
- 4. A deadlock
Here are my notes and summaries from the previous books, so you can see which chapters I focused on and then read the books according to your own needs.
Chapter notes on modern operating systems
Database knowledge
BAT often puts Java interviewers on Android, so database knowledge is often considered breadth knowledge. Since I use Mysql a lot, here is a book
- Mysql Performance Notes: This book is also fairly thick, so we just need to focus on the highlights. The key points are as follows
- 1. Overview of Mysql
- 2. Index relevant chapters
- 3.SQL optimization related chapters
Computer Network knowledge
Computer network is also a place that BAT interviewers often test. This is also something that many people talk about badly, so I will not introduce books and give you the focus of drawing
- 1. Knowledge of HTTP, including the internal structure of an HTTP request, the different versions of HTTP, features of HTTP, etc.
- 2. Knowledge of TCP, including three-way handshake, four-way wave, window sliding, congestion control, etc
- 3.IP knowledge
- 4.5 Layer and layer 7 network architecture knowledge, here only need to understand the framework, the specific protocol of each layer in addition to the above mentioned do not need special understanding.
Knowledge of Android open source projects
During BAT interviews, interviewers will often ask what open source frameworks have been used in the project, such as image loading framework, HTTP request framework, etc. It’s not enough that you can use it. You need to analyze the architecture and source code of the open source framework to make a good impression on the interviewer. Here I recommend a few open source frameworks, you can go to see their source code, in the interview or some said material.
- 1.Http request framework: Volley, OkHttp, Retrofit, NoHttp
- 2. Picture loading frame: Fresco, Picasso, Glide
- 3. Asynchronous framework: RxJava
- 4. Architectural framework: Databinding
The following is a summary of my translation of the Fresco source code project and the databinding source code analysis, for those who are interested in this
Fresco’s summary from scratch
MVVM architecture chapter databinding source code parsing
No angst peddling, no clickbait. Share some interesting things about the world. Topics include but are not limited to: science fiction, science, technology, the Internet, programmers, computer programming. The following is my wechat public number: Interesting things in the world, dry goods waiting for you to see.