自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

pp的博客

一步登天做不到,但一步一个脚印能做到。一鸣惊人不好做,但一股劲做好一件事,可以做。一下成为天才不可能,但每天进步一点点有可能”

  • 博客(78)
  • 资源 (2)
  • 收藏
  • 关注

原创 【无标题】

窗口函数是一种在 SQL 查询中使用的函数,它可以对查询结果进行分组、排序、聚合和计算等操作。窗口函数能够对特定的行进行处理,而不会改变查询结果的总体行数。如果您已经熟悉 SQL 的基础知识,那么窗口函数就是一种在 SELECT 语句中使用的函数。它可以在聚合函数的基础上提供更多的功能和控制。在这个例子中,我们使用了 ROW_NUMBER 函数来计算每个学生的排名。我们还使用了 ORDER BY 子句来指定按照分数的降序排列。

2023-03-20 22:32:37 367

原创 Spring Bean实例创建装载过程分析-spring源码学习(2)

定义阶段主要涉及Bean定义的加载和解析,这一过程的核心是将Bean定义的描述信息映射至BeanDefinition对象中,以便后续的Bean实例化操作使用。通过上述的分析,我们可以看到Spring Bean实例创建装载过程是一个复杂的过程,其中包含多个阶段和细节,这也表明Spring框架的强大之处正是在于这种复杂的Bean实例化和装载机制。如果我们能够了解并熟练地运用Spring Bean实例创建装载的整个过程,相信对于我们开发高质量的应用程序将会大有益处。

2023-03-08 09:09:53 454

原创 生产环境在线快速更新jar包内容

但是,有些框架是作为Jar包提供的,我们可能会遇到修改配置文件的困难。其中,xxx.jar是我们需要查找的Jar包名称,log4j.properties是我们需要查找的配置文件名称。该命令会返回包含该配置文件的Jar包中的详细信息,我们可以从中找到该文件的位置。其中,xxx.jar是我们需要解压的Jar包名称,log4j.properties是我们需要解压的配置文件名称。其中,xxx.jar是我们需要更新的Jar包名称,log4j.properties是我们需要更新的配置文件名称。4.更新Jar包文件。

2023-03-08 08:59:22 917

原创 数据库范式大白话解释

数据库范式一直是一种很难理解的,各种翻译版本讲解的方式都比较难理解,在这重新梳理下自己的理解范式。

2022-12-05 15:41:07 413

原创 类与类之间的关系(二)

程序设计问题1.可读性 名字 缩进 注释 2.健壮性 判断严谨 3.优化 结构 性能 内存 4.复用性 方法 类 5.可扩展性 抽象 接口 面向配置文件设计类的关系遵循的原则:高内聚低耦合耦合度:紧密程度 继承/实现 > 包含 > 依赖类和类的关系A is-a B 泛化(继承 实现)A has-a B 包含(组合 > 聚合 > 关联)A use-a B 依赖(依赖) need-aA is-a B 泛化(继承 实现)A has-...

2021-10-26 23:02:44 180

原创 Mysql分区表总结

分区表介绍分区是指根据一定的规则将一个大表分解成多个更小的部分,这里的规则一般就是利用分区规则将表进行水平切分;逻辑上没有发生变化但实际上表已经被拆分成了多个物理对象,每个分成被划分成了一个独立的对象。相对于没有分区的当个表而言分区的表有很多的优势包括: 并发统计查询、快速归档删除分区数据、分散存储、查询性能更佳。查看当前数据库是否开启分区5.7之前的版本使用:show variables like '%partition%';mysql 5.7使用: SHOW PLUG...

2021-08-06 17:22:10 304

原创 微信小程序常用组件库收藏备用

第一款:官方WeUI组件库,地址https://developers.weixin.qq.com/miniprogram/dev/extended/weui/预览码:第二款:ColorUI:地址https://github.com/weilanwl/ColorUI预览码:第三款:vantUI(又名:ZanUI):地址https://youzan.github.io/vant-weapp/#/intro预览码:第四款:MinUI: 地址h...

2021-07-24 15:17:26 503

原创 类和类之间的关系

