自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 WPF样式与触发器

顾名思义, 触发器可以理解为, 当达到了触发的条件, 那么就执行预期内的响应, 可以是样式、数据变化、动画等。触发器通过 Style.Triggers集合连接到样式中, 每个样式都可以有任意多个触发器, 并且每个触发器都是 System.Windows.TriggerBase的派生类实例, 以下是触发器的类型Trigger : 监测依赖属性的变化、触发器生效MultiTrigger : 通过多个条件的设置、达到满足条件、触发器生效DataTrigger : 通过数据的变化、触发器生效。

2023-06-12 14:43:32 251

原创 WPF绑定(Binding)

在控件绑定中有一个比较特殊的存在——模板绑定-templatebinding,它与binding并不在一个继承结构上。件绑定,即在同一个界面中不同控件之间的数据同步处理,最常见的就是滑动条与一个文本框之间的绑定。在控件绑定中,需要指定绑定类的elementname属性值,即当前属性绑定到哪一个控件的属性上。TwoWay 无论是目标属性还是源属性,只要发生了更改,TwoWay 就会更新目标属性或源属性。1.绑定目标 2.绑定属性 3.绑定模式 4.绑定数据源 5.关联资源。2.绑定属性(依赖项属性)

2023-05-31 19:29:30 2948

原创 依赖属性和附加属性

//依赖属性和附加属性定义的不同。参数三(typeof(YMDemo)):依赖属性IsRotate的所有者类型,即定义该附加属性的类是YMDemo。附加属性也是依赖属性, 只是它的注册方式与表达方式略有不同 ,一般作为公共使用,如下所示。参数二(typeof(bool)):声明属性IsRotate的类型是bool。在WPF当中, 所有支持绑定的属性本质上它都是封装后的依赖属性。参数一(IsRotate):要注册的附加属性的名称。参数四的类型是PropertyMetadata。

2023-05-27 16:06:49 178

原创 C# 反射

反射:来自于System.Reflection,是一个帮助类库,可以读取dll/exe中metadata,使用metadata创建对象。C# 编译的时候会生成dll( 程序集),通过反射可以获取或者操作程序集内部的类,方法,特性,属性字段等;(1)LoadFrom:dll全名称,需要后缀。IL:中间语言,编译把高级语言编译后得到的C#中最真实的语言状态,面向对象语言。反编译工具:ILSpy可以反编译dll/exe,查看对应的C#/IL代码。优点:可以动态获取程序集内部的东西,提高了程序的灵活性和扩展性;

2023-05-03 16:25:19 176

原创 C# 扩展方法

失败返回0

2023-05-02 15:28:29 38

原创 C# 泛型

where X : class, new() //约束 X 必须是引用类型,并且有一个无参数的构造函数,当有多个约束时,new()必须写在最后。where Y : MyClass2 //约束 Y 必须是 MyClass2 类型,或者继承于 MyClass2 类。where W : K //约束 W 必须是 K 类型,或者是 K 类型的子类。where K : class //约束 K 必须是引用类型。是将不确定的类型预先定义下来的一种C#高级语法。

2023-05-02 15:05:16 42

原创 C# 委托的使用场景

委托可以用来做方法的抽象,实现代码的解耦功能,下面举例来说明;

2023-04-30 16:36:39 224

原创 C# Lambda表达式

Lambda表达式是一个匿名函数,是一个委托的代码,一般为了让代码变得简洁,干净,项目中常常使用Lambda表达式来编程,为了大家能够熟悉Lambda表达式,下面介绍Lambda式的几种形式;第三种:用微软定义Action,Function代替委托;第四种:async,await 中使用的委托;第一种:最原始的一种。第二种:去掉部分内容。

2023-04-29 15:31:10 64

原创 C# Action 和 Function

onsole.WriteLine("我是买书的是:{0}",BookName);BookAction("百年孤独");不带返回值的泛型委托(参数0到16个);带返回值的泛型委托(参数0到16个)、return "送书来了";三:什么是Function?一:什么是Action?

2023-04-23 21:47:02 173

原创 C# 中的委托和事件

3.委托一般用于回调,而事件一般用于外部接口。在观察者模式中,被观察者可在内部声明一个事件作为外部观察者注册的接口。2.事件只能在类的内部进行触发,不能在类的外部进行触发。而委托在类的内部和外部都可触发;2.委托是一个类,当其进行实例化的时候,要将引用方法作为它的构造方法的参数;1.事件只能在方法的外部进行声明,而委托在方法的外部和内部都可以进行声明;2.+=为事件注册多个委托实例或多个方法;3-=为事件减少多个委托实例或多个方法;1.事件可以看做是一个委托类型的变量。六:委托与事件的区别?

