自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Lambda和Stream流

Stream 是JDK1.8 中处理集合的关键抽象概念,Lambda 和 Stream 是JDK1.8新增的函数式编程最有亮点的特性了,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。当创建流的时候,数组类型是基本数据类型的时候,需要用到boxed(),把流中的数据变成引用数据类型(装箱)创建无限流,流中的元素无限多个,所以要配合limit使用。orElse(值) 是前两个方法的组合,如果容器中有数据,就返回容器中的数据,没有的话,使用括号中的值。要求两个方法的参数要一致。

2024-01-19 16:36:37 839

原创 WebSocket

WebSocket 协议在2008年诞生,2011年成为国际标准。所有浏览器都已经支持了。WebSocket 是一种网络通信协议, 由HTML5提出的一种在单个 TCP 连接上进行全双工通讯的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,具有持久化,一般应用在:聊天室,股票基金报价,协同办公等等...其他特点包括:建立在 TCP 协议之上,服务器端的实现比较容易。与 HTTP 协议有着良好的兼容性。

2024-01-19 16:28:15 1063

原创 什么是泛型

泛型是Java SE 1.5的新特性,它是一种不确定的数据类型,这种不确定的数据类型需要我们在使用这个类的时候它才能够确定出来,早期的Object类型可以接收任意的对象类型,但是在实际的使用过程当中,会出现类型转换的问题,会报出一个异常,使用泛型就可以避免这种问题,因为泛型可以使编译器在。定义的时候是泛型标识E,在使用的时候给泛型标识定为String类型,编译结束后,进行泛型擦除,生成了class字节码文件,通过反射,此时成员变量key的数据类型就成了Object类型。

2024-01-19 16:24:42 895

原创 RabbitMQ 的基本概念

消息进入第二站queue,消费者要接收消息,需要一直监听着queue,那么消费者在监听queue的时候需要先指定队列要和那个交换机绑定,绑定的时候也需要指定路由键,如果发消息时的路由键和接收消息时候路由键一样,那么这个消息就会进入到这个队列。使用了 MQ 之后,限制消费消息的速度为1000,这样一来,高峰期产生的数据势必会被积压在 MQ 中,高峰就被“削”掉了,但是因为消息积压,在高峰期过后的一段时间内,消费消息的速度还是会维持在1000,直到消费完积压的消息,这就叫做“消息队列就是所谓的存放消息的队列。

2024-01-13 17:55:41 1952

原创 Redis数据缓存

缓存就是数据交换的缓冲区(称作Cache),是存贮数据的临时地方,一般读写性能较高。

2024-01-13 17:43:55 566

原创 Redis实现分布式会话

大白话:nginx就是一个接受请求,然后决定请求最终那个服务器来接受,这个算法我们后面给大家讲nginx或者ribbon的时候给大家补充,但是有时候会存在这样的问题,用户1第一次请求到tomcat1, 下一次请求的时候就可能请求到tomcat2了,这样会存在session丢失,然后系统提示我们需要登录。session 复制,也就是当一个服务器有新的session保存的时候,通过服务器通信机制,然后将session复制到其他的服务器,如果服务器较多的话,会存在大量的网路和io占用,效率低下。

2024-01-13 17:38:08 1059

原创 Redis介绍

Sentinel(哨兵)是Redis 的高可用性解决方案:由一个或多个Sentinel 实例 组成的Sentinel 系统可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器。这种方式可以将所有客户端执行的写命令记录到日志文件中,AOF持久化会将被执行的写命令写到AOF的文件末尾,以此来记录数据发生的变化,因此只要redis从头到尾执行一次AOF文件所包含的所有写命令,就可以恢复AOF文件的记录的数据集.

2024-01-13 17:30:16 797

原创 FastDFS

1拉取镜像(已经内置Nginx)2 构建Tracker # 22122 => Tracker默认端口3 构建Storage # 23000 => Storage默认端口 # 8888 => 内置Nginx默认端口 # TRACKER_SERVER => 执行Tracker的ip和端口 # --net=host => 避免因为Docker网络问题导致外网客户端无法上传文件,因此使用host网络模式注意要修改成自己的ip地址4 查看容器docker ps5 需要开启端口 腾讯云直接开启。

2024-01-05 18:02:01 360

原创 springboot基础