一、UMLa)Unified Modeling Language (UML)又称统一建模语言或标准建模语言b)它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持c)它不仅统一了Booch、Rumbaugh和Jacobson的表示方法,而且对其作了进一步的发展,并最终统一为大众所接受的标准建模语言d)UML定义了10种模型图,对应软件设计开发的不同阶段i.用例图ii.静态图:类图,包图,对象图。iii.行为图:状态图和活动图i...

2021-04-16 16:47:54 168 1

原创 RESTful6大原则及实践

六大原则1. C-S架构数据的存储在Server端,Client端只需使用就行。两端彻底分离的好处使client端代码的可移植性变强,Server端的拓展性变强。两端单独开发,互不干扰。2. 无状态http请求本身就是无状态的,基于C-S架构,客户端的每一次请求带有充分的信息能够让服务端识别。请求所需的一些信息都包含在URL的查询参数、header、body,服务端能够根据请求的各种参数,无需保存客户端的状态,将响应正确返回给客户端。无状态的特征大大提高的服务端的健壮性和可拓展性。当然这总无状

2021-04-01 15:48:40 588

原创 Mysql事务隔离级别(脏读、幻读、不可重复读的理解)

1、事务和事务的特性事务指的就是一系列原子性的操作,这些操作要么全做,要么全都不做。事务是由引擎层支持的,而MylSAM不支持事务,InnoDB支持事务。原子性 一致性 隔离性 持久性2、事务的隔离性事务的隔离性是指事务之间互不干扰,相互隔离。Mysql有四种隔离级别,分别是未提交读,提交读,可重复读和串行化。未提交读:一个事务可以看到其他事务未提交的变更。这种隔离性是最低的,一般不会采用这种隔离级别。未提交读可能会导致脏读、不可重复读和幻读。 提交读:一个事务读取到其他事务已经提

2021-03-31 18:38:06 385

原创 消息队列的选型及当下几种流行队列的优缺点分析

消息队列选型必须是开源产品,有bug可以修改源码;近几年比较流行,社区活跃度高,流行的产品与周边生态系统会有一个比较好的集成和兼容,比如,Kafka 和 Flink 就有比较好的兼容性,Flink 内置了 Kafka 的 Data Source,使用 Kafka 就很容易作为 Flink 的数据源开发流计算应用,如果你用一个比较小众的消息队列产品,在进行流计算的时候,你就不得不自己开发一个 Flink 的 Data Source。一个合格消息队列产品特性:• 消息的可靠传递:确保不丢消息;• C

2021-03-15 16:57:02 893

原创 Fildder配置安卓抓包步骤

1、fildder软件下载地址:http://www.pc6.com/softview/SoftView_51888.html2、关闭电脑防火墙3、代理配置 手机证书下载参考博客:https://www.jianshu.com/p/6858a25674b44、指定请求过滤设置

2021-03-12 16:24:22 129

原创 代码简洁之道(lambda+策略工厂模式的初体验)

重构初体验–所谓模式使用反射去掉if/else的原理很简单,使用HashMap建立状态码和需要调用的方法的方法名之间的映射关系,对于每个CountEntry,首先取出状态码,然后根据状态码获得相应的要调用方法的方法名,然后使用java的反射机制就可以实现对应方法的调用了。本例中使用反射的确可以帮助我们完美的去掉if/else的身影,但是,众所周知,反射效率很低,在高并发的条件下,反射绝对不是一个良好的选择。除去反射这种方法,能想到的就剩下使用策略模式或者与其类似的状态模式,以及工厂模式了,我们以工厂模式

2021-02-26 10:52:55 289

原创 java8集合 根据实体指定字段去重的几种常见操作方式