2023-04-22 21:13:34 400

转载 C#各类集合汇总

平常在工作中List集合是用的最多的,其次是Array(数组).今天整理一下各类形式的集合,不用就容易忘,必须要记录一下.但是链表这种集合继承了ICollection类型的接口,因此可获得集合的长度(长度不定的集合都继承了ICollection接口)泛型,保证类型安全,避免装箱拆箱(都是统一的类型)C#中(线程)栈的内存释放也是一样,先实例化的对象最后释放(在栈中声明的变量,最先声明的最后GC)Array:在内存上是连续分配的(可定义长度,也可不定义长度),Array中的元素类型要一样。

2022-08-21 20:15:47 1323

转载 Redis

公众号:捡田螺的小男孩 github地址1. 什么是Redis?它主要用来什么的?Redis,英文全称是Remote Dictionary Server(远程字典服务),是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。与MySQL数据库不同的是,Redis的数据是存在内存中的。它的读写速度非常快,每秒可以处理超过10万次读写操作。因此redis被广泛应用于缓存,另外,Redis也经常用来做分布式锁。除此之外,Re..

2021-11-10 19:34:58 309

转载 MySQL高级篇 - 性能优化

生产过程中优化的过程 观察,至少跑一天,看看生产的慢SQL情况 开启慢查询日志,设置阈值,比如超过5秒钟的就是慢SQL,并将它抓取出来 Explain+慢SQL分析 show profile 运维经理 or DBA,进行SQL数据库服务器的参数调优 目标 慢查询的开启并捕获 explain+慢SQL分析 show profile查询SQL在MySQL服务器里面的执行细节和生命周期情况 SQL数据库服务器的参数调优 索引优化 (*) 索引分析单表 建表SQ

2021-11-09 20:03:56 272

转载 MySQL慢查询优化(线上案例调优)

文章说明这篇文章主要是记录自己最近在真实工作中遇到的慢查询的案例,然后进行调优分析的过程,欢迎大家一起讨论调优经验。(以下出现的表名,列名都是化名,实际数据也进行过一点微调。可能文章比较贴近实践,已经被51CTO的编辑申请转载了)一.复杂的深分页问题优化背景有一个article表,用于存储文章的基本信息的,有文章id,作者id等一些属性,有一个content表,主要用于存储文章的内容,主键是article_id,需求需要将一些满足条件的作者发布的文章导入到另外一个库,所以我同事就在项目中先查

2021-11-09 20:01:11 344

转载 Linux 常用命令

关机 shutdown语法:shutdown [-t seconds] /[-r/k/h/n/c/f/F] time [message]-r 为关机后开机(即重启) -h 为关机 time 为关机的时间 message 为 信息最常用shutdown -r now 立即重启 shutdown -h now 关机更改目录 cd语法:cd [路径/目录名]常用:cd ~ 进入“home”目录 cd / 进入根目录 cd .. 返回上一级目录 cd a/b 进入当前文件夹

2021-10-25 20:09:26 60

转载 Mysql执行计划

昨天中午在食堂,和部门的技术大牛们坐在一桌吃饭,作为一个卑微技术渣仔默默的吃着饭,听大佬们高谈阔论,研究各种高端技术,我TM也想说话可实在插不上嘴。聊着聊着突然说到他上午面试了一个工作6年的程序员,表情挺复杂,他说:我看他简历写着熟悉SQL语句调优,就问了下 Explain 执行计划怎么看?结果这老哥一问三不知,工作6年这么基础的东西都不了解!感受到了大佬的王之鄙视,回到工位我就开始默默写这个,哎~ 我TM也不太懂 Explain ,老哥你这是针对我啊!哭唧唧~Explain有什么用当E

2021-10-16 17:43:59 70

转载 Mysql事物和隔离级别

事务什么是事务?事务,由一个有限的数据库操作序列构成,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。假如A转账给B 100 元,先从A的账户里扣除 100 元,再在 B 的账户上加上 100 元。如果扣完A的100元后,还没来得及给B加上,银行系统异常了,最后导致A的余额减少了,B的余额却没有增加。所以就需要事务,将A的钱回滚回去,就是这么简单。事务的四大特性原子性: 事务作为一个整体被执行,包含在其中的对数据库的操作要么全部都执行,要么都不执行。.