在spring boot出现以前,使用spring框架的程序员是这样配置web应用环境的,需要大量的xml配置。下图展示了在xml配置的时代和SpringBoot的配置量的差别。随着web项目集成软件的不断增多,xml配置也不断的增多,xml配置文件也在不断地增多,项目的依赖管理也越发的复杂。spring框架也因此饱受争议,配置文件难以理解且容易出错。xml配置文件不但复杂,而且绝大部分属于模板配置,也就是说有80%以上的配置是不断重复的。

2024-01-05 17:57:15 1115

原创 SpringMVC 高级

根据ModelAndView中的视图名查找相应的View实现类,然后将查找的结果返回给DispatcherServlet,DispatcherServlet最终会将ModelAndView中的模型数据交给返回的View处理最终的视图渲染工作。后端接受的对象是含有List属性的,那么前端的name值格式要和后端list属性名称一致,而且用索引的格式 list[0].属性(list集合里对象的属性名称)1)日志记录:记录请求信息的日志,以便进行信息监控、信息统计、计算PV(Page View)等。

2023-12-23 14:36:58 1025

原创 SpringMVC 概述三层架构

根据ModelAndView中的视图名查找相应的View实现类,然后将查找的结果返回给DispatcherServlet,DispatcherServlet最终会将ModelAndView中的模型数据交给返回的View处理最终的视图渲染工作。后端接受的对象是含有List属性的,那么前端的name值格式要和后端list属性名称一致,而且用索引的格式 list[0].属性(list集合里对象的属性名称)1)日志记录:记录请求信息的日志,以便进行信息监控、信息统计、计算PV(Page View)等。

2023-12-23 14:33:52 4121

原创 mybatis高级

准备工作:在昨天整合的代码中添加UserMapper接口和配置文件。

2023-12-23 14:31:02 1823

原创 servlet

接下来,在我们的应用中找应用里的web.xml配置文件,在web.xml中找到FirstServlet的配置,找到后执行service方法,最后由FirstServlet响应客户浏览器。在Servlet的API介绍中,它提出了我们除了继承GenericServlet外还可以继承HttpServlet,通过查阅servlet的类视图,我们看到GenericServlet还有一个子类HttpServlet。第二种:继承GenericServlet,service方法必须重写,其他方可根据需求,选择性重写。

2023-12-23 14:25:51 1180

原创 Tomcat&Http协议

它指的是,网站中提供给人们展示的资源是由程序产生的,在不同的时间或者用不同的人员由于身份的不同,所看到的内容是不一样的。例如:我们在12306上购买火车票,火车票的余票数由于时间的变化,会逐渐的减少,直到最后没有余票。指的是,网站中提供给人们展示的资源是一成不变的,也就是说不同人或者在不同时间,看到的内容都是一样的。2 B/S:总体拥有成本低、维护方便、 分布性强、开发简单,可以不用安装任何专门的软件就能 实现在任何地方进行操作,客户端零维护,系统的扩展非常容易,只要有一台能上网的电脑就能使用。

2023-12-23 14:20:50 1134

原创 mybatis

Tom的账户money=0,公司发工资把5000元打到Tom的账户上,Tom的money=money+5000元,但是该事务并未提交,而Tom正好去查看账户,发现工资已经到账,账户money=5000元,非常高兴,可是不幸的是,公司发现发给Tom的工资金额不对,应该是2000元,于是迅速回滚了事务,修改金额后,将事务提交,Tom再次查看账户时发现账户money=2000元,Tom空欢喜一场,从此郁郁寡欢,走上了不归路……底层还是使用了反射的原理,根据对象的字段去匹配数据库相应的字段。

2023-12-23 14:12:19 730

原创 AOP学习

AOP 为 Aspect Oriented Programming 的缩写,意思为面向切面编程,是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP 是 OOP 的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。

2023-12-23 14:05:14 993

原创 【Spring ioc控制反转】

源自于建筑学,隶属土木工程,后发展到软件工程领域软件工程框架:经过验证的,具有一定功能的,半成品软件经过验证(很多人都认同他)具有一定功能(有功能,可以用)半成品(类似面团)

2023-09-05 19:09:33 29

原创 【liunx 命令 jdk安装 tomcar安装 mysql安装】

使用vi/vim其实就相当于我们在Windows系统中创建文件、打开文件、编辑文件、保存文件操作.切记:日志文件不要这样打开,太大的文件容易到日服务器卡顿。1、vi介绍vi是的简称, 是linux中最经典的文本编辑器。vi的特点只能是编辑文本内容, 不能对 字体 段落进行排版不支持鼠标操作没有菜单只有命令vi编辑器在系统管理 服务器管理编辑文件时,其功能永远不是图形界面的编辑器能比拟的2、vim介绍vim:是从 vi (系统内置命令)发展出来的一个文本编辑器。

