自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ES优化方面

es优化

2022-08-17 16:22:11 405 1

原创 Long型精度丢失

https://blog.csdn.net/z491036107/article/details/89203853

2021-09-22 14:09:03 127

原创 exists与 in的版本比较差别

-- A表为小表 B表为大表select * from A where cc in (select cc from B) select * from A where exists(select cc from B where cc=A.cc) -- ()内部cc可以换成 * 但却不会影响执行效率,因为exists只关心 此行存在与否,不关心字段值首先 exists,会对外层表做全盘扫描括号内为内层表,外部为外层表在MySql 5.5及之前in 执行时会被优化为 exists; (内层

2020-12-03 21:28:32 188

原创 枚举的原理及使用

枚举锁定了取值范围的数据类型枚举其实就是静态常量注意问题1.枚举常量直接用逗号隔开,最后分号可写可不写,如果后边有代码,必须加分号2. 枚举只能包含私有构造方法,属性和普通方法,必须写在常量后边枚举类型可以看做我们平时新建.java差不多,只是枚举类限制了此类的实例对象。原理解析public enum Season { SPRING,SUMMER,AUTUMN,WINTER; public static void main(String[] args) {

2020-09-15 13:29:01 433

原创 JavaWeb 12 JQuery

JQueryjquery的所有操作都是批量进行的,使用选择器选出的是一组对象,一般情况下,不需要循环操作选择器层次选择器过滤选择器表单选择器以关系选择// 索引小于2 的li 如 0,1 var s = $("ul li:lt(2)"); // 索引大于 2 的元素 3,4 $("ul li:gt(2)").text(); console.log(s); // 遍

2020-09-10 17:40:14 100

原创 JAVA WEB 11 AJAX

异步请求,局部刷新AJAX简单实例请求界面,使用JS提交表单<body> 用户名<input type="text" id="name"><span id="info"></span><br> <button onclick="sendAjax()">登录</button> </body> <script> function sendAjax() { //

2020-09-08 19:59:50 531

原创 JavaWeb 10 JavaScript

基本语法var声明变量基本类型::Number,String,Boolean,Undefined(未赋值),Null(手动赋给Null,不赋值为Undefined)简单使用var a; // document.write(a); // 引用类型 对象声明 var Student = {name:"chichi",id:"13579"}; document.write(Student.name); // 数组

2020-09-07 15:49:59 132

原创 JDBC实例 实现事务 银行转账模拟

事务实现配置文件driver=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/test?useSSL=false&characterEncoding=utf8username=rootpassword=13579initialSize=10maxActive=50minIdle=5maxWait=10000DbUtilspackage utils;import com.alibaba.druid.pool.Dr

2020-09-05 17:05:17 285

原创 JAVA 09 Filter,Listener

Filter请求与响应时都会经过FilterTomcat启动时就会创建,关闭时销毁多个Filter可拦截同一个网页Filter配置1.配置web.xml<!-- 配置过滤器--> <filter><!-- filter名称--> <filter-name>MyFilter</filter-name><!-- 全限定名--> <filte

2020-09-04 22:11:29 178

原创 JAVA 08 综合项目 文件的上传与下载,登录

文件上传下载

2020-09-04 09:10:32 141

原创 JavaWeb 07 JSP

JSPJava服务器页面,Java Server Pages,动态网页开发技术页面可包含:指令,脚本(java代码)脚本表达式(输出),声明,HTML,CSS,JSPJSP实现原理Tomcat会将xxx.isp转换成Java代码,这个类会继承HttpServlet,进而编译成.class文件运行,最终将运行结果通过response响应给客户端(这个响应会动态使用out.write 拼出一个网页)。jsp实际上是一个Servlet脚本脚本可以编写Java语句,变量,方法或表达式<%--

2020-09-03 09:09:45 141

原创 设计带使(设计模式总结)

创建型模式对对象的实例化过程进行抽象,封装了对象的创建结构型模式对已有类和对象进行组合,来获得更好的结构行为型模式描述类或对象怎样进行交互和职责分配。

2020-09-01 22:02:58 105

原创 JAVA Web 06-2 Cookie,Session,作用域

Cookie第一次访问服务器,服务器响应时发送给浏览器Cookie,浏览器再次访问对应路径时携带Cookie访问(request中有cookie)创建Cookie// 1.创建Cookie Cookie cookie = new Cookie("username", "zhangsan"); Cookie cookie1 = new Cookie("address","上海");// 2.设置三个参数// 2.1有效路径/

2020-09-01 09:30:49 202

原创 JavaWeb 06 Servlet

软件架构Client/ServerC/S 服务器 客户端优点:图形效果好缺点:服务器升级是,客户端也必须升级Browser/ServerB/S优点:直升级服务武器短缺点:图形显示不好,安全性查Tomcat内部应用多线程,IO流项目部署...

2020-08-31 15:25:56 137

原创 行为型模式 11 访问者模式

访问者模式Visitor表示一个作用于某对象结构中的各元素的操作,它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。有某个操作,它是作用于一些元素之上的,而这些元素属于某一个对象结构。Visitor:抽象访问者: 其visit方法限定具体访问者能访问的类ConcreteVisitor:具体访问者,实现visit方法,访问后对元素类对象要做的操作Element:抽象元素类,主要为子类提供接受Visitor的功能ConcreteElement:具体元素类,实现Accept方法,格式一

2020-08-30 23:04:21 74

原创 行为型模式 10 解释器模式

解释器模式Interpreter给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子

2020-08-30 13:12:54 85

原创 结构型模式 07 享元模式

享元模式Flyweight运用共享技术有效的支持大量细粒度的对象FlyWeightFactory:享元工厂类,负责创建于管理享元对象,持有一个享元对象集合FlyWeight:抽象享元类,抽象的产品同时定义外部状态接口或实现ConcreteFlyWeight:具体享元类,具体产品类UnShareConcreteFlyWeight:不可共享角色内部状态与外部状态:内部:不会碎环境改变的共享部分外部: 随环境改变而改变的内部状态存储于Flyweight,包含独立于场景的信息(共享)外部状态取

2020-08-29 22:29:53 73

原创 行为型模式 09 中介者模式

中介者模式Mediator用一个中介对象来封装一系列的对象交互。中介者使得各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立的改变他们之间的交互Colleague:抽象同事类,持有Mediator引用ConcreteColleague:具体同事类:每个类只知道自己的行为,彼此互相不认识,但都认识中介者Mediator:抽象中介者,定义用于同事类之间的通信抽象方法ConcreteMediator:实现抽象方法,知道所有抽象具体同事类(可使用List),从具体同事类接收消息,在对具体同事发出

2020-08-29 16:14:15 96

原创 行为型模式 08 职责链模式

职责链模式使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合。将这个对象连城一条链,并沿着这条俩传递该请求,直到有一个对象处理它为止Handler:抽象处理者,定义抽象处理方法以及对下一个处理者的引用,一般为抽象类与状态模式状态模式:状态模式是把原来类中的针对自身不同状态的行为独立出去,作为了,是一个类对于不同问题的处理,每个类中上下级森严,状态迁移的顺序已经决定,不允许客户端进行操作职责链模式是不同类对于一个问题的反应,责任类不需要知道自己的下一个类是什么可以在客户端湖环境类中

2020-08-29 11:32:42 85

原创 行为型模式 07 命令模式

命令模式Command经一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持课撤销的操作Command:定义命令接口,声明执行的方法ConcreteCommand:实现类,实现方法,持有Receiver引用Invoker:调用者持有Command,可能多个,调用命令Receiver:接收者,命令的实际执行者(可是抽象的)对命令进行封装,使得命令请求本身成为了一个对象使用场景降低耦合,调用者与执行者分离,互相不知道是谁,可以组合多个命令,形成一个

2020-08-28 21:51:17 74

原创 使用连接池,Commons dbutils 处理事务,对数据库进行操作

Dbutils使用Druid连接池package week2.jdbctest.utils;import com.alibaba.druid.pool.DruidDataSourceFactory;import week2.jdbctest.bankexception.BankException;import javax.sql.DataSource;import java.io.InputStream;import java.sql.Connection;import java.sq.

2020-08-27 08:20:12 186

原创 JAVA Web 05 CSS

导入方式内联:直接写在标签中 单独设置,简单,不能重复使用内部:在 内部style标签中 对同类标签进行设置,只能当前页面显示外部:独立CSS文件 link rel=“stylesheet” 引用的CSS文件,所有页面都可引用优先级就近原则:内联是一定最近的,优先级肯定最高,内部与内联那个写的与body进,那个优先级高选择器基本选择器标签选择器id选择器class选择器同种使用方式下:优先级 id >class>标签...

2020-08-26 19:47:12 124

原创 JAVA Web 04 HTML

HTML排版标签<!-- 水平线标签 --> <hr align="center" width="300" color="blue" size="4"/>文字标签 <font size="5" color="blue" face="arial black">文字标签</font>格式化标签 <h2>文本标签</h2> <b>加粗</b> <strong>加粗</s

2020-08-25 20:27:18 119

原创 结构型模式 06 桥接模式

桥接模式Bridge将抽象部分与他的实现部分分离,使他们都可以独立地变化实现部分是指 其抽象类和他的派生类用来实现的对象,让实现独立,使得它们各自的变化,而不会影响彼此,减小耦合使用场景实现系统有多角度分类,每一种分类都可能有变化。...

2020-08-25 18:13:52 134 1

原创 创建型模式 05 单例模式

单例模式 Singleton)保证一个类仅有一个实例,并提供一个访问它的全局访问点让类本身负责保存其唯一实例1.饿汉式:类一加载,对象就初始化缺点:生命周期长,浪费空间 优点:线程安全懒汉式:public class SingleCon { // 懒汉模式 // 1.私有化构造方法 private static boolean f = false; private SingleCon(){ if (f){ // 防止使用反射

2020-08-25 10:56:47 119

原创 行为型模式 06 迭代器模式

迭代器模式Iterator提供一种方法顺序访问一个聚合对象中各个元素,而又不需要暴露该对的内部表示Iterator:抽象迭代类,提供遍历所需的开始,下一个,当前是哪个,是否结束等统一接口ConcreteIterator :具体迭代类具体实现方法Aggregate :抽象聚集类,有创造Iterator的接口ConcreteAggregate:时间接口,持有一个聚集元素集合使用场景1一个聚集对象(接口或抽象类集合),不管对象是那种子类都要对其进行遍历时,可考虑使用迭代器模式2.需要对一个聚集有

2020-08-25 09:09:11 72

原创 结构型模式 05 组合模式

组合模式Composite将对象组合成shuz

2020-08-24 16:03:05 130

原创 行为型模式 05 备忘录模式

备忘录模式Memento在不破坏封装性的前提下,捕获一个对象的内部状态,不在该对象之外保存这个状态,这样以后就可以将该对象恢复到原先保存的状态Originator 发起人:记录当前时刻的内部状态,负责创建和恢复备忘录数据,决定要被备份的范围Memento 备忘录:负责存储Originator发起人对象的内部状态,在需要的时候提供发起人需要的内部状态,但防止除发起者以外的人访问备忘录具有两个接口,Caretaker只能使用窄接口,仅能将备忘录传递给其他对象,Originator能使用宽接口,允许他访

2020-08-24 08:42:57 63

原创 结构型模式 04 适配器模式

适配器模式 Adapter只说对象适配器,类适配器需要多重继承将一个接口转换成客户希望的另外一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作时控制范围之外的一个原油对象与某个接口匹配,来复用一些现存的类,但接口又与复用环境要求不一致的情况Target:客户所期望的接口,可以抽象也可以是具体类Adaper:包装需要适配的对象把原接口转换为目标接口,实现Target,持有Adaptee的引用Adaptee:需要被适配的类Target不知道Adaptee这个类,

2020-08-23 22:38:48 62

原创 行为型模式 04 状态模式

状态模式State状态切换当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类当控制一个对象状态转换的条件表达式过于复杂时的情况,把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化把各种判断逻辑分布到State的子类之间,来减少相互间的依赖Context:环境类,持有对State的引用,实际上拥有状态的对象。State:抽象状态类,封装与Contex的一个特定状态的行为ConcreteState 每个类实现了状态具体行为把各种状态及实现封装成一个C

2020-08-23 21:35:52 118

原创 创建型模式 04 抽象工厂模式

抽象工厂模式Abstract Factory创建一组相关或相互依赖的对象结构与工厂模式类似,只是产品变成类多个抽象产品实例产品共两个产品等级结构Screen结构public interface Screen { void display();}public class MacScreen implements Screen { @Override public void display() { System.out.println("苹果界面");

2020-08-23 15:43:21 77

原创 行为型模式 03 观察者模式

观察者模式(发布-订阅模式)定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发送变化是,会通知所有的观察者对象:使他们能够自动更新自己一个具体通知者实例对象对应多个具体观察者对象Subject:抽象通知者(被观察者),持有一个观察者对象引用集合。并提供方法,可以增加或删除引用集合中的观察者,另有一个抽象通知方法(一般为抽象类)ConcreteSubject:具体通知者,将有关状态存入具体观察者对象,在ConcreteSubject:储存具体观察者对象状态,当内

2020-08-23 13:25:37 66

原创 创造型模式 03 建造者模式

建造者模式Builder将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示Director :用它来控制建造过程,也可用它隔离与建造过程的关联(保证构建顺序)Builder:创建对象各部件的指定接口(对构建过程抽象)ConcreteBuilder:实现Builder,具体实现建造对象的过程,对Product装备,每个建造者都只负责一类具体产品Product:被构建的具体对象。实体类若Product只有一个,可省略Builder,Director,让ConcreteBuil

2020-08-22 22:09:42 87

原创 结构型模式 03 外观模式

外观模式 Facade为子系统中的一组接口提供一个一致的界面Facade :知道全部子系统的功能与数学,对其组合,方便调用SubSystem:子系统集合,内部存在一个或多个子系统,子系统不知道Facade的存在。应用:数据库三层架构 DAO,SERVICE,CLIENT使用场景1.设计初期,将不同的层分离2.开发过程中,各个子系统经过不断重构越来越复杂,让调用者来调用很困难,加上Facade,子系统内部操作全部隐藏,给外部使用的暴露出来,减少类之间的依赖,降低耦合3.维护大型系统,此系统难

2020-08-22 20:28:03 66

原创 行为型模式 02 模板方法模式

模板方法模式TemplateMethod定义一个操作中算法的骨架,而将一些步骤延迟到子类中 ,模板方法发使得子类可以不改变一个算法的结构即可重新定义带算法的某些特定步骤。模板方法模式通过把不变的行为搬移到超类,去除了子类中的重复代码。把子类中重复出现的方法抽取出来,搬到超类中AbstractClass定义了算法的骨架(可以有具体的实现,一般是抽象类),通过声明抽象方法限制子类以不同的方式来实现这些算法;ConcreClass对算法的具体实现类...

2020-08-22 19:07:45 60

原创 创建型模式 02 原型模式

原型模式Prototype即克隆用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象克隆 开辟新空间 不调用构造方法,直接在内存中复制要求实现cloneable接口(标记接口),重写克隆方法java.lang.clone(自动生成的即可),会调用构造方法浅克隆 ,不会克隆类内部非基本类型对象(String型也是浅拷贝),仅仅是复制引用深克隆,会克隆类内部其他类对象,开辟新内存存储,但该类也需实现cloneable和重写clone方法实例警察类:public class Poli

2020-08-22 16:36:44 75

原创 结构型模式 02 代理模式

代理模式Proxy为其他对象提供一种代理控制对这个对象的访问,引入了一定程度的间接性RealSubject 被代理角色,Proxy代理角色,持有一个realSubject对象引用实例Subject (接口)public interface GiveGift { void giveFlower(); void giveFood();}RealSubject 被代理者public class RealSubject implements GiveGift{ priv

2020-08-22 14:37:33 66

原创 结构型模式 01 装饰者模式

装饰模式Decorator是继承方案的一个替代方案,提供比继承更多的灵活性。在不改变原类文件以及不使用继承的情况下,动态地将功能附加到对象上,从而实现动态拓展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。动态的给对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活Component抽象被装饰者(是个借口)ConcreteComponent是具体被装饰者Decorator是抽象装饰者(是一个抽象类),子类为具体装饰者,每个装饰者都应该有一个实例变量用以保存某

2020-08-22 13:38:29 100

原创 面向对象的设计原则(个人理解)

可维护,可扩展,可复用,灵活性好单一职责原则:就一个类而言,应该仅有一个引起他变化的原因不要存在多于一个导致类变更的原因,也就是说每个类应该实现单一的职责,如若不 然,就应该把类拆分。如若多个原因,当一个原因改变是,很有可能影响其他的功能如果能够想到多余一个动机去改变一个类,那么这个类就具有多余一个的职责,就应该考虑职责分离开放-封闭原则(核心原则)开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改 原有的代码,而是要扩展原有代码,实现一个热插拔的效果创造抽象来隔离同

2020-08-22 10:30:15 87

原创 行为型模式 01 策略模式

面对对象的编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类把一个类中经常改变或者将来可能改变的部分提取出来,作为一个接口,然后在类中包含这个对象的实例,这样类的实例在运行时就可以随意调用实现了这个接口的类的行为。策略模式(Strategy): 定义算法家族,分别起来,让他们之间可与相互替换,此模式让算法的变化,不会影响到使用算法的客户...

2020-08-21 08:56:02 121

空空如也

空空如也

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

TA关注的人

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