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

大家好,我是大彬~

我本迷信的不是计算机,大四开始自学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后盾外围常识,欢送大家关注~

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理