最后我们该如何学习?
1、看视频进行系统学习
这几年的Crud经历,让我明白自己真的算是菜鸡中的战斗机,也正因为Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去B站进行学习,B站上有很多学习视频,唯一的缺点就是免费的容易过时。
另外,我自己也珍藏了好几套视频资料躺在网盘里,有需要的我也可以分享给你:
2、读源码,看实战笔记,学习大神思路
“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。
Spring源码深度解析:
Mybatis 3源码深度解析:
Redis学习笔记:
Spring Boot核心技术-笔记:
3、面试前夕,刷题冲刺
面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。
关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三:
只有技术过硬,在哪儿都不愁就业,“万般带不去,唯有业随身”学习本来就不是在课堂那几年说了算,而是在人生的旅途中不间断的事情。
人生短暂,别稀里糊涂的活一辈子,不要将就。
注意:
-
集合在Java中本身是一个容器,是一个对象
-
集合中任何时候存储的都是“引用”
-
集合里面存储的是对象内存地址
-
集合里面可以套集合
-
集合也是一个对象,也有内存地址
在Java中每一个不同的集合,底层会对应不同的数据结构。往不同的集合中存储元素,等于将数据放到了不同的数据结构当中。什么是数据结构?数据存储的结构就是数据结构。不同的数据结构,数据存储方式不同。比如
-
数组
-
二叉树
-
链表
-
哈希表
-
…
以上这些都是常用的数据结构
你往集合c1中存放数据,可能是放到数组上了。
你往集合c2中存放数据,可能是放到二叉树上了。
…
你使用不同的集合等同于使用了不同的数据结构。new不同的对象,就是使用不同的数据结构。如果对集合用法不了解,多去查JDK的API和百度
-
new ArrayList(); 创建一个集合,底层是数组
-
new LinkedList(); 创建一盒集合对象,底层是链表
-
new TreeSet(); 创建一个集合对象,底层是二叉树
所有的集合类和集合接口都在Java.util包下,Java.util.*;
-
一类是单个方式存储元素,单个方式存储元素,这一类集合中超级父接口:Java.util.Collection;
-
一类是以键值对的方式存储元素,以键值对的方式存储元素,这一类集合中超级父接口:Java.util.Map;
Iterrator it = “Collection 对象”.iterator();
it是迭代器对象
-
修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象;
-
修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象;
-
修改一个静态的方法,其作用的范围是整个静态方法,作用的对象是这个类的所有对象;
-
修改一个类,其作用的范围是synchronized后面括号括起来的部分,作用主的对象是这个类的所有对象。
-
可迭代的,可遍历的,所有集合元素都是可迭代的,可遍历的
-
属性:iterator()
-
collection继承于Iterable
-
所有集合继承Iterable的含义是:所有集合都是可迭代的
-
Iterator与Collection是关联关系
-
集合的迭代器对象
-
属性:hashNext(),next(),remove()…
-
List继承于Collection
-
list集合元素的特点:有序可重复,存储的元素有下标
-
有序实际上是说存进去是这个顺序,取出来还是这个顺序,这里的顺序不是按照大小排序
-
有序是因为list集合都有下标,下标从0开始,以1递增
-
ArrayList继承于List
-
ArrayList集合底层采用了数组这种数据结构
-
ArrayList集合是非线程安全的
-
LinkedList继承于List
-
LinkedList集合底层采用了双向链表数据结构
-
Vector继承于List
-
Vector集合底层采用了数组这种数据结构
-
Vector集合是线程安全的
-
Vector所有的方法都有syndronized关键词修饰,所以线程安全,但是效率较低,Vector用的少
-
Set继承于Collection
-
Set集合存储元素特点:无序不可重复
-
无序表示存进去是这个顺序,取出来就不一定是这个顺序了
-
Set集合中元素没有下标
-
Set集合中的元素不能重复
-
HashSet继承于Set
-
HashSet集合在new的时候,底层实际上new了一个HashMap集合
言尽于此,完结
无论是一个初级的 coder,高级的程序员,还是顶级的系统架构师,应该都有深刻的领会到设计模式的重要性。
- 第一,设计模式能让专业人之间交流方便,如下:
程序员A:这里我用了XXX设计模式
程序员B:那我大致了解你程序的设计思路了
- 第二,易维护
项目经理:今天客户有这样一个需求…
程序员:明白了,这里我使用了XXX设计模式,所以改起来很快
- 第三,设计模式是编程经验的总结
程序员A:B,你怎么想到要这样去构建你的代码
程序员B:在我学习了XXX设计模式之后,好像自然而然就感觉这样写能避免一些问题
- 第四,学习设计模式并不是必须的
程序员A:B,你这段代码使用的是XXX设计模式对吗?
程序员B:不好意思,我没有学习过设计模式,但是我的经验告诉我是这样写的
从设计思想解读开源框架,一步一步到Spring、Spring5、SpringMVC、MyBatis等源码解读,我都已收集整理全套,篇幅有限,这块只是详细的解说了23种设计模式,整理的文件如下图一览无余!
搜集费时费力,能看到此处的都是真爱!
3种设计模式,整理的文件如下图一览无余!
[外链图片转存中…(img-0QzhAXDr-1715573038589)]
搜集费时费力,能看到此处的都是真爱!