白嫖党最爱!看了谷歌大神写的Spring源码笔记,附带学习经验

一、前言

红黑树,是一种高效的自平衡二叉查找树

Rudolf Bayer 于1978年发明红黑树,在当时被称为对称二叉 B 树(symmetric binary B-trees)。后来,在1978年被 Leo J. Guibas 和 Robert Sedgewick 修改为如今的红黑树

红黑树具有良好的效率,它可在近似O(logN) 时间复杂度下完成插入、删除、查找等操作,因此红黑树在业界也被广泛应用,比如 Java 中的 TreeMap,JDK 1.8 中的 HashMap、C++ STL 中的 map 均是基于红黑树结构实现的。

死记硬背,很难学会

红黑树的结构和设计都非常优秀,也同样在实现上有着复杂的处理逻辑,包括插入或者删除节点时;颜色变化、旋转操作等操作。但如果只把这些知识点硬背下来,什么时候染色、什么时候旋转,是没有多大意义的,用不了多久也就忘记了。所以这部分的学习,了解其根本更重要。

流行框架:

框架就是开发人员定义好的一套模板,程序员只需要往模板中添加响应的代码即可,填完代码,项目就完成了。所以框架存在的意义以及我们学习框架的目的就是想办法能够让程序员快速的完成整个项目的开发。

Spring

Spring框架大家都听过吧,这个框架特别重要,在目前整个市场上来看的话是基本上有一个一统江湖的趋势。Spring是整个Java体系里使用频率最高,稳定性最好,而且在各个领域都能遇到的一个框架。那什么是Spring呢?其实你可以把Spring理解为一个管家,如果我们不用Spring的话,我们之前写的代码实际上是杂乱无章的,这一块,那一块,然后用各种各样的关联关系把它们绑在一起,整个项目是杂乱无章的,那么我们用了Spring之后,它就把每个区域的代码进行分离,自己是自己的,然后由Spring在中间做一个调控,Spring之所以能火起来,就是因为它的做管理的理念好,它去协调各个框架,协调各块代码,这是Spring的工作。

SpringMVC

学了Spring,就来学Spring的第一个子项目叫SpringMVC,一看名字,MVC,这个在学JavaWeb的时候听过吧,SpringMVC其实就是处理Servlet里的那些内容,把那些内容给替换调了,也就是说用Spring来写MVC层的代码,这样就比较方便,简单,而且SpringMVC封装的前端处理是真的非常方便,方便到让程序员爽到不行的地步。

MyBatis

MyBatis是一个做持久层的框架,其实就是相当于替换了Hibernate,之前说Hibernate的缺点是封装的东西太多了,MyBatis就比较聪明,它知道不需要给程序员封装太多,它只封装了一半,另外一半留给程序员自己完成。那它封装了什么呢?它把从结果集里面我们查询SQL之后把结果集的内容封装到Java对象里面,这一块它保留了,然后SQL语句它不管,让程序员根据自己的需求自己写,然后它帮程序员自动执行,自动处理结果集的问题,所以MyBatis又被称为半自动的持久层框架。我们听了全自动和半自动,那手动的是谁?其实就是DBUtil和JDBC的操作。这个是纯手动,什么都要自己写,然后到MyBatis这,你写一半,它帮你干一半,而Hibernate是全自动,你什么都不用管,挺方便的,但Hibernate封装太厚重,JDBC又太麻烦,所以MyBatis恰好处在它们两个之间的一个位置,所以目前市面上使用MyBatis的公司还是特别多的。

JPA

JPA全程Java Persistence API,它叫Java持久层API,API说白了就是Java官方给的一套标准,一堆注解,然各个框架自己想办法去实现,在JPA的视线中其实Hibernate是实现最好的,因此我们在使用JPA的时候感觉很使用Hibernate一样,特别像。

SpringBoot

SpringBoot是近几年火起来的一个框架,也是Spring家族体系里面的,SpringBoot把整个Web应用,就网页的应用把它的启动放在了一个类里面,我们之前写的所有的包括Servlet,JSP包括用一些框架写的项目,这些项目想启动的话,我们需要把它放到服务器(Tomcat)中,那到了SpringBoot里面就不是这样了,你写一个很普通的Java类,在这个类上写行注解,然后右键运行Run这个类,你一运行,它就帮你启动了一个服务,Java中有很多个类,这样每个类都能右键运行,一个项目就可以把它分割成非常非常多个小的服务,其实这个概念就是所谓的叫微服务的一个基本概念,那这时候就产生了关于微服务的一个应用,SpringBoot官方曾经放出过这么一句话,就是用一百多个字符就可以搞定一个Web程序的开发,由此可见它的整个的封装的体系是非常健全的,它把Tomcat,还有Apache,Jetty这些个服务器全都封装起来了,所以我们用SpringBoot的时候就不需要Tomcat了,它内置了,里面直接带了,所以SpringBoot官方的意义其实是非常明确的,就是程序员就乖乖写代码就行了,其它的环境上的工作,SpringBoot全都提供给你了,你直接拿去用就行了。所以SpringBoot学起来还是挺简单,也挺好用的。