2023-08-30 19:06:03 56

原创 【Linux】

当前章节主要介绍了Linux发行的主要版本(我们使用的是CentOS Linux release 7.6.1810 )、以及与Unix、Windows系统的区别;主要让学生了解Linux是基于Unix的以及与Windows一样,Linux也是操作系统即可。用户账号管理和用户组是我们在实际使用过程中常用的命令,学习完创建账号、创建组后,需要通过gpasswd命令将用户添加到组,这也是我们学习的最终目的系统管理的常用命令都是在开发过程中经常使用到的。

2023-08-29 19:20:49 76

原创 【JDBC 】

/ int update = loginDao.update(new User(6, “qinyuzhao”, “123456”, “秦昱照”, “12315”, “zhouyajun@qq.com”),“root”);// int num = loginDao.register(new User(6, “qinyuzhao”, “123456”, “老韩”, “13111223344”, “qinyuzhao@qq.com”));工具类 ,也有人叫 BaseDao。

2023-08-25 18:43:29 804

原创 【新特性 Json 视图 存储过程】

json是一种轻量级的数据交换格式,全称为javaScript Object Notation (javaScript 对象表示法)。他以易于阅读和编写的文本格式来表示结构化数据,常用于Web应用程序之间的数据传输。

2023-08-24 18:18:15 155

原创 【数据库(索引 事务 函数)】

针对比较大的数据,比如我们存放的是消息内容,有几 KB 的数 据的这种情况,如果要解决like 查询效率低的问题,可以创建全文索引。唯一索引要求简直不能重复。另外需要注意的是,主键索引是一种特殊的唯一索引,他还多了一个限制条件,要求键值不能为空。如下:复合(联合)索引包含a1,b2,c3三列,但SQL语句没有包含索引前置列"a1",按照MySQL联合索引的。当对表中的数据进行增加,删除和修改的时候,索引也要动态地维护,降低了数据的维护速度。也叫非唯一索引,是最普通的索引,没有任何的限制。

2023-08-23 18:02:52 21

原创 【数据库增删改查(查)】

as 可以给字段名另外起个名字 (两个表里的字段一样的情况下)as 也可以用在表名上 (表名有点长,写的麻烦)左外是以左边的表为主表,查询的结果只关注左表,不在乎右边。

2023-08-22 17:41:27 24

原创 数据库增删改

MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),他是最流行的开源数据库之一。

2023-08-21 17:59:30 57 1

原创 【--布局--】

flex-start : 弹性盒子元素将向行起始位置对齐flex-end: 弹性盒子元素将向行结束位置对齐center: 弹性盒子元素将向行中间位置对齐。space-around:弹性盒子元素会平均地分布在行里,两端保留(将剩余空间分成元素的2倍,分别在元素的左右分配)space-between:弹性盒子元素会平均地分布在行里(两端对齐,有空余会分配给每个子元素中间)2.align-self: flex-end(设置起始线位置);justify-content 设置子元素在父容器中主轴的排列位置的。

2023-08-09 18:43:05 48 1

原创 【CSS 渐变和动画】

animation-play-state 规定动画是否正在运行或暂停。animation-iteration-count 规定动画被播放的次数。animation-name 属性为 @keyframes 动画规定名称。animation-duration 规定动画完成一个周期所花费的秒或毫秒。

2023-08-08 19:32:19 25

原创 【css定位】

