1

Hello everyone, my name is Dabin~

My undergraduate degree is not computer science. In my senior year, I started to learn Java by myself and found an offer from Zhongda Factory. I encountered a lot of problems on the way to self-study. Every night, I insisted on going to sleep until one or two o'clock, and finally got an offer of 30w.

I also remind the juniors and juniors to determine their future direction as soon as possible, whether to study for graduate school or work. If you are looking for a job, you should also determine the job position as soon as possible. If you want to change careers, you need to spend more time preparing. Many students only think about what they want to do in the future when they are about to graduate in their senior year, and it is already a bit late at this time. If you miss the school recruitment and go to the social recruitment channel to find a job, the difficulty will increase by a level, and it will be too late to regret it!

Well, let me share with you my self-study experience.

First look at the Java learning roadmap:

There is still a lot of content, and you need to keep persevering!

I would like to share with you a well-organized high-frequency questions PDF 161edfa1cab6dd. The friends who need it can download it by themselves:

http://mp.weixin.qq.com/s?__biz=Mzg2OTY1NzY0MQ==&mid=2247485445&idx=1&sn=1c6e224b9bb3da457f5ee03894493dbc&chksm=ce98f543f9ef7c55325e3bf336607a370935a6c78dbb68cf86e59f5d68f4c51d175365a189f8#rd

Java Basics

The advice for beginners is: more codes! More typing! More typing!

Learning programming is reading books and practicing. You have to do more hands-on, otherwise you will soon forget the knowledge points you have read, and you will encounter many pits and enrich your experience with more practice. You can go to github to find some projects to practice your hands, and consolidate your knowledge by doing projects, and each time you implement a function, you will have a full sense of achievement, and it will also motivate you to keep learning.

Recommended Books:

  • 《head first java》
  • "JAVA Core Technology Volume"

The books in the head first series are more interesting and easier to understand. "JAVA Core Technology Volume" is relatively moderate in difficulty and comprehensive in content, and some chapters (such as Swing) can be skipped.

basic knowledge of Java mainly includes:

  1. class and object
  2. Object-Oriented Features
  3. abstract classes and interfaces
  4. Data types, overriding overloading, encapsulation inheritance polymorphism
  5. Container class Map/List/Set, etc.
  6. IO operations: InputStream, OutputStream, Reader/Writer, file reading, various stream reading, etc.
  7. exception handling
  8. reflection mechanism
  9. Generics
  10. The role of the final keyword
  11. throw and throws
  12. custom exception
  13. inner class
  14. anonymous inner class

IO stream operations:

  1. File class operations on files
  2. byte stream write data
  3. How to read data from byte stream
  4. Byte stream completes the copying of video files
  5. code table
  6. character stream write data
  7. String read data
  8. Use of character buffer streams
  9. standard input and output streams
  10. object serialization stream
  11. memory operation flow
  12. RandomAccessFile
  13. SequenceInputStream
  14. compress stream/decompress stream

set basis :

  1. Collection frame
  2. Features of ArrayList Collection
  3. Constructor of ArrayList
  4. Common operations of ArrayList
  5. HashMap、HashTable、Hashset
  6. HashMap source code
  7. Iterator Iterator
  8. Map collection traversal
  9. LinkedHashMap
  10. ConcurrentHashMap

Java Web

Java Web is a synthesis of a series of technologies, and it is also the technical direction of most Java developers. It is necessary to learn. Check out the video tutorial for this part.

Video recommendation [Shang Silicon Valley]'s full set of JavaWeb tutorials, HTML/CSS/JavaScript and other related front-end can be viewed at double speed.

https://www.bilibili.com/video/BV1Y7411K7zz

The Java web tutorial of [Dark Horse Programmer] is generally good, IDEA version: https://www.bilibili.com/video/BV1qv4y1o79t

HTML&CSS (understand)

  1. Basic use of HTML
  2. HTML common tags
  3. CSS selectors
  4. What's New in HTML5
  5. CSS3 new features

JavaScript (understand)

  1. Embedding in JavaScript
  2. Basic JavaScript syntax
  3. ECMA6 new features
  4. JavaScript flow control
  5. array, function, object
  6. JavaScript Object Oriented
  7. Commonly used built-in objects
  8. JavaScript event binding/triggering
  9. JavaScript DOM manipulation and API
  10. JavaScript BOM object and API

Servlet

  1. Servlet overview
  2. Servlet execution process analysis
  3. Analysis of the Implementation of Servlet
  4. The class of Servlet tries to explain in detail
  5. Servlet life cycle
  6. Analysis of Thread Safety of Servlet

Java EE

  1. JavaEE Specification
  2. Static and dynamic resources
  3. C/S and B/S
  4. Tomcat overview
  5. Tomcat download and installation
  6. Support for each version of Tomcat
  7. Tomcat startup and startup problem analysis and solution
  8. Tomcat directory structure
  9. JavaEE Engineering Overview

tool

The first is Git, the version control tool, that must be mastered. Many students who have just started working may often encounter Git-related problems, such as code conflicts, branch merges, etc., so they still have to learn Git. Recommended Mad God video:

Git zero-based entry to actual combat detailed explanation:

https://www.bilibili.com/video/BV1FE411P7B3

Next up are Maven and Gradle, build tools used to build and manage various projects.

Getting started with maven zero basis:

https://www.bilibili.com/video/BV1TW411g7hP

Git basics

  1. Git overview and features
  2. Basic concepts of Git
  3. Git History Version Control
  4. Git branch version control
  5. Git remote repository
  6. Git remote hosting platform
  7. Git conflict resolution

Maven Basics

  1. Maven environment setup
  2. Maven builds & automated builds
  3. Local Warehouse & Central Warehouse
  4. Maven creates Java and Web projects
  5. pom.xml, dependency management
  6. Coordinates, dependencies, lifecycle, etc.
  7. Introduction to pom file dependency transitivity
  8. Dependency conflict resolution
  9. Maven project inheritance relationship
  10. Maven project aggregation relationship
  11. Building aggregated projects by sub-modules
  12. Introduction and construction of private server warehouse
  13. Upload local resources to private server
  14. Download resources from private server to local
  15. Install third-party resources to the local repository
  16. Install third-party resources to private server repositories

Docker Basics

  1. Docker image command
  2. Docker container commands
  3. Docker deploys MySQL, Redis, etc.
  4. Container save to image
  5. mirror backup
  6. Image recovery and migration
  7. Dockerfile
  8. Docker Compose common commands
  9. Docker private repository usage

database

The database is also a must-learn, mainly the Mysql database. Book Recommendations:

  • "mysql must know must know"
  • "High-performance mysql"

"mysql must know must know" is mainly the basic grammar of Mysql, which is easy to understand. After you have the foundation, look at "High Performance MySQL". This book mainly explains indexes, SQL optimization, advanced features, etc. Many MySQL related interview questions come from the book "High Performance MySQL", which is worth reading.

MySQL Basics:

  1. CRUD
  2. Transaction characteristics, isolation level
  3. Indexing principle, optimization
  4. b+ tree
  5. Leftmost matching principle
  6. storage engine
  7. MVCC
  8. Implementation plan
  9. Sub-library and sub-table
  10. log, bin log/undo log/redo log
  11. complex query of data
  12. use of constraints
  13. Multi-table relationships (one-to-one, one-to-many, many-to-many)
  14. Database restore and backup
  15. Multi-table query operation
  16. Business introduction
  17. transaction isolation
  18. Database user management and authority management
  19. Use of views
  20. Use of stored procedures
  21. Use of triggers
  22. Storage Engine Principle
  23. Index efficient query
  24. lock mechanism
  25. database cluster

frame

Mainstream frameworks are:

  • spring: face-to-face, dependency injection, recommend the book "Spring in Action", and take you step by step to build Spring applications through demo
  • springboot: Habit is better than configuration, automatic configuration. At present, many companies use Spring Boot internally. Book recommendation "Spring Boot in action"
  • springmvc: a lightweight web framework based on the MVC architectural pattern
  • Mybatis: orm framework, recommended book "Mybatis in simple language"
  • springcloud: Now interviews are basically asked about microservices, and it is best to know about microservices. Service registration and discovery, load balancing, service degradation, API gateway, etc. Recommended book "spring cloud microservices in practice"

Spring

  1. Spring overview
  2. Coupling and Decoupling
  3. Factory Design Pattern
  4. IoC overview and role
  5. The concept of dependency injection
  6. Dependency Injection in Spring
  7. Spring annotation-based IoC configuration
  8. The use of common annotations
  9. component scanner
  10. BeanFactoryPostProcessor
  11. BeanPostProcessor
  12. InitializingBean

SpringMVC

  1. Common Components
  2. @RequestMapping annotation
  3. Request parameter encapsulation
  4. Notes on form validation
  5. ServletAPI related annotation usage
  6. Detailed explanation of the return value of the controller method
  7. An introduction to asynchronous interactions and related annotations
  8. Rest-style URLs
  9. @PathVariable annotation
  10. Detailed explanation of cross-domain access and use of @CrossOrigin annotation
  11. Exception Handling in SpringMVC
  12. Interceptors in SpringMVC

MyBatis

  1. global configuration file
  2. mapping configuration file
  3. CRUD
  4. Parameters in depth
  5. result set encapsulation
  6. Connection pooling and transactions in depth
  7. dynamic sql statement
  8. Multi-table query
  9. lazy loading strategy
  10. Add pagination plugin
  11. log integration

Spring Boot

  1. Core Features of SpringBoot
  2. Advantages of SpringBoot
  3. Analysis of the principle of starting dependence
  4. Analysis of the principle of automatic configuration
  5. Customize starter dependencies and implement automatic configuration
  6. SpringBoot configuration file type
  7. Attribute mapping method between configuration file and configuration class
  8. SpringBoot integrates Mybatis
  9. Custom Starter
  10. event listener
  11. initialization process

