自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 WPF触发器与模板

触发器可以理解为,当达到了触发的条件,那么就执行预期内的响应,可以是样式、数据变化、动画等。

2024-03-15 09:36:22 1497

原创 WPF布局、控件与样式

视频来源:https://www.bilibili.com/video/BV1HC4y1b76v/

2024-03-15 09:34:04 1223

原创 C# Winform串口助手

串口操作,收发数据 开关串口修改控件name属性了解SerialPort类实现串口的初始化,开关创建虚拟串口。# 协议解析## 数据大小算端### 大端模式 指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;### 小端模式指数据的高字节保存在内存的高地址中, 而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址

2023-11-02 11:47:45 677

原创 C#之网络

​ 从远程服务器上获取数据​ 把本地数据上传到服务器上在网络环境中,我们最感兴趣的两个名称空间是System.Net和System.Net.Sockets。System.Net名称空间通常与较高层的操作有关,例如下载和上传文件,使用HTTP和其他协议进行Web请求等;而System.Net.Sockets名称空间包含的类通常与较低层的操作有关。如果要直接使用套接字或TCP/IP之类的协议,这个名称空间中的类就非常有用。

2023-10-24 11:49:41 342

原创 文件和数据流

File类和Directory类就好比一个工厂,文件和文件夹就好比工厂所制作的产品,而工厂和产品的关系主要表现在以下几个方面:工厂可以自行开发产品(文件和文件夹的创建),也可以对该产品进行批量生产(文件和文件夹的复制,将产品进行销售(文件和文件夹的移动)以及将有质量问题的产品进行回收消除(文件和文件夹删除)。FileInfo类和File类之间许多方法调用都是相同的,但是FileInfo类没有静态方法,该类中的方法仅可以用于实例化的对象。是一些具有永久存储及特定顺序的字节组成的一个有序的、具有名称的集合。

2023-10-06 16:04:16 344

原创 数据结构——线性表

线性表是最常见且最简单的一种数据结构。是具有相同数据类型的n(n>=0)个数据元素的有限序列,其中n为表长,当n=0时线性表是一个空表。La1a2aiai1anLa1​a2​...ai​ai1​...an​ai是线性表中的“第i个”元素线性表中的位序.(注意:位序从1开始数组下标从0开始)a1是表头元素;an是表尾元素。除第一个元素外,每个元素有且仅有一个直接前驱;除最后一个元素外,每个元素有且仅有一个直接后驱。线性表的顺序表示又称为。

2023-09-04 09:37:18 626 2

原创 数据结构——绪论

**数据**:数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。**数据元素**:数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。一个数据元素可由若干个数据项组成,数据项是构成数据元素的不可分割的最小单位。**数据对象**:数据对象是性质相同的数据元素的集合,是数据的一个子集。**数据结构**:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。数据元素都不是孤立存在的,而是在它们之间存在着某种关系,这种数据元素相

2023-08-01 10:31:47 893

原创 C#之泛型

一、概述一、概述泛型是用于处理算法、数据结构的一种编程方法。泛型的目标是采用广泛适用和可交互性的形式来表示算法和数据结构,以使它们能够直接用于软件构造。泛型类、结构、接口、委托和方法可以根据它们存储和操作的数据的类型来进行参数化。泛型能在编译时提供强大的类型检查,减少数据类型之间的显示转换、装箱操作和运行时的类型检查。泛型类和泛型方法同时具备可重用性、类型安全和效率高等特性,这是非泛型类和非泛型方法无法具备的。泛型通常用在集合和在集合上运行的方法中。泛型主要是提高了代码的重要性。

2023-07-28 11:44:29 1221

原创 C#之事件

一、发布者和订阅者事件基于委托,为委托提供了一种发布/订阅机制。在架构内到处都能看到事件。在Windows应用程序中,Button类提供了Click事件。这类事件就是委托。触发Click事件时调用的处理程序方法需要定义,其参数由委托类型定义。一、发布者和订阅者(一)概述很多程序都有一个共同的需求,即当一个特定的程序事件发生时,程序的其他部分可以得到该事件已经发生的通知。可以满足这种需求。在这种模式中,定义了一系列程序的其他部分可能感兴趣的事件。

2023-07-25 10:43:55 567

原创 C#之委托

C#中的委托是一个类型,它描述了一个方法的签名,即方法的参数类型和返回类型。委托可以看作是一个指向方法的引用,使得我们可以像使用函数指针一样调用这些方法。将一个或多个方法作为参数传递给另一个方法,从而在需要时调用这些方法。实现事件处理程序。实现回调方法。实现异步编程等功能。委托和类一样,是一种用户定义类型。但类表示的是数据和方法的集合,而委托则持有一个或多个方法,以及一系列预定义操作。可以通过一下操作步骤来使用委托。

2023-07-22 15:08:11 12068 1

原创 Mybatis-Plus详解

Mybatis-Plus是一个Mybatis(opens new window)的增强工具,在Mybatis的基础上只做增强不做改变,为简化开发。无侵入:只做增强不做改变,引入它不会对现有工程产生影响。损耗小:启动即会自动注入基本CURD,性能基本无损耗,直接面向对象操作。强大的CRUD操作:内置通用Mapper、通用Service,仅仅通过少量配置即可实现单表大部分CRUD操作,更有强大的条件构造器,满足各类使用需求。支持Lambda形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需

2023-07-15 11:34:07 64189 6

原创 SpringMVC详解

SpringMVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分。简化开发,减少出错,方便组内开发人员之间的配合。他通过一套注解,让一个简单的Java类成为处理请求的控制器,而无需实现任何接口。同时它还支持Restful编程风格的请求。

2023-07-14 09:50:45 12214

原创 Spring详解(学习总结)

Spring是一个分层的java SE/EE full-stack(一站式)轻量级开源框架,以IOC(控制反转)和AOP(面向切面编程)为内核。在java三层架构当中分别提供了相应的技术:表现层(web层):SpringMVC框架业务层(service层):Bean管理(IOC容器)持久层(dao层):jdbcTemplate模板对象以及提供了ORM模块整合其他优秀的持久层技术。方便解耦,简化开发:Spring就是一个工厂,可以管理所有对象的创建和依赖关系维护,交给Spring管理。

2023-07-11 13:58:56 31559 5

原创 Spring常用注解

当有多个类型匹配时,使用要注入的对象变量名称作为 bean 的id,在 spring 容器查找,找到了也可以注入成功。使用注解进行开发时,需要在applicationContext.xml中配置组件扫描,作用是指定哪个包及其子包下的Bean需要进行扫描一便识别使用注解配置的类、字段和方法。使用Autowired或者@Autowired+@Qulifier或者@Resource进行userDao的注入。使用@Component或@Repository标识UserDaoImpl需要Spring进行实例化。

2023-07-08 11:42:52 180

原创 SpringAOP机制详解

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

2023-07-07 16:58:33 400

原创 Spring依赖注入DI

它是SpringBoot框架核心IOC的具体实现。组件之间的依赖关系由容器在应用系统运行期来决定,也就是由动态地将某种依赖关系的目标对象实例注入到应用系统中的各个关联的组件之中。

2023-07-06 11:46:08 720

原创 SpringIOC机制详解

所谓Bean的作用域其实就是指Spring给我们创建出的对象的存活范围,在配置文件中通过bean的scope属性指定取值范围说明singleton默认值,单例的prototype多例的requestWEB 项目中,Spring 创建一个 Bean 的对象,将对象存入到 request 域中sessionWEB 项目中,Spring 创建一个 Bean 的对象,将对象存入到 session 域中。

2023-06-30 09:00:00 7024 1

原创 Lambda

Lambda表达式是java对函数接口实现类对象的一种简化形式,本质是一个值(必须使用变量存储之后才能存在),在java中主要是体现在对特殊的匿名内部类对象的一种表示(就是对匿名内部类对函数式接口实现的简化),代表都是函数式接口的匿名内部类的对象。简单理解:Lambda表达式是对接口匿名内部类格式的一种简化,但是本质不一样。都是匿名内部类对象,但是匿名内部类对象是一个进行单独编译,创建的对象,Lambda表达式不会单独编译,本质是值。值表示了匿名内部类的对象。

2023-06-29 08:48:53 157

原创 Java反射

每个类加载器都是如此,只有在父类加载器在自己的搜索范围内找不到指定类时,子类加载器才会尝试自己去加载。想获取和操作类中的内容,首先要获取类的字节码对象(Class类对象),每一个正在运行的类,都有对应的字节码对象,获取了类的字节码对象,就可以使用这个对象的所有方法,这些方法都定义在Class类型中。ClassLoader叫做类加载器,虚拟机设计团队把类加载阶段,加载字节文件,这个动作放到java虚拟机外部去实现,以便让应用自己决定去如何获取所需的类,实现这个动作的模块称之为“类加载器”。

2023-06-28 14:01:59 121

原创 JAVA线程

虽然我们可以理解同步代码块和同步方法的锁对象问题,但是我们并没有直接看到在哪里加上了锁,在哪里释放了锁,为了更清晰的表达如何加锁和释放锁,JDK5以后提供了一个新的锁对象Lock,Lock是接口不能直接实例化,这里采用它的实现类ReentrantLock来实例化。

2023-06-26 16:59:16 9651 2

原创 Nginx

一、Nginx的介绍和安装一、Nginx的介绍和安装(一)Nginx的概述Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。

2023-06-25 11:39:51 167

转载 CAP原则及对比Zookeeper

也就是说,服务注册功能对可用性的要求高于一致性。在云部署的环境下,因为网络问题使得Zookeeper集群失去master节点是较大概率会发生的事件,虽然服务最终能够恢复,但是漫长的选举时间导致的注册长期不可用是不能容忍的。而Eureka的客户端在向某个Eureka注册时,如果发现连接失败,则会自动切换至其他节点,只要有一台Eureka还在,就能保住注册服务的可用性,只不过查到的信息可能不是最新的。著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)、P(容错性)。

