自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 红黑树的五条性质

红黑树需要满足的五条性质:性质一:节点是红色或者是黑色;在树里面的节点不是红色的就是黑色的,没有其他颜色,要不怎么叫红黑树呢,是吧。性质二:根节点是黑色;根节点总是黑色的。它不能为红。性质三:每个叶节点(NIL或空节点)是黑色;性质四:每个红色节点的两个子节点都是黑色的(也就是说不存在两个连续的红色节点);就是连续的两个节点不能是连续的红色,连续的两个节点的意思就是父节点与子节点不能是连续的红色。性质五:从任一节点到其没个叶节点的所有路径都包含相同数目的黑色节点;..

2021-09-01 14:52:35 460

原创 Mybatis 的动态 SQL 语句

Mybatis 的动态 SQL 语句​ 1.动态 SQL 之 if 标签​ 目的: 我们根据实体类的不同取值,使用不同的 SQL 语句来进行查询。比如在 id 如果不为空时可以根据 id 查询, 如果 username 不同空时还要加入用户名作为条件。这种情况在我们的多条件组合查询中经常会碰到。<select id="findByUser" resultType="user" parameterType="user"> select * from user where 1=1 &lt

2021-08-20 15:00:47 90

原创 Mybatis 延迟加载策略

Mybatis 延迟加载策略​ 目的: 实际开发过程中很多时候我们并不需要总是在加载用户信息时就一定要加载他的账户信息。此时就是我 们所说的延迟加载。​ 何为延迟加载?​ 延迟加载: 就是在需要用到数据时才进行加载,不需要用到数据时就不加载数据。延迟加载也称懒加载. ​ 好处:先从单表查询,需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速 度要快。 ​ 缺点: 因为只有当需要用到数据时,才会进行数据库查询,这样在大批量数据查询时,因为查询工作也要消耗

2021-08-20 14:58:49 210

原创 Mybatis 多表查询

Mybatis 多表查询​ association(一对一)​ collection(一对多)​ 1.一对一查询​ 需求: 查询所有账户信息,关联查询下单用户信息。​ 注意: 因为一个账户信息只能供某个用户使用,所以从查询账户信息出发关联查询用户信息为一对一查询。如果从用户信息出发查询用户下的账户信息则为一对多查询,因为一个用户可以有多个账户。​ 方式一:​ ① 定义账户信息的实体类@Datapublic class Account implements Serializabl

2021-08-20 14:55:38 86

原创 5.4 bean的生命周期

bean的生命周期①Spring IOC容器可以管理bean的生命周期,Spring允许在bean生命周期内特定的时间点执行指定的任务。②Spring IOC容器对bean的生命周期进行管理的过程:[1]通过构造器或工厂方法创建bean实例[2]为bean的属性设置值和对其他bean的引用[3]调用bean的初始化方法[4]bean可以使用了[5]当容器关闭时,调用bean的销毁方法③在配置bean时,通过init-method和destroy-method 属性为bean指定初始化和销毁

2021-08-18 10:54:31 49

原创 IOC&DI

IOC 和 DI①IOC(Inversion of Control):反转控制。在应用程序中的组件需要获取资源时,传统的方式是组件主动的从容器中获取所需要的资源,在这样的模式下开发人员往往需要知道在具体容器中特定资源的获取方式,增加了学习成本,同时降低了开发效率。反转控制的思想完全颠覆了应用程序组件获取资源的传统方式:反转了资源的获取方向——改由容器主动的将资源推送给需要的组件,开发人员不需要知道容器是如何创建资源对象的,只需要提供接收资源的方式即可,极大的降低了学习成本,提高了开发的效率。

2021-08-18 10:36:26 63

原创 Session

Session1、Session 会话​ i) 什么是 Session 会话?​ 1、Session 就一个接口(HttpSession)。 ​ 2、Session 就是会话。它是用来维护一个客户端和服务器之间关联的一种技术。 ​ 3、每个客户端都有自己的一个 Session 会话。 ​ 4、Session 会话中,我们经常用来保存用户登录之后的信息。​ j) 如何创建 Session 和获取(id 号,是否为新)​ 如何创建和获取 Session。它们的

2021-08-17 20:58:26 47

原创 Cookie

Cookie1、Cookie​ a) 什么是 Cookie?​ 1、Cookie 是服务器**通知**客户端**保存**键值对的一种技术。 ​ 2、客户端有了 Cookie 后,每次请求都发送给服务器。 ​ 3、每个 Cookie 的大小不能超过 4kb ​ b) 如何创建 Cookie​ c) 服务器如何获取Cookie​ d) Cookie 值的修改​ 方案一:​ 1、先创建一个要修改的同名(指的就是 key)的 Cookie 对象 ​ 2、在构造器