1.通过指定字段分组classEntities.stream().collect(Collectors.groupingBy(ClassEntity::getGrade));2.java8去重(根据年级和专业,当年级和专业都相同的情况下看做是重复数据)List<ClassEntity> distinctClass = classEntities.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(()

2021-02-24 10:07:19 2016 1

原创 Java并发编程系列之CAS(1)

一. CAS定义1. CAS:比较和交换(Conmpare And Swap)是用于实现多线程同步的原子指令。2. 它将内存位置的内容与给定值进行比较,只有在相同的情况下,将该内存位置的内容修改为新的给定值。 3. 这是作为单个原子操作完成的。 4. 原子性保证新值基于最新信息计算; 如果该值在同一时间被另一个线程更新,则写入将失败。 5. 操作结果必须说明是否进行替换; 这可以通过一个简单的布尔响应(这个变体通常称为比较和设置),或通过返回从内存位置读取的值来完成二. 简单案例演示

2021-01-17 22:34:07 81

原创 equals方法与hashCode方法的关系

java.lang.Object类中有两个非常重要的方法:public boolean equals(Object obj)public int hashCode()目录equals()方法详解hashcode() 方法详解Hashset、Hashmap、Hashtable与hashcode()和equals()的密切关系Object类是类继承结构的基础,所以是每一个类的父类。所有的对象,包括数组,都实现了在Object类中定义的方法。equals()方法详解equ.

2021-01-13 11:46:49 196

原创 java内置锁synchronized的可重入性

同一进程的不同线程会共享同一主内存,线程的私有栈中只包括PC,栈,操作数栈,局部变量数组和动态链接。对共享内存进行读写时,若要保证线程安全,则必须通过加锁的方式。1. 线程安全与可重入性1.1. 定义关于可重入这一概念,参考维基百科。若一个程序或子程序可以“在任意时刻被中断然后操作系统调度执行另外一段代码,这段代码又调用了该子程序不会出错”,则称其为可重入(reentrant或re-entrant)的。即当该子程序正在运行时,执行线程可以再次进入并执行它,仍然获得符合设计时预期的结果。与多

2021-01-04 22:32:08 281

原创 Feign客户端与服务端之间调用踩坑记录

Feign调用接口时,都是需要进行参数传递的,一般可以分为两类字符串参数传递,比如xml、json、string等 对象参数传递字符串参数传递(@RequestParam)@RequestParam注解用来接收字符串类型参数,有以下注意点客户端@RequestParam注解的value属性必须指定值,不能为空,且要和服务端接口参数名保持一致 如果需要传递多个字符串参数,则使用多个@RequestParam注解与服务端接口参数保持一一对应即可服务端@ResponseBody@Pos

2020-12-03 15:22:53 1276

转载 分组排序纠结者的福音来了

在MYSQL的最新版本MYSQL8已经支持了排名函数RANK,DENSE_RANK和ROW_NUMBER。但是在就得版本中还不支持这些函数,只能自己实现。实现方法主要用到了条件判断语句(CASE WHEN或IF)和添加临时变量。1. 排名分类1.1 区别RANK,DENSE_RANK和ROW_NUMBERRANK并列跳跃排名,并列即相同的值,相同的值保留重复名次,遇到下一个不同值时,跳跃到总共的排名。 DENSE_RANK并列连续排序,并列即相同的值,相同的值保留重复名次,遇到下一个不同值.

2020-12-01 22:31:59 601

原创 spring核心包类图关系-spring源码学习(1)

spring-core.jar1)org.springframework.io 包下类结构图spring-beans.jar2)org.springframework.beans.factory包下类结构图spring-context.jar3)org.springframework.context包下类结构图

2020-11-13 16:41:37 304

原创 Geohash算法的概括