2023-06-19 15:29:14 168

原创 SpringBoot

Spring-Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。个人理解来说Spring-Boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,Spring-Boot整合了其他相关联框架。1、独立运行Spring项目Spring Boot 可以以jar包形式独立运行,运行一个Spring Boot项目只需要通过java -jarxx.jar来运行。2、内嵌servlet容器。

2023-06-12 08:57:03 2799

原创 拦截器(interceptor)

*** 控制层执行器方法前的拦截器* @returnSystem . out . println("我是控制层执行器方法前的拦截器");//校验用户是否登录 HttpSession session = request . getSession();if(pname!= null) {//当前用户已经登录,放行 return true;} else {

2023-06-08 14:00:23 7066

原创 Zookeeper

Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。它是一种集中式服务,用于维护配置信息,命名,提供分布式同步和提供组服务。所有这些类型的服务都以分布式应用程序的某种形式使用。每次实施它们都需要做很多工作来修复不可避免的错误和竞争条件。由于难以实现这些类型的服务,应用程序最初通常会吝啬它们,这使得它们在变化的情况下变得脆弱并且难以管理。即使正确完成,这些服务的不同实现也会在部署应用程序时导致管理复杂性。

2023-06-06 15:21:46 297

原创 Dubbo

Apache Dubbo (incubating) 是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:**面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现**。Dubbox 是一个分布式服务框架,其前身是阿里巴巴开源项目Dubbo ,被国内电商及互联网项目中使用,后期阿里巴巴停止了该项目的维护,当当网便在Dubbo基础上进行优化,并继续维护,为了与原有的Dubbo区分,故将其命名为Dubbox。Dubbox 致力于提供高性能和透明化的RPC远程服务调用方案,以及

