关于java:自学Java找到20k的工作

34次阅读

共计 4960 个字符,预计需要花费 13 分钟才能阅读完成。

大家好,我是大彬~

我本迷信的不是计算机,大四开始自学 Java,并且找到了中大厂的 offer。自学路上遇到不少问题,每天晚上都是保持到一两点才睡觉,最终也拿到了 30w 的 offer。

在这里也揭示学弟学妹们,要尽早确定当前的方向,读研还是工作,找工作的话,也要尽快确定工作岗位,想转行的,须要花更多的工夫筹备。很多同学到了大四快毕业的时候,才思考本人将来要做什么,这个时候曾经有点晚了。如果错过了校招,走社招渠道去找工作,难度将会晋升一个等级,到时悔恨也来不及!

好了,上面给大家分享一下我的自学教训。

首先看一下 Java 学习路线图:

内容还是挺多的,须要一直保持!

给大家分享一份精心整顿的 大厂高频面试题 PDF,须要的小伙伴能够自行下载:

http://mp.weixin.qq.com/s?__b…

Java 根底

初学者的倡议就是:多敲代码!多敲代码!多敲代码!

学习编程就是看书加实际,要多入手,不然看过的知识点很快就会忘,而且多实际也会遇到很多坑,丰盛教训。能够到 github 上找一些我的项目练练手,通过做我的项目坚固常识,而且每实现一个性能之后,会有满满的成就感,也会激励你一直去学习。

举荐书籍:

  • 《head first java》
  • 《JAVA 核心技术卷》

head first 系列的书籍解说比拟乏味,比拟好了解。《JAVA 核心技术卷》难度绝对适中,内容也比拟全面,局部章节(如 Swing)能够跳过。

Java 基础知识次要有:

  1. 类与对象
  2. 面向对象个性
  3. 抽象类和接口
  4. 数据类型、重写重载、封装继承多态
  5. 容器类 Map/List/Set 等
  6. IO 操作:InputStream,OutputStream,Reader/Writer,文件读取,各种流读取等
  7. 异样解决
  8. 反射机制
  9. 泛型
  10. final 关键字的作用
  11. throw 和 throws
  12. 自定义异样
  13. 外部类
  14. 匿名外部类

IO 流操作:

  1. File 类对文件的操作
  2. 字节流写数据
  3. 字节流读数据的形式
  4. 字节流实现视频文件的复制
  5. 编码表
  6. 字符流写数据
  7. 字符串读数据
  8. 字符缓冲流的应用
  9. 规范输入输出流
  10. 对象序列化流
  11. 内存操作流
  12. RandomAccessFile
  13. SequenceInputStream
  14. 压缩流 / 解压缩流

汇合根底

  1. 汇合框架
  2. ArrayList 汇合的特点
  3. ArrayList 的构造方法
  4. ArrayList 的罕用操作
  5. HashMap、HashTable、Hashset
  6. HashMap 源码
  7. 迭代器 Iterator
  8. Map 汇合遍历
  9. LinkedHashMap
  10. ConcurrentHashMap

Java Web

Java Web 是一系列技术的综合,也是大多数 Java 开发者的技术方向。有必要学习一下。这部分能够看看视频教程。

视频举荐【尚硅谷】的 JavaWeb 全套教程,HTML/CSS/JavaScript 等跟前端相干的能够倍速观看。

https://www.bilibili.com/vide…

【黑马程序员】的 Java web 教程总体也不错,IDEA 版本的:https://www.bilibili.com/vide…

HTML&CSS(理解)

  1. HTML 根本应用
  2. HTML 罕用标签
  3. CSS 选择器
  4. HTML5 新个性
  5. CSS3 新个性

JavaScript(理解)

  1. JavaScript 嵌入形式
  2. JavaScript 根本语法
  3. ECMA6 新个性
  4. JavaScript 流程管制
  5. 数组、函数、对象
  6. JavaScript 面向对象
  7. 罕用内置对象
  8. JavaScript 事件绑定 / 触发
  9. JavaScript DOM 操作及 API
  10. JavaScript BOM 对象及 API

Servlet

  1. Servlet 概述
  2. Servlet 执行过程剖析
  3. Servlet 的实现形式剖析
  4. Servlet 的类试图详解
  5. Servlet 的生命周期
  6. Servlet 的线程平安问题剖析

Java EE

  1. JavaEE 标准
  2. 动态资源和动静资源
  3. C/ S 和 B /S
  4. Tomcat 概述
  5. Tomcat 下载与装置
  6. Tomcat 各版本所需反对
  7. Tomcat 启动及启动问题剖析及解决
  8. Tomcat 目录构造
  9. JavaEE 工程概述

工具

首先是 Git,版本控制工具,必须把握。很多刚工作的同学,可能常常会遇到 Git 相干的问题,如代码抵触、分支合并等,所以还是得把 Git 学会。举荐狂神的视频:

Git 零根底入门到实战详解:

https://www.bilibili.com/vide…

接下来是 Maven 和 Gradle,构建工具,用来构建和治理各种我的项目。