Maven

这个Maven不是框架,而是一个构建工具,我们用框架写的项目中需要导入大量的各种不同的jar包,这时候jar包的维护以及jar包版本的管理就会成为非常大的一个问题,如果我们用Maven,就能很好的解决这个问题了,Maven是一个项目自动的构建工具,它可以帮我们自动管理和下载jar包,而且在我们整个项目打包进行上线的时候,它也会帮我们自动打包,而且打包的时候还特别方便,把一些没用的东西给你干掉,建议好好学一下Maven,很多框架都要用到Maven。

SVN协同开发工具

我们以后在公司写项目都是团队协同的,不是一个人搞的,是很多人一起开发同一个项目,这时就需要一个能够协同的开发工具,比如一个团队有十个人,那十个人一起开发一个项目,他们的代码肯定需要放在一起,放一起的话,就需要能提交能下载,我先把代码下载下来然后进行编写,写完后再提交上去,每个人都应该有这样的操作,那这个时候就需要能够协同的开发工具,目前市面上比较常见的协同开发工具有两个,一个叫SVN,一个叫Git,SVN是一个比较老的工具了,Git是比较年轻的,就看你用哪一个了。

最后

小编在这里分享些我自己平时的学习资料,由于篇幅限制,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!有需要的程序猿(媛)可以关注+点赞,点击这里免费获取

程序员代码面试指南 IT名企算法与数据结构题目最优解

这是” 本程序员面试宝典!书中对IT名企代码面试各类题目的最优解进行了总结,并提供了相关代码实现。针对当前程序员面试缺乏权威题目汇总这一-痛点, 本书选取将近200道真实出现过的经典代码面试题,帮助广“大程序员的面试准备做到万无一失。 “刷”完本书后,你就是“题王”!

image.png

《TCP-IP协议组(第4版)》

本书是介绍TCP/IP协议族的经典图书的最新版本。本书自第1版出版以来,就广受读者欢迎。

本书最新版进行」护元,以体境计算机网络技不的最新发展,全书古有七大部分共30草和7个附录:第一部分介绍一些基本概念和基础底层技术:第二部分介绍网络层协议:第三部分介绍运输层协议;第四部分介绍应用层协议:第五部分介绍下一代协议,即IPv6协议:第六部分介绍网络安全问题:第七部分给出了7个附录。

image.png

Java开发手册(嵩山版)

这个不用多说了,阿里的开发手册,每次更新我都会看,这是8月初最新更新的**(嵩山版)**

image.png

MySQL 8从入门到精通

本书主要内容包括MySQL的安装与配置、数据库的创建、数据表的创建、数据类型和运算符、MySQL 函数、查询数据、数据表的操作(插入、更新与删除数据)、索引、存储过程和函数、视图、触发器、用户管理、数据备份与还原、MySQL 日志、性能优化、MySQL Repl ication、MySQL Workbench、 MySQL Utilities、 MySQL Proxy、PHP操作MySQL数据库和PDO数据库抽象类库等。最后通过3个综合案例的数据库设计,进步讲述 MySQL在实际工作中的应用。

image.png

Spring5高级编程(第5版)

本书涵盖Spring 5的所有内容,如果想要充分利用这一领先的企业级 Java应用程序开发框架的强大功能,本书是最全面的Spring参考和实用指南。

本书第5版涵盖核心的Spring及其与其他领先的Java技术(比如Hibemate JPA 2.Tls、Thymeleaf和WebSocket)的集成。本书的重点是介绍如何使用Java配置类、lambda 表达式、Spring Boot以及反应式编程。同时,将与企业级应用程序开发人员分享一些见解和实际经验,包括远程处理、事务、Web 和表示层,等等。

image.png

JAVA核心知识点+1000道 互联网Java工程师面试题

image.png

image.png

企业IT架构转型之道 阿里巴巴中台战略思想与架构实战

本书讲述了阿里巴巴的技术发展史,同时也是-部互联网技 术架构的实践与发展史。

Yf5sXB3q-1618482297180)]

企业IT架构转型之道 阿里巴巴中台战略思想与架构实战

本书讲述了阿里巴巴的技术发展史,同时也是-部互联网技 术架构的实践与发展史。

image.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值