2021-08-17 20:55:26 56

原创 Redis简介

Redis简介1、概念:Redis(REmote DLctionary Server)是用c语言开发的一个开源的高性能键值对(key-value)数据库。2、特征:​ · 数据间没有必然的关联关系​ · 内部采用单线程机制进性工作​ · 高性能。官方提供测试数据,50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s。​ · 多数据类型支持​ · 字符串类型 string​ · 列表类型 list​ · 散列类型 hash​ · 集合类型 set​

2021-08-14 17:15:49 71

原创 Git常用命令

Git常用命令在实际项目开发中,一个完整的项目并不是以个人就可以完成的整个项目的开发,而是多人协同合作,此时就可以借助git来实现多人协作完成,常使用的命令行1、创建好文件夹1.创建仓库:mkdir resporitory2.在仓库下创建工作目录:mkdir repol3.在工作目录下创建.git文件:git init (这个必须创建,是一个隐藏文件)4.把项目放到工作目录下,和.git同级目录2、本地仓库操作命令1.查看当前状态:git status2.添加文件到缓冲区:git ad

2021-08-14 17:04:18 131

原创 GC的四大算法

GC的四大算法1.引用计数法:​ 缺点:​ ①每次对对象赋值时均要维护引用计数器,且计数器本身也有一定的消耗​ ②较难处理循环引用​ JVM的实现一般不采用这种方式2.复制算法(Copying)​ 2.1年轻代中使用的是Minor GC,这种GC算法采用的是复制算法(Copying)​ 2.2原理: Minor GC会把Eden中的所有活的对象都移到Survivor区域中,如果Survivor区中放不下,那么剩下的活的对象就被移到Old generation中,也即一旦收集后,Eden是

2021-08-08 10:13:43 1108

原创 JVM之Heap的进一步了解

JVM之Heap的进一步了解1.Heap堆(Java7****之前)一个JVM实例只存在一个堆内存,堆内存的大小是可以调节的。类加载器读取了类文件后,需要把类、方法、常变量放到堆内存中,保存所有引用类型的真实信息,以方便执行器执行。1.1Minor GC(简单版):​ 新生区是类的诞生、成长、消亡的区域,一个类在这里产生,应用,最后被垃圾回收器收集,结束生命。新生区又分为两部分: 伊甸区(Eden space)和幸存者区(Survivor pace) ,所有的类都是在伊甸区被new出来的。幸存区有两

2021-08-08 10:11:25 64

原创 JVM中的Java栈和堆内存

JVM中的Java栈和堆内存1.Stack(栈):​ 栈也叫栈内存,主管Java程序的运行,是在线程创建时创建的,它的生命期是随着线程的生命期,线程结束那么栈内存也就释放了,对于栈来说,不存在垃圾回收问题,只要线程一结束对应的栈也就结束释放了,生命周期和线程是一致的,是线程私有的。八种基本类型的变量+对象的引用变量+实例方法都是在函数的栈内存中分配的。1.1.栈存储什么?​ 栈帧中主要保存3类数据:​ 1.本地变量(Local Variables):输入参数和输出参数以及方法内的变量;​ 2.栈

2021-08-08 10:09:03 141

原创 JVM进一步了解类加载器