Geohash算法就是将经纬度编码,将二维变一维,给地址位置分区的一种算法。基本原理GeoHash是一种地址编码方法。他能够把二维的空间经纬度数据编码成一个字符串我们知道,经度范围是东经180到西经180,纬度范围是南纬90到北纬90,我们设定西经为负,南纬为负,所以地球上的经度范围就是[-180, 180],纬度范围就是[-90,90]。如果以本初子午线、赤道为界,地球可以分成4个部分。如果纬度范围[-90°, 0°)用二进制0代表,(0°, 90°]用二进制1代表,经度范围[-180

2020-11-12 14:02:19 229

原创 【软考】2019 下半年软件设计师 下午真题及答案

2020-10-30 22:51:58 10742

原创 【软考】2018年下半年软件设计师上午试题及答案

CPU在执行指令的过程中,会自动修改()的内容,以使其保存的总是将要执行的下一条指令的地址。 (1)A.指令寄存器B.程序计数器C.地址寄存器D.指令译码器 在微机系统中,BIOS(基本输入输出系统)保存在()中。 (2)A.主板上的ROMB.CPU的寄存器C.主板上的RAMD.虚拟存储器 采用 n 位补码(包含一个符号位)表示数据,可以直接表示数值()。 (3)A....

2020-10-30 16:56:53 3042 3

原创 【软考】2019 上半年软件设计师 下午真题及答案

试题一(共 15 分)阅读下列说明和图,回答问题 1 至问题 4,将解答填入答题纸的对应栏内。【说明】某学校欲开发一学生跟踪系统,以便更自动化、更全面地对学生在校情况(到课情况和健 康状态等)进行管理和追踪,使家长能及时了解子女的到课情况和健康状态,并在有 健康问题时及时与医护机构对接。该系统的主要功能是:(1)采集学生状态。通过学生卡传感器,采集学生心率、体温(摄氏度)等健康指 标及其所在位置等信息并记录。每张学生卡有唯一的标识(ID)与一个学生对应。(2)健康状态告警。在学生健...

2020-10-30 16:35:54 16685 9

原创 【软考】 2019年上半年软件设计师考试上午真题

[单选题]计算机执行指令的过程中,需要由( )产生每条指令的操作信号并将信号送往相应的部件进行处理,以完成指定的操作。A.CPU的控制器B.CPU的运算器C.DMA控制器D.Cache控制器参考答案: A试题解析: CPU的操作控制功能:一条指令功能的实现需要若干操作信号配合来完成,CPU产生每条指令的操作信号并将其送往对应的部件,控制相应的部件按指令的功能进行操作。CPU的运算器只能完成运算,而控制器用于控制整个CPU的工作[单选题]DMA控制方式是在( )之间直接建.

2020-10-30 16:34:02 3453 7

原创 MQ面试精选题目

消息队列连环炮 项目里怎么样使用 MQ 的? 为什么要使用消息队列? 消息队列有什么优点和缺点? kafka,activemq,rabbitmq,rocketmq 都有什么区别? 如何保证消息队列高可用? 如何保证消息不被重复消费? 如何保证消息的可靠性传输? 如何保证消息的顺序性? 写一个消息队列架构设计? 消息队列技术选型解决的问题: 解耦 异步 削峰 不用 MQ 系统耦合场景

2020-10-25 22:45:19 2287 1

原创 批量插入时防止主键冲突(mysql解决方法)

当数据库存在相同主键时进行更新操作,主键不存在则进行插入操作,mysql提供了两种解决方式replace into 与ON DUPLICATE KEY UPDATE。 replace into replace into的所有用法replace into tbl_name(col_name, ...) values(...) replace into tbl_name(col_name, ...) select ... replace into tbl_name set col_nam...

2020-08-28 22:36:10 3805

转载 spring 编译 出的错误 Error:(347, 51) java: 找不到符号 符号: 变量 CoroutinesUtils 位置

https://blog.csdn.net/gooaaee/article/details/104437902

2020-07-27 20:42:05 2374

原创 java -cp 与 java -Djava.ext.dirs的区别与坑

大家在linux环境下使用命令行执行java程序时,经常要使用到大量外部的jar包或class文件,一般我们有哪些方式可以用呢?-classpath,命令格式:# java -classpath <目录或zip/jar文件的类搜索路径>,使用";"分隔-cp ,这个命令一看就是-classpath的缩写,当然用途是一样的。# java -cp ".\a.jar;.\b.jar" -jar myjar.jar MainClass #java -cp .;c:\dir1\lib...

2020-06-18 14:22:40 2090

原创 HashMap源码分析

HashMap最早出现在JDK1.2中,底层基于散列算法实现。HashMap 允许 null 键和 null 值,是非线程安全类,在多线程环境下可能会存在问题。1.8版本的HashMap数据结构:为什么有的是链表有的是红黑树?默认链表长度大于8时转为树结构Node是HhaspMap中的一个静态内部类 ://Node是单向链表,实现了Map.Entry接口staticclassNode<K,V>implementsMap.Entry<K,V...

2020-06-13 15:08:32 91

原创 初识Docker

Docker基本概念Docker 包括三个基本概念镜像( Image ) 容器( Container ) 仓库( Repository )理解了这三个概念,就理解了 Docker 的整个生命周期Docker 镜像我们都知道,操作系统分为内核和用户空间。对于 Linux而言,内核启动后,会挂载 root 文件系...

2020-04-28 16:07:54 133

原创 23种设计模式(23)-抽象工厂模式

一、前言 抽象工厂模式,创建型设计模式之一。抽象工厂起源于以前对不同操作系统的图形化解决方案,如不同操作系统中的按钮和文本框控件其实现不同,展示效果也不一样,对于每一个操作系统,其本身就构成一个产品类,而按钮和文本框控件也构成一个产品类,两种产品类两种变化,各自有自己的特性。二、定义 抽象工厂模式提供一个创建一系列相关或相互依赖对象的接口,无须指定它们具体的类。三...

2020-03-10 11:13:15 198

原创 23种设计模式(22)-状态模式

一、概述 当系统中某个对象存在多个状态,这些状态之间可以进行转换,而且对象在不同状态下行为不相同时可以使用状态模式。状态模式将一个对象的状态从该对象中分离出来,封装到专门的状态类中,使得对象状态可以灵活变化。状态模式是一种对象行为型模式。二、适用场景 用于解决系统中复杂对象的多种状态转换以及不同状态下行为的封装问题。简单说就是处理对象的多种状态及其相互转换。...

2020-03-10 10:19:35 147

原创 23种设计模式(21)-享元模式

在阎宏博士的《JAVA与模式》一书中开头是这样描述享元(Flyweight)模式的:❈Flyweight在拳击比赛中指最轻量级,即“蝇量级”或“雨量级”,这里选择使用“享元模式”的意译,是因为这样更能反映模式的用意。享元模式是对象的结构模式。享元模式以共享的方式高效地支持大量的细粒度对象。❈Java中的String类型  在JAVA语言中,String类型就是使用了享元模式。S...

2020-03-10 10:17:47 105

原创 23种设计模式(20)-中介者模式

定义:用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。类型:行为类模式类图:中介者模式的结构中介者模式又称为调停者模式,从类图中看,共分为3部分:抽象中介者:定义好同事类对象到中介者对象的接口,用于各个同事类之间的通信。一般包括一个或几个抽象的事件方法,并由子类去实现。中...

2020-03-10 10:15:51 93

原创 23种设计模式(19)-责任链模式

定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。类型:行为类模式类图:首先来看一段代码:publicvoidtest(inti, Request request){ if(i==1){ Handler1.response(reque...

2020-03-10 10:14:54 77

原创 23种设计模式(18)-备忘录模式

定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将该对象恢复到原先保存的状态。类型:行为类类图:我们在编程的时候,经常需要保存对象的中间状态,当需要的时候,可以恢复到这个状态。比如,我们使用Eclipse进行编程时,假如编写失误(例如不小心误删除了几行代码),我们希望返回删除前的状态,便可以使用Ctrl+Z来进行返回。这时我们...

2020-03-10 09:41:59 85

原创 23种设计模式(17)-命令模式

定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。类型:行为类模式类图:命令模式的结构 顾名思义,命令模式就是对命令的封装,首先来看一下命令模式类图中的基本结构:Command类:是一个抽象类,类中对需要执行的命令进行声明,一般来说要对外公布一个execute方法用来执行...

2020-03-09 17:45:47 85

原创 23种设计模式(16)-访问者模式

定义:封装某些作用于某种数据结构中各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。类型:行为类模式类图:访问者模式可能是行为类模式中最复杂的一种模式了,但是这不能成为我们不去掌握它的理由。我们首先来看一个简单的例子,代码如下classA{ publicvoidmethod1(){ ...

2020-03-09 17:44:51 102

原创 23种设计模式(15)-解释器模式

定义:给定一种语言,定义他的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中句子。类型:行为类模式类图: 解释器模式是一个比较少用的模式,本人之前也没有用过这个模式。下面我们就来一起看一下解释器模式。解释器模式的结构抽象解释器:声明一个所有具体表达式都要实现的抽象接口(或者抽象类),接口中主要是一个inter...

2020-03-09 17:43:46 91

cross-request-3.0-master.zip

谷歌浏览器跨域请求插件

2021-03-15

testTreeList.java

java树形分类查询示例代码

2021-03-15

空空如也

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

TA关注的人

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