笔记
文章平均质量分 65
张宜强
道阻且长,行则将至
展开
-
redis学习(三)——java整合redis
我们可以自定义redisTemplate的序列化方式新建一个redisConfig类,key和value都采用String序列化方式@Bean// 创建Template// 设置连接工厂// 设置序列化工具// key和 hashKey采用 string序列化// value和 hashValue采用 JSON序列化这里使用了jackson,需要导入一下依赖。原创 2023-10-24 19:56:52 · 444 阅读 · 0 评论 -
redis学习(二)——redis常见命令及基础数据类型
Hash类型,也叫散列,其value是一个无序字典,类似于Java中的HashMap结构。String结构是将对象序列化为JSON字符串后存储,当需要修改对象某个字段时需要将整个字符串替代,很不方便。Hash结构可以将对象中的每个字段独立存储,可以针对单个字段做CRUD。如果想存储两个相同的KEY,可以用:隔开多个单词形成层级结构,在图形化的页面上可以看到层级结构。字符串类型,value为字符串,格式有三种,本质上都是字符串。float:浮点类型,可以做自增、自减操作。ZSET常被用来实现排行榜功能。原创 2023-10-06 19:48:20 · 448 阅读 · 0 评论 -
redis学习(一)——初识redis
在之前的解压目录下有一个redis.conf文件存储redis的配置,输入vim redis.conf命令可以对配置文件进行编辑,输入redis-cli 命令可以用指定配置启动。redis是非关系型数据库,和mysql不同,redis中的所有数据都是以key:value形式存在的。我用的是RESP,使用步骤类似Navicat,输入地址密码测试连接,如果成功就证明连上redis了。-h 跟redis所在的地址,-p跟端口号,-u跟密码。即可启动redis,关闭窗口后redis会停止。结构化 | 非结构化。原创 2023-09-24 16:12:07 · 267 阅读 · 0 评论 -
设计模式(二十三)——解释器模式(Interpreter )
实现了一个表达式接口,该接口解释一个特定的上下文。编译器,正则表达式,SQL解析。实现一个一位数的加法运算。原创 2023-06-23 19:19:10 · 322 阅读 · 0 评论 -
设计模式(二十二)——状态模式(State)
可以使用状态模式:把不同状态的动作抽离出来,然后不同的状态去实现这个接口,这样以后如果有新的状态,就不会去修改原来的代码。现在新增一个状态,RUN,如果在以前的代码上进行更改,就不符合开闭原则了。人在不同状态下有不同的心率,当前有SLEEP和STUDY两个状态。当对象有多个状态,而且以后可能会增加状态的时候可以用状态模式。可以使用if else或者switch判断每一个状态。原创 2023-06-23 19:14:07 · 402 阅读 · 0 评论 -
设计模式(二十一)——模板模式(Template )
模板模式,我的理解是父类中有操作的流程已经确定,但是没有具体的实现,实现可以在子类中实现,但是流程已经确定,只要在父类中实现一次即可。学生吃午饭,排队选择不同的吃的和喝的,先选吃的再选喝的这个流程已经确定,但是选择什么还没有确定。lunch方法已经确定了,但是eat和drink方法还没有确定,这两个方法留到子类来实现。还有一个例子:高一,高二,高三,三个年级,每天要上8节课,但是课可能会不相同。原创 2023-06-19 21:45:45 · 162 阅读 · 0 评论 -
设计模式(二十)——备忘录模式(Memento)
类似游戏进程,保存游戏时将Originator转化成Memento类,不会对Originator进行任何修改。如果类的成员变量过多,势必会占用比较大的资源,而且每一次保存都会消耗一定的内存。给用户提供了一种可以恢复状态的机制,可以使用户能够比较方便地回到某个历史的状态。在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。实现了信息的封装,使得用户不需要关心状态的保存细节。保存一个对象的某个状态,以便在适当的时候恢复对象。Memento类,存储在列表中的存档。原创 2023-06-14 15:41:28 · 77 阅读 · 0 评论 -
设计模式(十九)——原型模式(Prototype)
享元模式是共享对象,两个对象指向一个地址,原型模式的两个对象的属性相同,指向的是两个不同的地址。孙悟空可以拔下毫毛变出很多个自己,这些孙悟空的所有东西都相同,但却是不同的个体。每个对象都要重写clone方法,实现Cloneable接口。运行结果:两个对象返回不同的地址。提高性能,可以快速复制对象。原创 2023-06-14 15:41:36 · 109 阅读 · 0 评论 -
设计模式(十八)——命令模式(Command )
在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但某些场合,比如需要对行为进行记录、撤销或重做、事务等处理时,这种无法抵御变化的紧耦合的设计就不太合适。后面如果想增加关闭电视机的命令,可以实现Order接口,在excute方法里面写相应的操作。人想要打开电视机或者关闭电视机,调用者→命令→接受者,人是调用者,电视机是接收者,1、降低了系统耦合度。2、新的命令可以很容易添加到系统中去。使用命令模式可能会导致某些系统有过多的具体命令类。原创 2023-06-14 14:54:34 · 78 阅读 · 0 评论 -
设计模式(十七)——桥接模式(Bridge)
把抽象化与实现化解耦,使得二者可以独立变化。原创 2023-06-14 14:52:50 · 67 阅读 · 0 评论 -
设计模式(十六)——适配器模式(Adapter)
现有美国人和英国人交流,可以使用英语,但是和中国人交流时,语言不通,此时需要一个适配器来翻译双方的语言。当两个不兼容的接口需要一起工作,但是两个接口都无法改动,可以用到适配器模式。但是当美国人说英语和中国人沟通时,由于中国人只说汉语,所以两者之间无法沟通。过多地使用适配器,会让系统非常零乱,不易整体进行把握。将英语转化成汉语,之后中国人就可以进行沟通。可以让任何两个没有关联的类一起运行。英国人和美国人可以正常沟通。原创 2023-06-13 17:11:12 · 77 阅读 · 0 评论 -
设计模式(十五)——建造者模式(Builder)
PeopleBuilder接口,所有的属性都有一个Builder方法,注意这里的返回类型是PeopleBuilder,方便链式编程。实现一个People类的创建,现在的People类的属性还很少,看不出来建造者模式的优点,当实体类的属性很多,属性的结构和创建复杂时,就可以体会到建造者模式的优点。建造者模式和工厂模式的关注点不同:建造者模式注重零部件的组装过程,而工厂方法模式更注重零部件的创建过程,但两者可以结合使用。将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示,建造者独立,易扩展。原创 2023-06-13 17:10:56 · 262 阅读 · 0 评论 -
设计模式(十四)——访问者模式(Visitor )
但是需要注意,访问者模式中的被访问者需要是元素固定,不会再改变的对象,否则添加对象时非常麻烦。比如电脑类添加了一个屏幕价格的属性,那么所有的代码都需要更改。有一台电脑,不同的人来买对零件有不同的折扣。学生买CPU打九五折,键盘九折,鼠标八五折,如果是企业大规模购买,CPU八五折,键盘八折,鼠标七五折。当一个对象的元素在不同的场景改变较为频繁时,可以使用访问者模式。例如:公园的风景在不同的人的眼中,有人觉得好看,有人觉得不好看。购买者,每个购买者都需要实现三个方法,对电脑零件有不同的折扣。原创 2023-06-13 17:08:35 · 89 阅读 · 0 评论 -
设计模式(十三)——迭代器模式(Iterator)
顺序访问集合对象的元素,不需要知道集合内部的实现,Collection集合中的迭代器就是基于迭代器模式实现。原创 2023-03-28 19:14:27 · 114 阅读 · 1 评论 -
设计模式(十二)——代理模式(Proxy)
在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需要进程外的访问),直接访问会给使用者或者系统结构带来很多麻烦,我们可以在访问此对象时加上一个对此对象的访问层。使用代理模式,把租房这个抽象角色剥离出来,现在顾客租房不去找房东,而是找中介,在这过程中,中介会有附属操作。Customera.java 顾客要租房,那么只需要创建一个房东类,调用房东类的租房方法即可。现在顾客要租房子,直接去找中介,中介会代理房东把房子租出去,同时,中介会有附属操作。原创 2023-03-28 18:52:20 · 88 阅读 · 0 评论 -
设计模式(十一)——享元模式(Flyweight)
提高了系统的复杂度,需要分离出外部状态和内部状态,而且外部状态具有固有化的性质,不应该随着内部状态的变化而变化,否则会造成系统的混乱。可以看到,虽然在代码中创建了两个对象,但是它们是指向一个地址的,减少了内存的消耗。当创建字符串对象是,看是否已经创建过,如果创建过,让他们指向同一个对象。用于减少创建对象的数量,以减少内存占用和提高性能。大大减少对象的创建,降低系统的内存,使效率提高。java字符串缓存池,数据库的数据池。原创 2023-03-28 16:41:46 · 96 阅读 · 0 评论 -
设计模式(十)——组合模式(Composite )
设计模式(十)——组合模式(Composite )原创 2022-10-24 20:23:37 · 245 阅读 · 0 评论 -
设计模式(九)——观察者模式(Observer)
设计模式(九)——观察者模式(Observer)原创 2022-10-24 20:12:51 · 209 阅读 · 0 评论 -
设计模式(八)——责任链模式(Chain of Responsibility)
设计模式(八)——责任链模式(Chain of Responsibility)原创 2022-10-23 20:29:00 · 496 阅读 · 2 评论 -
设计模式(七)——装饰器模式(Decorator )
设计模式(七)——装饰器模式(Decorator )原创 2022-10-23 19:10:36 · 565 阅读 · 0 评论 -
设计模式(六)——中介者模式(Mediator )
设计模式(六)——中介者模式(Mediator )原创 2022-10-22 21:19:35 · 137 阅读 · 0 评论 -
设计模式(五)——门面模式(Facade )
设计模式(五)——门面模式(Facade )原创 2022-10-22 21:12:29 · 377 阅读 · 0 评论 -
设计模式(四)——抽象工厂模式(Abstract Factory)
设计模式(四)——抽象工厂模式(Abstract Factory)原创 2022-10-22 21:04:36 · 627 阅读 · 0 评论 -
设计模式(三)——工厂模式(Factory)
设计模式(三)——工厂模式(Factory)原创 2022-10-22 17:42:49 · 258 阅读 · 0 评论 -
设计模式(二)——策略模式(Strategy)
设计模式(二)——策略模式(Strategy)原创 2022-10-20 22:34:29 · 467 阅读 · 0 评论 -
设计模式(一)——单例模式(Singleton)
设计模式(一)——单例模式(Singleton)原创 2022-10-20 22:29:44 · 350 阅读 · 0 评论 -
Bootstrap学习3——组件
Bootstrap学习3——组件原创 2022-10-06 18:52:49 · 149 阅读 · 0 评论 -
Bootstrap学习2——全局css样式
Bootstrap学习2——全局css样式原创 2022-10-05 18:27:13 · 221 阅读 · 0 评论 -
Bootstrap学习1——栅格系统
Bootstrap学习1——栅格系统原创 2022-08-10 20:21:11 · 385 阅读 · 0 评论 -
JavaScript学习(七)——事件练习
实现全选和全不选的功能步骤给按钮设置点击事件修改所有复选框的选中状态首先是全选按钮,获取到节点之后,添加点击事件根据ClassName忽的checkbox的数组,遍历数组,修改选中状态全不选按钮一样的做法。还可以对所有checkbox添加点击事件,记录选中的条数,当条数改变是,修改最上面的checkbox的状态...原创 2022-08-04 07:49:17 · 398 阅读 · 0 评论 -
JavaScript学习(五)——首页跳转实现
JavaScript学习(五)——首页跳转实现原创 2022-08-03 23:01:15 · 652 阅读 · 0 评论 -
JavaScript学习(四)——轮播图的实现
javaScript实现轮播图原创 2022-08-02 22:38:31 · 272 阅读 · 0 评论 -
JavaScript学习(三)——BOM及DOM对象
BOM和DOM对象原创 2022-08-02 07:55:14 · 140 阅读 · 0 评论 -
JavaScript学习(二)——基本对象
即使数组的长度已经确定,还是可以访问长度之外的元素,数组会自动扩容。join()将数组按照传入的数据分隔,默认为逗号。push()向数组的末尾添加元素,返回数组的长度。random()返回0到1之间的随机数,左开右闭。单个字符[a][ab][a-zA-Z0-9_]方法定义是,形参的类型不用写,返回值类型也不写。方法是一个对象,如果定义名称相同的方法,会覆盖。数组的类型是可以变化的,元素可以是不同的类型。无需创建,使用Math.方法名()即可使用。全局方法,在任何js文件中都可以使用的方法。...原创 2022-08-01 23:11:47 · 225 阅读 · 0 评论 -
JavaScript学习(一)——基本语法
文章目录JavaScript:概念功能:JavaScript发展史:基本语法与html结合方式注释数据类型:变量运算符一元运算符算数运算符赋值运算符比较运算符逻辑运算符三元运算符流程控制语句JavaScript:JavaScript的很多语法都和Java类似,但是两者之间没有关系。概念一门客户端脚本语言运行在客户端浏览器中的。每一个浏览器都有JavaScript的解析引擎脚本语言:不需要编译,直接就可以被浏览器解析执行了功能:可以来增强用户和html页面的交互过程,可以来控制ht原创 2022-08-01 23:08:01 · 152 阅读 · 0 评论 -
Springboot项目打包部署
Springboot项目打包部署原创 2022-07-26 21:54:38 · 452 阅读 · 0 评论 -
SpringBoot学习(八)——Swagger
Swagger原创 2022-07-26 21:43:16 · 215 阅读 · 0 评论 -
SpringBoot学习(七)——Springboot整合SpringSecurity
Springboot整合SpringSecurity原创 2022-07-19 17:09:06 · 1023 阅读 · 0 评论 -
SpringBoot学习(六)——springboot整合后台模板
SpringBoot学习(六)——springboot整合后台模板原创 2022-07-05 16:39:53 · 1157 阅读 · 0 评论 -
SpringBoot学习(五)——Thymeleaf
SpringBoot学习(五)——Thymeleaf原创 2022-07-03 22:23:24 · 158 阅读 · 0 评论