2021-10-16 16:30:34 112

转载 数据库索引

我坐在面试官的对面,声情并茂的做着自我介绍,面试官小哥哥面无表情的翻看着我的简历。不知道是小哥哥过于高冷还是被我的简历吸引,2分钟了,小哥哥还是没有和我讲一句话。嘤嘤嘤~看起来似乎有两下子。不过无所谓,这些都不重要。什么是索引?面试官:我看你项目中有做过 SQL 优化,那我们今天就来聊聊索引吧。(索引能问些啥,无非是索引的概念、索引的使用规则、索引的分类、索引的原理。嘻嘻~我早有准备)我:数据库中的索引,简单来说呐,就好比一本书的目录,它可以帮我们快速进行特定值的定位与查找,从而加快数据

2021-10-11 22:46:47 271

转载 Eureka优化

1. Eureka的自我保护服务注册到Eureka中以后。默认情况下每30s(默认)给Eureka发一次心跳,如果Eureka一段时间(默认90s)没收到心跳就会把该服务剔除。但是有时候服务正常,只是由于网络异常抖动没有把心跳发送至Eureka,如果Eureka这时把服务剔除,当网络恢复正常时,服务也不会重新注册到Eureka(服务只有在启动得时候才注册Eureka)。服务通过Eureka是访问不了的。为了防止这种误杀,Eureka提供了自我保护机制:Eureka在15分钟内收到服务端心跳数小于E

2021-09-14 23:53:33 471

转载 spring ioc容器初始化

IOC容器的初始化分为三个过程实现:第一个过程是Resource资源定位。这个Resouce指的是BeanDefinition的资源定位。这个过程就是容器找数据的过程,就像水桶装水需要先找到水一样。第二个过程是BeanDefinition的载入过程。这个载入过程是把用户定义好的Bean表示成Ioc容器内部的数据结构,而这个容器内部的数据结构就是BeanDefition。第三个过程是向IOC容器注册这些BeanDefinition的过程,这个过程就是将前面的BeanDefition保存到HashMap

2021-09-12 22:30:05 289

转载 Eureka(服务注册)

什么是服务注册?首先我们来了解下,服务注册、服务发现和服务注册中心的之间的关系。举个形象的例子,三者之间的关系就好像是供货商,顾客和商店。首先各地的供货商会将各种商品提供给商店,然后顾客需要商品的时候会去商店购买。注册中心就好比是这个商店,供货商的动作就是服务注册,商品就是注册的服务。当部署的服务启动后,会注册到注册中心,消费者需要什么样的服务,就自己去注册中心拉取。那么到底什么是服务注册,为什么要将服务注册到注册中心呢?服务注册指的是服务在启动时将服务的信息注册到注册中心中,

2021-09-12 17:30:14 503

转载 Cookie,Session,token

Cookie 和 Session 的区别安全性: Session 比 Cookie 安全,Session 是存储在服务器端的,Cookie 是存储在客户端的。 存取值的类型不同:Cookie 只支持存字符串数据,想要设置其他类型的数据,需要将其转换成字符串,Session 可以存任意数据类型。 有效期不同: Cookie 可设置为长时间保持,比如我们经常使用的默认登录功能,Session 一般失效时间较短,客户端关闭(默认情况下)或者 Session 超时都会失效。 存储大小不同: 单个 Cook

2021-08-24 20:15:28 49

转载 设计模式之代理模式