2023-06-06 10:26:33 197

原创 SpringBoot整合Mybatis

访问地址:http://localhost:8080/account/findById?

2023-05-29 11:01:59 78

原创 SpringBoot集成Redis

Redis基础RedisTemplate操作时,默认会采用jdkSerializable序列化机制,使得插入的值在redis客户端看来会有乱码,若想解决这一问题,需要手动指定序列化方式。= null?} . . . }

2023-05-27 15:31:21 1366

原创 SpringBoot——任务

使用@Scheduled 注解很方便,但缺点是当我们调整了执行周期的时候,需要重启应用才能生效。为了达到实时生效的效果,可以使用接口来完成定时任务,统一将定时器信息存放在数据库中。访问http://localhost:8080/hello进行测试,三秒后出现success。基于注解@Scheduled默认为单线程,开启多给任务时,任务的执行时机会受上一个任务执行时间的影响;@Scheduled执行周期任务会受到上次一个任务的执行时间影响。添加该注解后,Springboot会开一个线程池,进行调用。

2023-05-26 13:34:55 350

原创 SpringBoot集成Swagger2

​ 随着代码的不断更新,开发人员在开发新的接口或者更新旧的接口后,由于开发任务的繁重,往往文档很难持续跟着更新,Swagger 就是用来解决该问题的一款重要的工具,对使用接口的人来说,开发人员不需要给他们提供文档,只要告诉他们一个 Swagger 地址,即可展示在线的 API 接口文档。除此之外,调用接口的人员还可以在线测试接口数据,同样得的,开发人员在开发接口时,同样也可以利用 Swagger 在线接口文档测试接口数据,这给开发人员提供了便利。号称世界上最流行的API框架。

2023-05-09 16:28:33 824

原创 SpringBoot的自动装配

SpringBoot在启动的时候从类路径下的META-INF/spring.factories中获取EnableAutoConfiguration指定的值将这些值作为自动配置类导入容器 , 自动配置类就生效 , 帮我们进行自动配置工作;整个J2EE的整体解决方案和自动配置都在springboot-autoconfigure的jar包中;它会给容器中导入非常多的自动配置类 (xxxAutoConfiguration), 就是给容器中导入这个场景需要的所有组件 , 并配置好这些组件;

2023-05-04 09:05:10 780

原创 Thymeleaf模板引擎

​ Thymeleaf是一款用于渲染XML/XHTML/HTML5内容的模板引擎。类似JSP,Velocity,FreeMaker等。它也可以轻易的与Spring MVC等Web框架进行集成作为Web应用的模板引擎。Thymeleaf最大的特点是能够正确显示模板页面,而不需要启动整个Web应用。Thymeleaf 模板引擎的特点:动静结合:Thymeleaf 既可以直接使用浏览器打开,查看页面的静态效果,也可以通过 Web 应用程序进行访问,查看动态页面效果。开箱即用。