普通流就是 html 文档中的元素如块级元素、行内元素依据他们的显。CSS 有三种基本的定位机制:普通流、浮动和绝对定位。1.如果使用绝对定位,有定位祖先元素就相对于定位祖先元素发生偏。移,没有定位祖先元素就会相对于整个文档发生偏移(绝对 相对 固。行,是行内元素就和其他元素共处一行,没什么好说的,该咋显示咋。也就是说,普通流中的元素的。元素框正常生成:块级元素生成一个矩形框,作为文档流的一部分,3、父元素的高度不能低于 sticky 元素的高度。行内元素则会创建一个或多个行框,置于其父元素中。

2023-08-07 19:45:25 49 1

原创 【css盒模型 浮动】

CSS 盒模型规定了处理元素内容、内边距、边框 和 外边距 的。overflow-x 如果内容溢出了元素内容区域,是否对内容的。overflow-y 如果内容溢出了元素内容区域,是否对内容的。对自身有影响(脱离文档流),对兄弟改变了布局,对父级造成了坍塌。外边距居中条件,一定要有宽,使用margin:0 auto;overflow 如果内容溢出了元素内容区域,是否对内容的边。最内部分是元素内容,直接包围内容的是内边距。内边距的边缘是边框。visible 不裁剪内容,可能会显示在内容框之外。

2023-08-04 18:45:57 54 1

原创 【CSS样式】

border: 线宽 线样式 颜色;

2023-08-03 18:25:01 35

原创 【CSS基础】

在子父关系中,文本样式可以被继承,布局样式不可以被继承(块级元素继承父的宽,行级不可以)同一个元素使用了不同的样式表,所有的样式进行叠加就叫做层叠。同一元素设置相同的属性会发生冲突,遵循就近原则选择属性值。背景颜色:backgound-color:颜色;nth-child() 元素的第 n 个相同元素。十六进制表示:取值范围(0~9 && a~f)单词表示:red,green,blue…RGB三原色表示:取值范围(0~255)宽: width:100px;高:height:100px;

2023-08-02 18:21:49 23 1

原创 【HTML中的表】

不仅仅是一列项目< dl > 开始 < dt > < / dt > 自定义项以dt开始 < dd > < / dd > 每个自定义列表项的定义以dd开始 < / dl >

2023-08-01 18:00:47 15 1

原创 【HTML标签】

scrolldelay:时间,值是正数默认为0。behavior:滚动方式(scroll滚动、slide滑动、alternate交替)HTML(HyperText Markup Language)是一种超文本标记语言。“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。scrollamount:速度,值是正数默认为6 用等号赋值。direction:方向(left、right)title 提示信息。src 引入图片地址。alt 替换文本。

2023-07-31 17:22:18 19 1

原创 【JavaI\O流】

创建文件夹: public boolean mkdir() 创建文件夹,如果文件夹存在,就不创建,返回false, 只能创建单个文件夹 mkdir (make directory)read(byte[]b):每次读完b.length个字节,读取到的字节存储在b数组中,数组里面放的就是读取到的数据,返回值是读取了多少个字节,如果读取完毕了,返回-1。获取某个文件夹下面的文件: public String[] list() 返回的是字符串数组,表示的是文件夹下面的文件或者文件夹的名称。

2023-07-26 18:27:58 41 1

原创 【java常用工具类】

(类的全路径名(全限定符名:包名.类名) + @ + 对象的哈希码值的十六进制)如果我们想按照自己的想法输出对象的信息,我们就需要重写toString方法。= =:可以比较基本数据类型和引用数据类型,比较基本数据类型的时候比较的是值,比较引用数据类型的时候比较的是地址值。sqrt(double a) 求double值的正平方根 double。

2023-07-25 18:58:58 33

原创 【集 合 】

add(元素):数组的长度和size不是一回事,如果size()小于数组长度,直接将元素放到数组里面。加了泛型,就会要求我们放入数据的时候,只能放入该数据类型的数据,那么取出来的时候也是这种数据类型。1.List(接口):有序可以重复:常见的实现类:ArrayList(数组实现) LinkedList(链表实现)2.Set(接口):无序不重复 常见的实现类:HashSet(哈希表实现) TreeSet(二叉树实现)remove(元素):删除第一次出现的元素remove(索引):删除指定索引位置的元素。

2023-07-24 19:30:49 40

原创 【接口 多态和异常】

NumberFormatException:数字格式不正确异常,当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时抛出该异常。异常的问题:程序会终止运行(如果代码出现了异常,那么后面的代码就不会再执行了)1.抽象类可以有构造方法,普通成员变量,静态成员变量,静态普通法,抽象方法。throws 抛出一个异常,谁调用我,我就抛给谁,异常最终抛给了JVM。1.抽象类:一般情况下,父类和子类之间有共同的特征,我们使用抽象类。3.接口是不能被类继承的(但只能被接口继承),但是可以被类实现。

2023-07-21 19:33:15 29

原创 【抽象类】

[toc]抽象类和接口。

2023-07-20 19:58:56 19

原创 【封装和继承】

[toc] 封装和继承。

2023-07-19 18:22:50 25

原创 方法与方法重载

解决问题的一种方案,他是有很多条java语句组成的。

2023-07-18 18:01:06 29

原创 【数 组】

数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器数组既可以存储基本数据类型,也可以存储引用数据类型数组是一组相关数据的集合,一个数组实际上就是一连串的变量.

2023-07-17 17:53:55 23

空空如也

空空如也

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

TA关注的人

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