2024_应届_格局
技术栈测试
1、学Java看的哪个资料:黑马程序员(2018的视频)Java核心卷Ⅰ(大致看了一遍,最近在刷牛客网来复习)
- 重载,重写,泛型懂吗?懂
-
Java集合这块学过了吗?学过list集合和set集合(当时看视频过了一遍)
- HashMap源码,JVM,JUC是否看过:
2、数据结构与算法看的哪个资料:黑马程序员C语言的数据结构看过(去年暑假看的,之后就没看过了)
- 链表,栈,队列,二叉树能自己手写吗:
- AVL树,红黑树,线段树学过吗:
- 冒泡,快速,归并排序能手写吗:
- 递归,二分,贪心,回溯,动规,枚举这几种算法学过哪几种:
- LeetCode 大概刷了多少题:没用看视频学过算法,就上来直接写了几道(20到左右)
3、框架与中间件
- servlet,cookie,session学过吗:
- SSM学过了吗:
- redis 学过吗:
- SpringBoot项目做过几个:
4、MySQL看的哪些资料:黑马程序员的,刚看了两天
- sql 熟练吗:不熟
- 索引底层原理懂吗:
5、计算机基础还没有看过(我是机械专业的)
* 计算机网络看什么资料:
* 操作系统看什么资料:
* 计算机组成原来看的什么资料:
学习规划(2022.2.11)
基于你的情况,你算是学了 C 语言 + Java入了门,后续你 Java 的还得补,不过你现在大二,先把数据结构与算法这块巩固好,这块是进大公司的核心,学习安排如下:
1、先把 数据结构与算法 学一遍,记得要自己好好实现代码,里面用到了 Java 的泛型,你如果不大懂,你就回过头去补一下 Java 的相关知识。
2、之后学习掌握贪心,DP等算法思想:算法面试专题,之后就把我安排的题库,一个一个模块做完,不用一次性做完,就长期每天一道之类的做,题库:算法题库
3、学习「2」算法期间,也可以一边学 Java 进阶:Java进阶, 你之前做过坦克,也是韩顺平的,不过我觉得可以好好看一下,里面讲解了很多 Java 特性,也有集合源码等等。
你先学,可以每周来这里记录你的学习进度,后面根据你的学习进度给你推荐其他的资料来学
每周学习进度跟进
第一周学习进度(2.11–2.20)
本周主要还是学习数据结构与算法。
1、学习了视频中的线性查找,选择排序,插入排序,归并排序。通过这些的学习,了解了递归的含义和使用。并且把相应的代码敲了一遍。
2、学习链表,链表的应用,队列,栈和数组,对应的代码也都有敲。
3、之后就是学习了查找算法中的线性查找和二分查找,理解二者的区别。
4、数据结构方面学了树的结构,二分搜索树,映射,集合这些。线段树,红黑树那些还没有听。
地哥,下一周我应该怎么安排呢?我是看一下Java进阶还是继续学习数据结构与算法,然后去刷题呢?
第二周学习进度(2.21–2.28)
1、大致看了下算法面试的章节,了解了面试对于算法主要考哪些,并且发现自己默写代码的能力还不足,应该多把理解的代码敲一下。
2、复习了java基础的多态部分。
3、看了java进阶的异常和集合(集合还在看)
4、本周开学了,听课时间减少了很多。主要还是看了看书,数据结构和java核心卷,发现数据结构这本书看起来还是比较费力。可能理解的还不够深
第三周学习进度(2.29—3.6)
1、复习了常见的排序算法(冒泡排序,选择排序,插入排序,归并排序,希尔排序,快速排序,堆排序)这里面主要是对希尔排序和快排有些不熟,希尔排序就是将数据集合分割成若干个小组,然后对每个小组进行插入排序,然后不断缩小增量来完成排序。快速排序就是将无序数组的第一个元素,把该元素放在合适的位置,使得它左边的数都比他小右边的都比他大。然后递归去排序。堆排序就是
2、复习了常见的数据结构,单向链表的实现,和双向链表的代码,栈的顺序存储和链式存储。队列的两种存储模式和循环队列的优点,循环队列中如何实现循环。二分搜索树,完全二叉树。最后看了哈希表,同时看了hashset的内部首先原理及代码实现。
3、尝试去写了一道相交链表的题,还是无从下手,又回去看了下哈希表(总觉得听第一遍的时候不知道自己学的这些有什么用,做题遇到了回去看,感觉就比之前要明白多了)
4、java进阶看了单例模式和final,八大常用类,integer的拆箱和装箱,集合中的list集合看完了,Hashset.本质是继承hashmap的,而hashmap是通过数组,链表,红黑树实现的。
5、这周感觉都是在看之前学过的了,感觉自己第一遍学的印象不是很深。从图书馆借了一本数据结构的书在看。下周希望可以把算法思想学会,争取多做两道题吧!
第四周学习进度(3.7-3.13)
1、Java基础部分看核心卷I复习了下访问修饰符和类与对象,对象的三要素和类的三种关系。final关键字修饰的类,方法,常量。
2、数据结构与算法分析,继续巩固树的知识,对于二叉树,二叉搜素树,AVL树的代码有一次进行了实现,并且把关于链表和二叉树相应的简单算法题做了一遍。
3、关于排序算法中的堆排序(二叉堆)的代码继续巩固实现。争取可以做到手写代码的能力。
4、Java进阶部分,买回来一本编程思想准备这周开始看,坦克大战之前写过,这次准备认真复盘一下,好好理解一下关于面向对象和线程这部分的代码实现
第二阶段学习补充(2022.3.17)
1、学完 Java 进阶,可以顺势学习 JVM :Java虚拟机课程说明(必看),一般来说,可以看书,也可以看视频,我个人建议可以先看视频,之后看书,或者两者一起看,书是每个章节独立的。
2、JVM看完容易忘,先有个大致的理解,那看完 JVM,之后我建议就可以开始学习 web,做项目了,也就是 javaweb=>ssm=>springboot=>项目 这个路径,算法那边继续正常学。
第五周学习进度(3.14—3.20)
1、第二遍完成了坦克大战项目,这里简单说一下自己存在的问题吧,首先这个项目可能过几周还要再做一遍,对于coding能力还有欠缺。学习到的地方,对于事件处理,多线程和vector集合这里有了不一样的理解,使用vector是因为线程安全,采用多线程,在哪里开启线程,如何避免线程冲突。大概率下下周再复盘一次。
2、旁听了地哥的模拟面试,对于面试中的问题,又针对性的复习了一下。首先是插入排序和希尔排序,希尔排序就是插入排序的优化版,减小插入排序的的排序量,计算出增量。然后进行局部插入排序。希尔排序是不稳定的,因为插入排序是稳定的,相同的元素不会在插入排序中改变相对位置,但是希尔排序是多次插入排序,这样会导致相同的元素多次交换位置,导致稳定性下降。
3、关于快速排序,主要是找一个枢纽元,然后有一个i和j,j移动,如果该值比枢纽元小就和i交换位置,同时i++,然后将枢纽元与i替换,再使用递归的方法,继续进行。但是这样的排序稳定性也是不好的,因为会导致某个元素一直移动,所以选着两头指向往中间移动的规则,同时枢纽元的选着也影响着算法的时间复杂度。
4、关于java这块,我又重点复习了下,string,stringbuffer,stringbuilder。这里stringbuilder是线程不安全的,因为他的方法中都不使用synchronized。所以stringbuilder适用于单线程情况,他的效率会比stringbuffer高。
5、异常,对于error是导致jvm内存溢出,或者产生不可修复的错误。而exception常见的包括,数组下标越界异常,空指针异常,算数异常等。是可以通过try—catch或者throw来处理的。
6、对于string的几种不同创建对象的方式,直接使用双引号是创建在常量池中,使用new创建是指向堆,堆再指向常量池,引用名是存在栈中的。
7、帮同学使用C语言做了一个超市存包取包的课程设计,主要是用了链表的增删改查。
8、准备学习java虚拟机,看了几节太枯燥了。想慢慢来,就穿插的学习了HTML的知识。
第六周学习进度(3.21——3.27)
1、本周我弄了一个公众号,每天分享一篇自己之前学过的知识。现在已经分享了五篇技术文章啦!
2、新知识学习了前端三件套,做了一个简单的VR旅游网页。
3、看了一些算法面试题。
4、因为写了五篇文章,所以主要复习了下数据结构的二叉树部分。多线程的知识。
5、java虚拟机看了垃圾回收部分。
第七周学习进度(3.28——4.3)
1、本周的学习路线主要分为三条,就是刷算法题,学习新知识,通过写文章来纪录旧知识。差不多就是这样,以后可能也会按这个路线来学。
2、算法题的话,主要做的是和二叉树相关的题。
3、新的知识主要是学习java虚拟机,主要学习了垃圾回收机制的标志和清除两个部分的算法。简单学习了程序计数器和虚拟机栈两部分。
4、复习:设计模式中的单利模式,排序算法中的分治排序(归并排序和快速排序),排序算法中的分配排序(计数排序和桶排序)。垃圾回收机制中的标记算法(引用记数法,可达性分析算法,finalize方法)。java基础中的static关键字。
第三阶段学习补充(2022.4.5)
我觉得你学的挺好的,首先就是写博客这个事情,我觉得很好,不用担心浪费时间搞懂是最重要的,另外就是根据面试时及时去补充学习,这个也很棒。
下面说一说接下来的一些学习补充
1、首先是先把 Java网络编程 + Java反射补充一下,之前被我漏掉了,我觉得这块还是很重要,你去补一下,网络编程那个聊天系统后面还能作为实习项目写上去。
2、学完了之后,可以一边学习项目的知识,早点做项目也是挺不错的,框架这块就按照咱们课程大纲的第4,5,6,7阶段学就行,不过算法这块也要坚持学哦。
所有课程入口看这里:所有课程大纲入口
第八周进度打卡(4.4-4.10)
1、把反射和文件流的知识学习了一遍,大概了解了反射的原理和常见的api使用方式。
2、开始学习web知识,学习了Tomcat的基本原理和Servlet的基本原理。
3、复习了多态,jvm中的垃圾收集器,类的加载机制,string,stringbuffer,stringbuilder的知识,线程池的知识。
4、继续刷力扣,这周主要刷链表相关,并且复习了一下之前写的一些题。
第九周进度打卡(4.11-4.17)
1、每天一道力扣算法题(这个比较耗时间,现在开始刷中等难度的题啦,思考起来有些吃力,所有用的时间比较多)
2、总结了垃圾收集器有哪些,及其应用场景。
3、学习了MySQL中的DDL,DML语句和基本的查询语句。
4、JDBC的基础知识,跟着视频,配置好了用idea控制数据库的增删改查。
第十周进度打卡(4.18-4.24)
1、这周感觉没有学习新知识,主要是帮大四做了一个基于3D打印结构的无线充电平台,挣了点外快。然后又自己DIY了一个平衡小车,这里我发现了平时刷算法题,对看一些运动控制算法还是有很大帮助的。
2、复习了Set,List,Map集合。
3、没有怎么学习新知识,还是停在了JavaWeb这块。这周加油学。
4、坚持每天刷力扣打卡。
第十一周进度打卡(4.25-5.1)
1、mysql数据库入门,在图形化界面操作表
2、JDBC简单入门,用Java代码实现数据库的增删改查
3、继续学习JavaWeb中的知识点,包括servlet,Tomcat服务器,Cookie和session,EL表达式
4、开始跟着做Javaweb中的项目。
第十二周进度打卡(5.2-5.8)
1、这周没怎么学习Java的新知识,主要在忙两件事,第一是准备互联网+的材料,我主要负责电控部分,在测试单片机开发。大四让帮忙调毕设,这块也浪费了很长时间。
2、因为这学期都没听课,所以最近也再听速成课,开始复习。
3、Java这块主要以复习为主,把之前学过的一些知识,以文章的形式输出,主要复习的是Java集合这块,之前刚学Java集合对源码理解不够,这次又复习了一下。
4、因为我是在机器人创新实验室,最近又给大一同学进行了几次培训。
5、力扣坚持一天一道,坚持打卡。
第十三周进度打卡(5.9-5.16)
1、使用hexo+github搭建了博客,按着教程来也遇到了很多问题,但是最后都解决了,也学到了很多。
2、也没有学习什么新知识,学了点网络编程的知识,和Linux的知识,因为最近在做挑战杯比赛,也一直没有投入时间去学习。
3、下周希望能按地哥的计划继续学习
第十四周进度打卡(5.17-5.24)
1、Java进阶–网络编程,学会使用TCP进行图片,文件的传输。
2、刷二分搜索树相关的算法题。
3、复习了一些Java基础(final关键字,static关键字,内部类,匿名内部类等)
第十五周进度打卡(6.1-6.6)
1、期末复习,最近也没怎么学习地哥的知识,这周就考完了,考完一定好好学
第十六周进度打卡(6.7-6.21)
现在考完试啦,回家继续学习。
这周复习了一下之前学的知识,开始做项目,学习了maven,正在学mybatis。
第十七周进度打卡(6.21-6.28)
1、开始学习做项目,学习了maven,mybatis,对比了之前写的jdbc笔记,发现mybatis确实方便了很多。之后就是对于sql语句不熟悉,复习了简单的sql语句。
之后开始学习spring系列,目前正在学习spring IOC这块。
2、继续刷力扣,每天一道。
3、学习了ps、pr的一些知识,因为比赛会用到,所有就想学习一下。
学习建议(2022.7.1)
你暑假时间应该也比较多,Spring 框架这些可以一边学习,之后就做一下那个 SSM 的项目,然后可以在开启一个学习,那就是计算机基础的学习,你先学习计算机网络,先看《图解HTTP》,之后再看《计算机网络自顶向下》,就先看这两本书。之后关于 计组 + OS 的学习的话,你直接看咱们课程大纲的视频就行。
暑假大概有 50 天吧?我觉得把我说的这几个,过一遍没问题,有个印象,后面还要来复习滴。
第十八周进度打卡(7.1-7.11)
开始学习spring系列
复习了sql语句,系统的学习了mybatis开发流程。
学习springIOC,AOP,事务,
spring整合mybatis
第十九周进度打卡(7.11-8.2)
这周主要完成吗ssm秒杀项目。
继续看图解http
开始看面试题,复习了一下之前学的内容
第二十周进度打卡(8.3-8.22)
1、完成了SSM的秒杀项目,内容看了两变,第一遍主要是了解了ssm框架的执行流程,第二遍主要学习了service层和web层的代码逻辑。
2、大致浏览了一遍 图解http,重点学习了应用层和传输层,了解了dns的解析过程,以及HTTP协议(重点学习了http的加密方式),传输层重点学习了TCP的三次握手与四次挥手
3、复习了一下前端三剑客,之前对jQuery和Ajax只是粗略的看了一遍,这次又详细的复习了一下。
第二十一周进度打卡(8.23-9.6)
1、看了地哥的剑指offer课程,刷了50题左右
2、根据八股文查漏补缺基础知识
3、开始做springboot项目
第二十一周进度打卡(9.7-9.19)
1、做慕慕生鲜的springboot项目,目前完成到购物车接口设计部分
2、完成0~1的项目设计,之前一直是用postman测试接口,这次想加入前端页面进行测试,制作过程也是困难重重,主要是之前学习前端部分,只是大致浏览了一下,没有深入学习,所以这次又复习了JavaScript的知识,选择器的使用,还有学习了JavaScript的组件jquery,包括Ajax的使用,之前只是听了一遍,并不知道怎么使用。
3、总结面试题,根据地哥的八股文笔记,开始慢慢复习之前学过的知识,包括项目中用到的知识,忘记了的也回去复习了一下。
4、继续刷算法题
第二十二周进度打卡(11.8-11.16)
1、大概有两个月没有打卡了,期间真的有摆烂,惭愧惭愧。说一下两个月干什么了吧,主要是这学期专业课太多(机械),所以自主学习的时间少了很多,主要做了两个项目吧,有一个是车间管理系统,一个是中级的电商项目,项目做完又进行了二次查漏补缺,很多知识只是会用,并没有去了解原理。
2、开始背八股文了,发现之前学的都是皮毛,需要好好整理,也再看一些面经和面试实录,来积累一下经验
3、新东西也没怎么学,主要还是复习旧的知识了。希望能刷一遍面经,去投递一些简历。
第二十三周进度打卡(11.17-11.27)
1、最近做了一个电子设计大赛,大概做了一周左右,也是大学的最后一个比赛了。接下来就是好好准备面试题啦
2、项目的话也做了两个了,就是想通过面试题再好好过一遍。现在大概看了有七八个面试实录,也总结了一些经验。
3、接下来就是一遍刷算法题,一遍刷面试题,把基础再巩固一遍。