SpringCloud

  1. Service registry Eureka introduction
  2. Eureka server development
  3. Microservice development and registration to the Eureka service registry
  4. Eureka Protected Mode
  5. Client load and server load
  6. Ribbon implements client load balancing
  7. Implementation of Feign
  8. How Feign works
  9. Avalanche effect and fuses
  10. Fuses Hystrix use
  11. Gateway introduction
  12. Building Gateway Service Based on Gateway
  13. Access microservices through Gateway
  14. Spring Cloud Config
  15. Configuration management using Git storage
  16. Microservice transformation obtains configuration information from the configuration center
  17. Introduction and application of service bus Spring Cloud Bus

Dubbo

  1. Introduction to Dubbo
  2. Dubbo Architecture
  3. Dubbo service provider
  4. Dubbo service consumer
  5. Dubbo related configuration
  6. monitoring Center
  7. Architecture Principles
  8. How It Works and Service Governance
  9. Heartbeat and Communication

middleware

Redis

  1. Advantages of Redis
  2. Five data types of Redis
  3. Basic Operation Commands
  4. Redis persistence (RDB and AOF)
  5. lua script
  6. Distributed lock
  7. pipeline
  8. Redis Data Deletion Policy
  9. Redis data elimination strategy
  10. Cluster master-slave replication
  11. Cluster Sentinel Mode

RocketMQ

  1. Building RocketMQ
  2. RocketMQ-Console
  3. RocketMQ mode
  4. message lost
  5. message repeat
  6. MQ-based distributed transaction solution description

JVM

JVM is also often asked in interviews. Java developers do not need to perform memory management and garbage collection by themselves. JVM does it for us, but it is still necessary to understand the working principle of JVM, so that when problems such as oom occur, they can have ideas to troubleshoot and solve problems. The book recommends Teacher Zhou's "In-depth Understanding of Java Virtual Machine".

Basic knowledge of jvm:

  • JVM memory structure (program counter, virtual machine stack, native method stack, heap, method area, runtime constant pool, direct memory)
  • class loading process
  • class file structure
  • object header
  • parental delegation
  • memory allocation and reclamation
  • Garbage Collection Algorithm
  • garbage collector
  • Tuning tools (jsp/jstack/jstat/jmap, just understand)

Concurrency

For the related content of concurrent programming, you can see the book "JAVA Concurrent Programming Practice". The main contents are:

  1. Basic Definition of Thread
  2. ways to implement threads
  3. thread running status
  4. Thread Pool Principle
  5. Inter-thread communication
  6. Locks (synchronized, ReentrantLock)
  7. Concurrency tool class (CountDownLatch/CyclicBarrier/Semaphore)
  8. Atomic class
  9. AQS
  10. Methods of communication between threads
  11. thread synchronization
  12. thread deadlock

computer basics

Usually take the time to learn basic computer knowledge, consolidate the foundation.

Data Structures and Algorithms

The recommended book "Data Structure and Algorithm Analysis Java Language Description", describes various data structures and algorithms in Java language, which is easier for Java developers to understand, mainly learn the following content:

  • Basic data structures (arrays, linked lists, stacks, queues, etc.)
  • Trees (binary trees, avl trees, b-trees, red-black trees, etc.)
  • heap structure
  • Sorting algorithms (bubble sort, selection sort, insertion sort, quick sort, merge sort, heap sort, etc. and time and space complexity)
  • dynamic programming
  • backtracking
  • how are you

computer network

The "Top-Down Approach to Computer Networks" is recommended:

  • network hierarchy
  • TCP/IP
  • Three handshakes four waves
  • Sliding window, congestion control
  • HTTP/HTTPS
  • the entire process of accessing a link
  • DNS
  • Network security issues (CSRF, XSS, SQL injection, etc.)

operating system

It's a big head to learn, you can go to station B to find the video, recommend Tsinghua University's open class . Book recommendation "In-depth understanding of computer systems", tome, classic books, it is worth reading several times.

Basics:

  1. process thread
  2. inter-process communication
  3. thread synchronization
  4. What is deadlock? producing conditions
  5. Deadlock handling strategy
  6. Pagination and segmentation difference
  7. Process scheduling strategy
  8. what is virtual memory
  9. page replacement algorithm
  10. signal
  11. ...

linux

Recommended book "Brother Bird's Linux Private Kitchen".

The above is the Java learning route. It takes at least half a year to learn the entire route. Persistence is victory!

Finally, I will share with you a github repository, which more than 200 classic computer books , including C language, C++, Java, Python, front-end, database, operating system, computer network, data structure and algorithm, machine learning, programming Life, etc., you can star, and the next time you find a book, you can directly search on it, the warehouse is continuously updated~

github repository: https://github.com/Tyson0314/java-books

If github cannot be accessed, you can access the gitee repository.

gitee repository: https://gitee.com/tysondai/java-books

It is not easy to code words. If you find it helpful, you can !

I'm @Programmer Dabin, I regularly share the core knowledge of Java background, welcome everyone to pay attention~


程序员大彬
468 声望489 粉丝

非科班转码,个人网站:topjavaer.cn