maven 零根底入门:

https://www.bilibili.com/vide…

Git 基础知识

  1. Git 概述和特点
  2. Git 基本概念
  3. Git 历史版本控制
  4. Git 分支版本控制
  5. Git 近程仓库
  6. Git 近程托管平台
  7. Git 解决抵触

Maven 基础知识

  1. Maven 环境搭建
  2. Maven 构建 & 自动化构建
  3. 本地仓库 & 地方仓库
  4. Maven 创立 Java、Web 工程
  5. pom.xml、依赖治理
  6. 坐标、依赖、生命周期等
  7. pom 文件依赖传递介绍
  8. 依赖抵触的解决
  9. Maven 我的项目继承的关系
  10. Maven 我的项目聚合的关系
  11. 分模块搭建聚合我的项目
  12. 公有服务器仓库介绍和搭建
  13. 本地资源上传到公有服务器
  14. 从公有服务器下载资源到本地
  15. 装置第三方资源到本地仓库
  16. 装置第三方资源到公有服务器仓库

Docker 基础知识

  1. Docker 镜像命令
  2. Docker 容器命令
  3. Docker 部署 MySQL、Redis 等
  4. 容器保留转为镜像
  5. 镜像备份
  6. 镜像复原和迁徙
  7. Dockerfile
  8. Docker Compose 常用命令
  9. Docker 公有仓库应用

数据库

数据库也是必学的一块内容,次要是 Mysql 数据库。书籍举荐:

  • 《mysql 必知必会》
  • 《高性能 mysql》

《mysql 必知必会》次要是 Mysql 的根底语法,很好了解。前面有了根底再看《高性能 mysql》,这本书次要解说索引、SQL 优化、高级个性等,很多 Mysql 相干面试题出自《高性能 Mysql》这本书,值得一看。

MySQL 基础知识:

  1. 增删改查
  2. 事务个性、隔离级别
  3. 索引原理、优化
  4. b+ 树
  5. 最左匹配准则
  6. 存储引擎
  7. MVCC
  8. 执行打算
  9. 分库分表
  10. 日志,bin log/undo log/redo log
  11. 数据的简单查问
  12. 束缚的应用
  13. 多表关系(一对一、一对多、多对多)
  14. 数据库的还原和备份
  15. 多表查问操作
  16. 事务介绍
  17. 事务的隔离
  18. 数据库的用户治理和权限治理
  19. 视图的应用
  20. 存储过程的应用
  21. 触发器的应用
  22. 存储引擎原理
  23. 索引高效查问
  24. 锁机制
  25. 数据库集群

框架

支流框架次要有:

  • spring:面向切面、依赖注入,举荐书籍《Spring 实战》,通过 demo 的形式带你一步步搭建 Spring 利用
  • springboot:习惯优于配置、主动配置。目前很多公司外部都是应用 Spring Boot。书籍举荐《Spring Boot 实战》
  • springmvc:基于 MVC 架构模式的轻量级 Web 框架
  • Mybatis:orm 框架,举荐书籍《深入浅出 Mybatis》
  • springcloud:当初面试根本都会问到微服务相干的内容,最好理解下微服务相干的常识。服务注册与发现、负载平衡、服务降级、API 网关等。举荐书籍《spring cloud 微服务实战》

Spring

  1. Spring 概述
  2. 耦合与解耦
  3. 工厂设计模式
  4. IoC 概述及作用
  5. 依赖注入的概念
  6. Spring 中的依赖注入
  7. Spring 基于注解的 IoC 配置
  8. 罕用注解的应用
  9. 组件扫描器
  10. BeanFactoryPostProcessor
  11. BeanPostProcessor
  12. InitializingBean

SpringMVC

  1. 罕用组件
  2. @RequestMapping 注解
  3. 申请参数封装
  4. 表单校验相干注解
  5. ServletAPI 相干的注解应用
  6. 控制器办法的返回值详解
  7. 的异步交互和相干注解介绍
  8. Rest 格调 URL
  9. @PathVariable 注解
  10. 跨域拜访详解和 @CrossOrigin 注解的应用
  11. SpringMVC 中的异样解决
  12. SpringMVC 中的拦截器

MyBatis

  1. 全局配置文件
  2. 映射配置文件
  3. 增删改查
  4. 参数深刻
  5. 后果集封装
  6. 连接池与事务深刻
  7. 动静 sql 语句
  8. 多表查问
  9. 提早加载策略
  10. 新增分页插件
  11. 日志集成

Spring Boot

  1. SpringBoot 的外围性能
  2. SpringBoot 的劣势
  3. 起步依赖原理剖析
  4. 主动配置原理解析
  5. 自定义起步依赖并实现主动配置
  6. SpringBoot 配置文件类型
  7. 配置文件与配置类的属性映射形式
  8. SpringBoot 整合 Mybatis
  9. 自定义 Starter
  10. 事件监听
  11. 初始化流程

