【java后端学习路线1】java基础+数据结构与算法+Mysql数据库,985本海硕自学转码之路

JAVA后端学习路线

路线总览

javase->Mysql->计算机网络->JavaWeb->Maven(1)->Spring->SpringMVC->Mybatis->Maven(2)

->Linux->Git->SpringBoot->MyBatisPlus->Redis->JVM->JUC->Nginx->Docker->RabbitMQ->SpringCloud

->项目(谷粒商城/仿牛客网)

方法论

每天刷leetcode

看视频(写demo…)->记笔记->看javaGuide->温习

Java基础(45天)

推荐视频1:韩顺平java基础

推荐理由: 韩老师的java基础课程总时长199小时,讲解非常细致,零基础小白绝对没有问题,java基础我学习的是韩顺平老师的视频

学习建议: 第23章之后的可以跳过(24章可以选看),视频建议1.5倍数播放,深入理解面向对象编程的思想:封装、继承、多态,第15章集合部分,第一遍一定要跟着老师的源码走下来,不懂的话可以多看几遍,面试经常问。第23章反射,其实思想很简单,万物皆对象,属性、方法也都是对象。第24章Mysql,这里只是基础语法,可以直接跳过,直接去学尚硅谷宋红康老师的mysql

推荐视频2:尚硅谷Java入门视频教程

推荐理由:康师傅的语言艺术非常到位,生动形象,如果java基础跟着韩老师,建议把康师傅视频P662-P692JDK8新特性学习了,尤其是stream流,理解函数式编程思想(其实就是匿名内部类)

常见面试题

建议每学完一个技术,去看看JavaGuide面试指南,就是所谓的"java八股文",里面有所有常见的面试题,同时也可以巩固自己刚学的知识

  1. 面向对象三大特征及理解
  2. 接口和抽象类的区别
  3. 什么是SPI
  4. 重写和重载的区别
  5. try-catch-finally
  6. IO流设计模式
  7. IO流模型:BIO、NIO、AIO
  8. HashMap底层(很多公司)
  9. ConcurrentHashMap数据结构(很多公司)
  10. ArrayList扩容机制(略多公司)
  11. java代理模式:JDK 动态代理+ CGLIB 动态代理

数据结构与算法(每天)

推荐:代码随想录

Leetcode Hot100 剑指offer 尚硅谷数据结构与算法-韩顺平

推荐理由:数据结构与算法,对与非科班的同学,如果时间比较充裕可以先看尚硅谷数据结构与算法;我没有看,我是直接就跟着代码随想录刷leetcode。强推Carl哥的代码随想录,分为数组、链表、哈希表、字符串、双指针、栈与队列、二叉树、回溯算法、贪心算法、动态规划。每一道题都配有非常详细的题解,我不推荐上来就leetcode直接刷,比较乱,按着代码随想录一个模块一个模块刷,可以加强自己对每个数据结构的理解。carl哥的回溯算法和贪心算法真的讲的特写好。

学习建议:刚开始刷Leetcode一定不要一直想一道题,这样容易打击自己的自信心,我刚开始连简单题都写不出来,想10-20分钟写不出来,直接去看题解。刚开始建议每天1-3题。代码随想录刷完一共大概170题,代码随想录可以多刷几次,刷题在精,不再多,一定要保证自己刷过几遍的题目会做(代码随想录我一共刷了3遍)。代码随想录刷完后,刷Leetcode hot100,这个时候手感应该已经很好了,大部分题目基本都知道用什么方法去解。

补充:对于二叉树的递归,一定不要自己一直在脑海里面想,就简单想成root、root.left、root.right三个节点,建议看看这个博客:三道题套路解决递归问题

对于回溯算法,牢记回溯模板,基本都没问题,回溯模板如下(来自代码随想录)

void backtracking(参数) {
    if (终止条件) {
        存放结果;
        return;
    }
    for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {
        处理节点;
        backtracking(路径,选择列表); // 递归
        回溯,撤销处理结果
    }
}

对于动态规划,牢记动态规划五部曲(代码随想录)

  1. 确定dp数组(dp table)以及下标的含义
  2. 确定递推公式
  3. dp数组如何初始化
  4. 确定遍历顺序
  5. 举例推导dp数组

Mysql数据库(20天)

推荐视频:尚硅谷mysql从入门到高级

推荐理由:尚硅谷数据库是宋红康老师主讲(java基础也是他),时长85小时,讲的非常详细,比喻也很恰当

学习建议:我是学的韩顺平老师java基础里面的mysql基础,之后有学习的宋红康老师的mysql高级(p96-最后),建议直接学习宋老师的基础到高级,尤其是mysql高级篇,面试经常会问到。

视频中推荐的MD文档链接:
关注微信公众号:程序员城南。回复:Mysql,获取笔记链接

常见面试题

JavaGuide面试指南

  1. mysql的基础架构

    连接器->查询缓存->分析器->优化器->执行器->存储引擎

  2. mysql存储引擎

    MyISAM 和 InnoDB 的区别

  3. mysql索引

    3.1 索引的底层数据结构:InnoDB 是B+树

    3.2 B+树与B树的区别

    3.3 为什么B+树比B树更好

  4. 日志binlog、redo log、undo log

  5. 事务四种的隔离级别

  6. MVCC

    6.1 InnoDB存储引擎对MVCC的实现: 隐藏字段+Read View + undo Log

    6.2 MVCC解决不可重复读RC

    6.3 如何防止幻读:MVCC+临键锁(Next-Key Locks)

  7. Mysql优化(很多公司都问到了)

  8. 常见的锁,行锁,表锁…

  • 3
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值