定义为其他对象提供一种代理以控制对这个对象的访问。复制代码优点代理模式在客户端与目标对象之间起到一个中介作用和保护目标对象的作用; 代理对象可以扩展目标对象的功能; 代理模式能将客户端与目标对象分离,在一定程度上降低了系统的耦合度,增加了程序的可扩展性缺点代理模式会造成系统设计中类的数量增加 在客户端和目标对象之间增加一个代理对象,会造成请求处理速度变慢; 增加了系统的复杂度;结构抽象主题(Subject)类:通过接口或抽象类声明真实主题和代理对象实现的业务方法。(共同接

2021-08-23 17:21:28 53

转载 设计模式之桥接模式

一、桥接模式入门1.1 概述桥接模式的问题常常用来解决多个维度的问题。比如这张经典的图,河一边是电脑、电视、收音机等设备,而河对岸是各种遥控器,这其实对应两个维度,通过一架高桥完成连接通信。而所谓的“桥”的联系是提取出来的接口的联系,在维度一中调用维度二的接口,然后把接口传入维度一的构造方法中。下面我们继续以浅谈装饰者模式中的手抓饼案例为例,来开始桥接模式的讲解。假设卖手抓饼的大娘 目前的业务有山东杂粮煎饼、原味手抓饼。现在为了扩大销量,采用了 线下店铺和淘宝电商的多种渠道方式,这就是包

2021-08-23 16:09:48 214

转载 Spring boot 注解

controller 层1、@Controller 表明这个类是一个控制器类,和@RequestMapping来配合使用拦截请求,如果不在method中注明请求的方式,默认是拦截get和post请求。这样请求会完成后转向一个视图解析器。但是在大多微服务搭建的时候,前后端会做分离。所以请求后端只关注数据处理,后端返回json数据的话,需要配合@ResponseBody注解来完成。这样一个只需要返回数据的接口就需要3个注解来完成,大多情况我们都是需要返回数据。也是基于最佳实践,所以将这三个注解进一步整合

2021-08-18 16:23:59 95

转载 设计模式之模板模式

我的Java设计模式-模板方法模式近日,ofo小黄车宣布入驻法国巴黎,正式进入全球第20个国家,共享单车已然改变了我们的出行方式。就拿我自己来说,每当下班出地铁的第一件事,以光速锁定一辆共享单车,百米冲刺的速度抢在别人之前占领它。而大家都是重复着同样的动作,拿出手机开锁、骑车、上锁、结算,哇~这是何等壮观的场景,甚至还有的不用开锁直接把车骑走的,锁坏了嘛。为什么要用模板方法模式现在共享单车以开锁的方式来分,一般有扫码开锁和密码开锁两种,来看共享单车使用流程的实现。正常的思维逻辑是,抽象一

2021-08-17 10:58:17 59

转载 设计模式之适配器模式

适配器模式适配器模式(Adapter Pattern):将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。在适配器模式中,我们通过增加一个新的适配器类来解决接口不兼容的问题,使得原本没有任何关系的类可以协同工作。根据适配器类与适配者类的关系不同,适配器模式可分为对象适配器和类适配器两种,在对象适配器模式中,适配器与适配者之间是关联关系;在类适配器模式中,适配器与适配者之间是继承(或

2021-08-16 15:03:04 102

转载 设计模式之六大原则

设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。为什么要学习设计模式看懂源代码:如果你不懂设计模式去看Jdk、Spring、SpringMVC、IO等等等等的源码,你会很迷茫,你会寸步难行 看看前辈的代码:你去个公司难道都是新项目让你接手?很有可能是接盘的,前辈的开发难道不用设计模式? 编写自己的理想中的好代码:我个人反正是这样的,对于我自己开发的项目我会很认真,我对他比对我女朋友还好

2021-08-12 16:13:38 51

原创 控制反转依赖注入

控制反转依赖注入解释:控制反转:控制反转其实并不是某项具体的实现技术,它是一种思路(或者是设计理念)。谁控制谁,控制什么:我们直接通过new进行创建对象,是程序主动去创建依赖对象;而我们现在有专门一个容器来创建这些对象,即由容器来控制和管理对象;为何是反转,哪些方面反转了:有反转就有正转,传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,也就是正转;而反转则是由容器来帮忙创建及注入依赖对象;这种注入的方式就是依赖注入思考:●谁依赖于谁:当然是应用程序依赖于容

2021-08-07 14:36:40 40

原创 设计模式之构造者模式

Builder 接口或抽象类 抽象的建造者,不是必须的 Woker 具体的建造者 可以有多个「因为每个建造风格可能不一样」 Product 普通的类 具体的产品「即被建造的对象」 Director 导演也叫指挥者 统一指挥建造者去建造目标,导演不是必须的 具体产品:public class Product { private String builderA;//地基 private String builderB;//钢筋

2021-08-03 23:26:45 82

原创 设计模式之工厂模式

一:简单工厂模式类图:简单工厂定义了一个工厂类,根据传入参数区创建不同的实例,适用场景要求工厂类中创建对象不要太多,否则业务逻辑过于复杂,工厂类中封装了创建类的过程,做到了对修改关闭,增加开放;public interface Car { void name();}public class Tesla implements Car{ @Override public void name() { System.out.print(.

2021-08-01 23:25:41 41

原创 设计模式之策略模式

策略模式+单例+工厂解决if else问题例如:if(情况一){业务一}; else if(情况二){业务二}; else if(情况三){业务三}; public interfacestrategy{ public void methods(sring situation){};} public void oneStrategy impleme...

2021-08-01 17:44:00 35

原创 设计模式之单例模式

单例模式一:饿汉式:public class singleton{ private singleton(){};private static finalsingletoninstance = new singleton(); public static singletongetInstance() { return instance;}}总结:简单粗暴,在类加载的...

2021-08-01 17:14:41 34

转载 Mybatis

1.Mybatis是如何进行分页的?分页插件的原理是什么?1. #{}:select * from emp where empno = ? ${}: select * from emp where empno = 7369 通过sql语句可以得出结论: #{}的处理方式是使用了参数预编译的方式,不会引起sql注入的问题 ${}的处理方式是直接拼接sql语句,得到对应的sql语句,会有sql注入的危险 因此,我们推荐大家使用#{}的方式

2021-07-29 22:17:21 100

转载 Sping MVC

4. SpringMVC 中的组件1.DispatcherServlet:前端控制器用户请求到达前端控制器,它就相当于 mvc 模式中的c,DispatcherServlet 是整个流程控制的中心,相当于是 SpringMVC 的大脑,由它调用其它组件处理用户的请求,DispatcherServlet 的存在降低了组件之间的耦合性。2.HandlerMapping:处理器映射器HandlerMapping 负责根据用户请求找到 Handler 即处理器(也就是我们所说的 Controll..

2021-07-28 20:44:29 45

原创 Java SE

1.抽象类与接口和区别1.接口和抽象类都不可以 实例化;2.接口用的关键字是interface,抽象类用的关键字是abstract;3.接口中的变量会自动变成public static final修饰的静态变量;4.接口的所有方法都需要从子类实现,抽象类只有抽象方法需要子类实现;5.接口是多继承的,抽象类是单继承的;2.static关键字1.static 关键字可用于变量、方法、代码块(静态代码块)和内部类(可以联想单列模式,后续都有讲解),表示某个特定的成员只属于某个类本身,而

2021-07-27 20:27:13 48

转载 Spring

sping两大特性:Ioc(控制反转):负责创建对象,管理对象(通过依赖注入(DI),装配对象,配置对象,并且管理这些对象的整个生命周期;通过一个容器决定注入对象(这种注入的方式就是依赖注入),来实现解耦的方式,Spring 中的 IOC 的实现原理就是工厂模式加反射机制Aop(面向切面变成):面对切面编程,这是一种编程模式,他允许程序员通过自定义的横切点进行模块 化,将那些影响多个类的行为封装到可重用的模块中。 例子:比如日志输出,不使用AOP的话就需要把日志的输出语句放在所有类中,方法 中,

2021-07-16 15:43:30 727

原创 IDEA的使用

idea的快捷键:1.撤销和反撤销:ctrl + z / ctrl + shift + z2.收起/展开代码:command + shift(Ctrl+win+Shift)3.command + B(Ctrl+win+B)4.查看方法调用链:control + alt + h5.查看方法调用位置:alt + f76.contrl + f 当前文件下的文本查询7.contrl + shift + f 全局的文本查询8.contrl + shift + n 全局的文件查询...

2021-07-15 14:30:58 102

转载 java 容器

1.集合和数组的区别 数组是固定长度的;集合可变长度的。 数组可以存储基本数据类型,也可以存储引用数据类型;集合只能存储引用数据类型。 数组存储的元素必须是同一个数据类型;集合存储的对象可以是不同数据类型。 2.分类:2:AarrayList 与LinkedList的区别:1.底层数据结构不同,...

2021-07-14 22:30:03 36

原创 二叉树和红黑树

二叉树的特性:1.左节点小于等于根节点;2.友节点大于等于根节点;3.左右子树也满足上述情况;二叉树的优点是用了二分查找的思想,其缺点在于如果只往一个节点的左节点上增加数据,其实又相当于链表操作红黑树的特性(红黑树是一种平衡二叉树):1.根节点一定是黑色;2.节点可以是黑色,也可以是红色;3.每个红色节点下都有两个黑色的节点,并且叶子节点都是黑色的空节点;4.每个节点到其叶子节点,都有相同的黑色节点;因此可以使得从根节点到最远的叶子节点的路径长与到最近的叶子节点的路.

2021-07-14 15:29:39 161

空空如也

空空如也

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

TA关注的人

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