JVM进一步了解类加载器1.类加载器​ 作用:负责加载.class文件,class文件在文件开头有特定的文件标示,将.class字节码文件内容加载到内存中,并将这些内容转换成方法区的运行时数据结构且ClassLoader只负责.class文件的加载,至于它是否可以运行,则有Execution Engine决定​ 虚拟机自带的类加载器(3种):​ 1.启动类加载器(BootStrap) C++​ 2.拓展类加载器(Extension) Java​ 3.应用程序类加载器(AppClassLoa

2021-08-08 10:03:24 36

原创 JVM的了解性组件

JVM的了解性组件1.Execution Engine(执行引擎):负责解释命令,提交操作系统执行2.Native Interface(本地接口):​ 本地接口的作用是融合不同的编程语言为Java所用,它的初衷是融合C/C++,Java诞生的时候是C/C++占统治地位的时候,要想立足,必须有调用C/C++程序,于是就在内存中专门开辟了一块区域处理标记为native的代码,它的具体做法是Native Method Stack中登记native方法,在Execution Engine执行时加载native

2021-08-08 10:02:46 37

原创 JVM概述

JVM概述1.何为JVM​ JVM是Java虚拟机,是用来执行Java字节码文件的虚拟计算机​ JVM是运行在操作系统之上,它不与硬件直接交互2.JVM跨平台及原理​ 跨平台:由Java编写的程序可以在不同的操作系统上运行:一处编译,多处运行​ 原理:字节码文件是在JVM上运行的,而JVM运行在操作系统之上3.JVM的分类​ 类加载子系统​ 运行时数据区​ 执行引擎(一般都是JIT编译器和解释器共存)​ JIT编译器(主要影响性能):编译执行;一般热点数据会进行二次编译,将字节码指

2021-08-08 10:00:43 186

原创 关于Spring与SpringMVC的IOC容器

关于Spring与SpringMVC的IOC容器1.在web.xml中配置Spring的IOC容器<!--spring配置 — ContextLoaderListener--> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring-xxx.xml</param-valu

2021-07-26 22:12:31 402

原创 SpringMVC异常映射机制

SpringMVC异常映射机制SpringMVC给我们提供了基于XML和基于注解两种异常映射机制。这两种异常映射不能够只使用一个,需要将它们结合起来一起使用。之所以这样,是因为有些异常是基于注解异常映射捕获不到的。在SpringMVC中,如果是用<mvc:view-controller path=“请求地址” view-name=“视图名”/>进行请求的处理,那么在这过程中抛出的异常,就得用基于xml的异常映射来捕获处理这个异常。如果一个请求是由@RequestMapping注解来处理的,那

2021-07-26 21:26:34 151

原创 声明式事务的配置

声明式事务1.目标:​ 1.1从事务的角度:一个事务方法中包含着对数据库的多个操作,要么一起提交,要么一起回滚。也就是说事务方法中的多个对数据库的操作,任何一个失败,将导致整个事务全部回滚​ 1.2从声明式角度:由Spring来全面接管数据库事务。用声明式代替编程式2.思路:3.代码(具体操作):​ 3.1创建Spring配置文件(spring-tx.xml)​ 3.2装配事务管理器​ 3.3配置AOP​ 3.4配置事务属性...

2021-07-21 20:51:18 127

转载 Spring日志系统的配置

Spring日志系统的配置1.意义:当我们遇到系统在运行过程中出了故障等问题,就需要通过日志来进行问题的排查,因此我们应当在上手任何一项新技术的时候,要习惯性的关注一下它是如果进行日志的打印的。关于不同日志系统的整合2.具体操作​ 2.1初始状态: Spring 使用 commons-logging 日志包​ 2.2加入slf4j和logback<!--日志框架--> <dependency> <groupId>or

2021-07-21 20:47:45 524

原创 Spring与Mybatis的整合

Spring与Mybatis的整合1.目标:​ 将xxxMapper装配到IOC容器,而xxxMapper可以通过IOC容器装配到对应的组件中去,之后就可以直接调用它的方法,从而可以享受框架带来的便捷性。2.思路:​ 2.1准备jdbc.properties(这里面存储了连接数据库的基本信息)​ 2.2创建Spring配置文件(spring-mybatis.xml)专门进行Spring和Mybatis的整合配置​ 2.2.1在Spring配置文件(spring-mybatis.xml)中加载j

2021-07-21 20:44:41 66

原创 Mybatis逆向工程的初使用

Mybatis逆向工程1.所谓Mybatis逆向工程:​ 简单的理解,MyBatis逆向工程,就是通过相应插件,自动生成MyBatis与数据库连接的一些文件。​ Mybatis需要编写sql语句,mybatis官方提供逆向工程,可以针对单表自动生成mybatis执行所需要的代码(xxxMapper.java、xxxMapper.xml、entity等待),这个有利于我们提高工作效率,将更多的精力放在业务的处理2.所需要的插件3.实现Mybatis逆向工程,需要一个xxx.xml配置文件,而这个配

2021-07-21 18:05:28 51

原创 关于SSM项目搭建思路

1.总体的搭建2.创建Maven工程时,要确定模块之间的依赖关系以及父子工程的确定​ 2.1父工程可以对整个项目的版本进行控制,降低可能自己导入版本之间的不兼容性​ 2.2原先学习时,controller、service、mapper基本存在于一个模块里,这其实不利于项目的复用与扩展,应根据自身业务需求,对其进行合理地模块划分3.物理建模(即创建数据库和数据库表)​ 3.1Sql基本理论:​ 3.1.1第一范式:数据库表中的每一列都不可再分,也就是原子性​ 3.1.2第二范式:在满足第一

2021-07-21 17:16:32 248

转载 关于JSP四个作用域

jsp的4个作用域 pageScope、requestScope、sessionScope、applicationScope的区别1.page指当前页面有效。在一个jsp页面里有效2.request 指在一次请求的全过程中有效,即从http请求到服务器处理结束,返回响应的整个过程,存放在HttpServletRequest对象中。在这个过程中可以使用forward方式跳转多个jsp。在这些页面里你都可以使用这个变量。3.Session是用户全局变量,在整个会话期间都有效。只要页面不关闭就一直有效(或者

2021-07-20 23:01:08 61

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除