2023-05-03 15:15:48 1881

原创 Redis面试题

什么是Redis?Redis的优缺点Redis的数据类型Redis有几种数据“过期”策略;Redis有几种数据”淘汰“策略;redis的应用场景;Redis的持久化;Redis事务特性;Redis的集群、主从、哨兵;Redis分布式问题;Redis缓存问题(缓存雪崩,缓存击穿,缓存穿透);Redis并发竞争key问题如何解决;Redis为什么效率高;为什么要用Redis(从高性能和高并发两点来看);如果有大量的key需要设置同一时间过期,一般需要注意什么?

2023-02-28 09:08:44 151

原创 Redis基础

存盘可以有意无意的对数据进行写操作。分布式缓存:在应用服务器的数据量非常庞大,及时只缓存一小部分,需要的内存空间也不是单机能承受的,所以除了本地缓存,还需要分布式缓存,将数据缓存在一个专门的分布式缓存集群中,应用程序通过网络通信访问数据。缓存是改善软件性能的第一手段,缓存意在减少系统对数据库的过多访问,通过减少对数据库访问次数,改用访问内存的方式,提升系统的性能。【增量】AOF持久化,以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,以文本的方式记录,可以打开文件看到详细的操作记录。

2023-02-25 11:56:46 431

原创 Mybatis面试题

Mybatis比如调用a.getB().getName()方法,进入拦截器的invoke(...)方法,发现 a.getB() 需要延迟加载时,那么就会单独发送事先保存好的查询关联 B 对象的 SQL ,把 B 查询上来,然 后调用 a.setB(b) 方法,于是 a 对象 b 属性就有值了,接着完成 a.getB().getName() 方法的调用。默认情况下,延迟加载的功能是关闭的。在插件的拦截方法内,拦截待执行的SQL,然后重写SQL,根据dialect(方言),添加对应的物理分页语句和物理分页参数。

2023-01-31 16:06:38 310

原创 Git详解

一、Git概述一、Git概述(1)什么是GitGit是一个开源的分布式版本控制系统(Distributed Version Control System,简称DVCS)。可以有效、高速地处理从很小到非常大的项目版本管理。(2)什么是版本控制系统版本控制系统能追踪项目,从开始到结束的整个过程。对编程人员而言,版本控制技术是团队协作开发的桥梁,助力于多人协作同步进行大型项目开发。软件版本控制系统的核心任务:查阅项目历史操作记录,实现协同开发。(3)常见的版本控制系统1、集中式版本控制工具svn。

2023-01-01 08:00:00 2788

原创 HashMap底层原理

HashMap的底层原理。当我们的HashMap中存在大量数据时,加入我们mougebucket下对应的链表有n个元素,那么遍历时间复杂度就为0(n),为了针对这个问题,JDK1.8在HashMap中新增加了红黑树的数据结构,进一步使得遍历复杂度降低至0(logn);

2022-12-27 15:27:33 330

原创 Mybatis从入门到放弃(三)

缓存是存在于内存中的临时数据,使用缓存的目的是减少和数据库的交互次数,提高执行效率。像大多数的持久化框架一样,Mybatis也提供了缓存策略,通过缓存策略来减少数据库的查询次数,从而提高性能。Mybatis中缓存分为一级缓存、二级缓存。mybatis一级缓存是一种session级别的,针对同一会话SqlSession中,执行多次条件完全相同的同一个sql,那么会共享这一缓存。

2022-11-18 14:46:11 338

原创 Mybatis从入门到放弃(二)

动态sql语句与多表联查。一对一查询、一对多查询、多对多查询。延时策略 1、什么是延迟加载? 延时加载(lazy load)是关联关系对象默认的加载方式,延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延时加载就是当在真正需要数据的时候,才真正执行数据加载操作。 延时加载可以简单地理解为只有在使用的时候,才会发出sql语句进行查询。 2、为什么要使用延迟加载? 减少访问数据库的频率。我们要访问的数据量过大时,明显用缓存不太适合,

2022-11-16 16:20:00 326

原创 Mybatis从入门到放弃(一)

Mybatis是一个优秀的基于java的持久化框架,它内部封装了jdbc,是开发者只需要关注sql语句本身,而不需要话费精力去处理加载驱动、创建连接、创建statement等繁琐过程。mybatis通过XML或注解的方式将要执行的各种statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终地sql语句,最后由mybatis框架执行sql并将结果映射为java对象返回。

2022-11-16 15:48:37 531

C# Winform串口助手

C# Winform串口助手

2023-11-02

空空如也

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

TA关注的人

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