SpringCloud

  1. 服务注册核心 Eureka 介绍
  2. Eureka 服务端开发
  3. 微服务开发并注册到 Eureka 服务注册核心
  4. Eureka 保护模式
  5. 客户端负载和服务端负载
  6. Ribbon 实现客户端负载平衡
  7. Feign 的实现
  8. Feign 工作原理
  9. 雪崩效应与熔断器
  10. 熔断器 Hystrix 应用
  11. 网关介绍
  12. 基于 Gateway 构建网关服务
  13. 通过 Gateway 网关拜访微服务
  14. Spring Cloud Config
  15. 应用 Git 存储的形式实现配置管理
  16. 微服务革新从配置核心获取配置信息
  17. 服务总线 Spring Cloud Bus 介绍和利用

Dubbo

  1. Dubbo 简介
  2. Dubbo 架构
  3. Dubbo 服务提供方
  4. Dubbo 服务生产方
  5. Dubbo 相干配置
  6. 监控核心
  7. 架构原理
  8. 工作原理与服务治理
  9. 心跳与通信

中间件

Redis

  1. Redis 劣势
  2. Redis 五大数据类型
  3. 基本操作命令
  4. Redis 长久化(RDB 和 AOF)
  5. LUA 脚本
  6. 分布式锁
  7. pipeline
  8. Redis 数据删除策略
  9. Redis 数据淘汰策略
  10. 集群主从复制
  11. 集群哨兵模式

RocketMQ

  1. 搭建 RocketMQ
  2. RocketMQ-Console
  3. RocketMQ 模式
  4. 音讯失落
  5. 音讯反复
  6. 基于 MQ 的分布式事务解决方案阐明

JVM

jvm 也是面试常常会问的内容。Java 开发者不必本人进行内存治理、垃圾回收,jvm 帮咱们做了,然而还是有必要理解下 jvm 的工作原理,这样在呈现 oom 等问题的时候,才有思路去排查和解决问题。书籍举荐周老师的《深刻了解 Java 虚拟机》。

jvm 的基础知识:

  • jvm 内存构造(程序计数器、虚拟机栈、本地办法栈、堆、办法区、运行时常量池、间接内存)
  • 类加载过程
  • 类文件构造
  • 对象头
  • 双亲委派
  • 内存调配和回收
  • 垃圾回收算法
  • 垃圾回收器
  • 调优工具(jsp/jstack/jstat/jmap,理解即可)

并发

并发编程的相干内容能够看看《JAVA 并发编程实战》这本书,次要内容有:

  1. 线程的根本定义
  2. 实现线程的种办法
  3. 线程运行状态
  4. 线程池原理
  5. 线程间通信形式
  6. 锁(synchronized、ReentrantLock)
  7. 并发工具类(CountDownLatch/CyclicBarrier/Semaphore)
  8. 原子类
  9. AQS
  10. 线程间通信的办法
  11. 线程同步
  12. 线程死锁

计算机基础知识

平时抽空学习计算机基础知识,坚固根底。

数据结构和算法

举荐书籍《数据结构与算法剖析 java 语言形容》,用 Java 语言形容各种数据结构和算法,对于 Java 开发者来说,更容易了解,次要学习以下内容:

  • 根本数据结构(数组、链表、栈、队列等)
  • 树(二叉树、avl 树、b 树、红黑树等)
  • 堆构造
  • 排序算法(冒泡排序、抉择排序、插入排序、疾速排序、归并排序、堆排序等及工夫空间复杂度)
  • 动静布局
  • 回溯
  • 贪婪算法

计算机网络

举荐《计算机网络自顶向下办法》:

  • 网络分层构造
  • TCP/IP
  • 三次握手四次挥手
  • 滑动窗口、拥塞管制
  • HTTP/HTTPS
  • 拜访某个链接的整个过程
  • DNS
  • 网络安全问题(CSRF、XSS、SQL 注入等)

操作系统

学起来比拟头大,能够到 b 站找找视频看,举荐清华大学的公开课。书籍举荐《深刻了解计算机系统》,大部头,经典书籍,值得多读几遍。

基础知识:

  1. 过程线程
  2. 过程间通信形式
  3. 线程同步形式
  4. 死锁是什么?产生条件
  5. 死锁解决策略
  6. 分页分段区别
  7. 过程调度策略
  8. 虚拟内存是什么
  9. 页面置换算法
  10. 信号量

linux

举荐书籍《鸟哥的 linux 私房菜》。

以上就是 Java 的学习路线,整个路线学习下来,根本起码也要半年工夫,保持就是胜利!

最初给大家分享一个 github 仓库,下面放了200 多本经典的计算机书籍,包含 C 语言、C++、Java、Python、前端、数据库、操作系统、计算机网络、数据结构和算法、机器学习、编程人生等,能够 star 一下,下次找书间接在下面搜寻,仓库继续更新中~

github 仓库:https://github.com/Tyson0314/…

如果 github 拜访不了,能够拜访 gitee 仓库。

gitee 仓库:https://gitee.com/tysondai/ja…

码字不易,小伙伴们感觉有帮忙的话,能够 点个赞

我是 @程序员大彬,定期分享 Java 后盾外围常识,欢送大家关注~

正文完
 0