自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

存在,即合理

记录点点滴滴,最终汇成山河大海

  • 博客(209)
  • 资源 (7)
  • 收藏
  • 关注

原创 spring-data-redis-客户端,配置,序列化,Pipeline管道

Rdis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。当请求进来以后,都是经过服务器进行返回,那如果服务器没有响应时,那么其他请求进入等待。这时服务器也无法处理新请求,那有没有办法解决呢?使用管道就能解决,即:将多个命令发送到服务器,而不用等待回复,最后在一个步骤中读取该答复。这种技术应用非常广泛比如MySQL的批量插入就如此。Spring Data Redis 版本 Jedis 版本。2. 默认使用的JDK的序列化。1. 对象必须实现序列化接口。

2024-07-07 16:53:57 618

原创 NOSQL-redis-运维-单机安装

安装c 编译环境 yum install -y gcc-c++ autoconf automake。

2024-07-07 12:42:55 122

原创 java框架-String -lang3

isNoneBlank和isNoneEmpty,只要存在一个字符串为空,结果即为false。isAnyBlank和isAnyEmpty来说,只要有一个字符串为空,结果即为true。// china (如果要移除的字符不存在,则返回原字符串)// null (注意此处及下一行为null)空串("")和空白符,不包含null值。//空串("")和null值。// na (忽略大小写)// na (忽略大小写)空或空白符均为false。

2024-07-07 00:26:21 614

原创 Java基础-string

等价 char data[] = {'a', 'b', 'c'};代码 "Ja"+"va" 被直接编译成了 "Java" ,因此 s1==s2 的结果才是 true,这就是编译器对字符串优化的结果。byte数组,这样做的好处是存储变的更紧凑,占用的内存更少,操作性能更高了。java 6 复用 堆中数组 bug。ASCII 小于32的任何字符。方便Stream 流。可以删除更多空白字符。\s+ 所有空白字符。

2024-07-07 00:19:29 951

原创 JAVA集合工具类

将原列表中的所有元素复制到目标列表的相应位置上。返回中第一个或最后一个等于s的子列表的索引。如果中不存在等于s的子列表,则返回。用稳定的排序算法对列表中的元素进行排序。O(na(n)),n是列表的长度,a(n)是访问元素的平均时间。将所有的值添加到给定的集合中。生成一个比较器,将逆置Comparable接口提供的顺序。随机地打乱列表中元素的顺序。这个方法的时间复杂度为O(n),n为列表的长度。生成一个比较器,将逆置这个比较器提供的顺序。逆置列表中元素的顺序。返回c中与对象o相等的元素的个数。

2024-07-06 20:13:10 816

原创 java基础-双列集合 map

在这个类中,键的散列值不是用 hashCode 函数计算的,而是用 System.identityHashCode 方法计算的。返回与键(key)关联的值,或者如果这个键未在表中出现,则返回默认值表中与这个键 关联的值,或者如果键在默认值表中也未出现,则返回 null。获取给定键名对应的系统属性。返回与键关联的字符串,或者如果键在表中未出现,则返回默认字 符串。在实现对象遍历算法(如对象串行化)时,这个类非常有用,可以用来跟踪哪些对象已经遍历过。如果这个键已经存在,新的对象将取代与这个键关联的旧对象。

2024-07-06 19:59:36 784

原创 java单列集合-LinkedList,Set,Queue

无返回值addFirstEe将指定元素插入此列表的开头。addLastEe将指定元素添加到此列表的结尾。offer添加返回值为booleanofferEe将指定元素添加到此列表的末尾(最后一个元素)。offerFirstEe在此列表的开头插入指定的元素。offerLastEe在此列表末尾插入指定的元素。无返回值pushEe将元素推入此列表所表示的堆栈。occurrence出现删除之后获取的就是该元素()

2024-07-06 18:13:03 945

原创 java单列集合总-Collection-list

Vector集合数据存储的结构是数组结构,为JDK中最早提供的集合。Vector中提供了一个独特的取出方式,就是枚举Enumeration,它其实就是早期的迭代器。此接口Enumeration的功能与 Iterator 接口的功能是类似的。static <E> List<E> of(E... elements) 不支持 NULL 元素。2、扩充的算法:当增量为0时,扩充为原来大小的2倍,当增量大于0时,扩充为原来大小+增量。1、实现原理,采用动态对象数组实现,默认构造方法创建了一个大小为10的对象数组。

2024-07-06 16:43:41 832

原创 java-集合-迭代器

集合元素的通用获取方式:在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续在判断,如果还有就再取出出来。一直把集合中的所有元素全部取出。这种取出方式专业术语称为迭代。集合的底层的数据结构不同,例如ArrayList是数组,LinkedList底层是链表,但是无论使用那种集合,我们都会有判断是否有元素 以及取出里面的元素的动作。hasNext(), next() remove() 指针单向的移动, 刚开始时指针位于-1。集合.iterator() 获取迭代器的接口实现类的对象,进行迭代。

2024-07-05 23:48:22 301

原创 java集合-hash

但是,如果想要查看某个指定的元素,却又不记得它的位置,就需要访问所有元素,直到找到为止。如果集合中包含的元素很多,这将会需要很长时间。如果不在意元素的顺序,有几种能够快速查找元素的数据结构。单向散列函数:如果两个散列值是不相同的(根据同一函数)那么这两个散列值的原始输入也是不相同的。散列碰撞: 散列函数的输入和输出不是唯一对应关系的,如果两个散列值相同,两个输入值很可能是相同 的,但也可能不同。将任意大小的输入数据转换成特定大小的输出数据的函数,转换后的数据称为哈希值或哈希编码,也叫散列值。

2024-07-05 23:45:04 250

原创 多线程-并发容器选择

基于复制副本用于有锁写操作,操作完成之后,Array容器重新指向新的副本容器,具有弱一致性。CAS+Synchronized实现原子性,部分操作属于无锁操作,具有弱一致性。存取数据量大,增删改查操作频繁,且对数据没有强一致要求的高并发场景。存取数据量小,查询操作频繁,且对数据没有强一致要求的高并发场景。基于跳跃表实现,具有弱一致性。对数据强一致性有要求的场景。基于数据+链表+红黑树实现。对数据强一致性有要求的场景。读远大于写操作的场景。

2024-07-05 23:36:33 101

原创 分布式限流01介绍 guava nginx

我们把水比作是请求,漏桶比作是系统处理能力极限,水先进入到漏桶里,漏桶里的水按一定速率流出,当流出的速率小于流入的速率时,由于漏桶容量有限,后续进入的水直接溢出(拒绝请求),以此实现限流。

2024-07-05 23:28:59 135

原创 算法-线性查找

在一沓试卷中,找到属于自己的那张试卷。

2024-06-30 19:03:08 214

原创 分布式解决方案-目录

定时任务CRON表达式-CSDN博客 定时任务的分类-CSDN博客 非分布式定时任务使用-CSDN博客 定时任务-Quartz 介绍-引入-CSDN博客 定时任务-Quartz-job-CSDN博客 定时任务-Quartz-Trigger-CSDN博客 定时任务-Quartz-Listener-CSDN博客 定时任务-Quartz-集群-CSDN博客

2024-06-30 16:38:41 466

原创 Java基础-常见问题-判等

你可能会说,判等不就是一行代码的事情吗,有什么好说的。但,这一行代码如果处理不 当,不仅会出现 Bug,还可能会引起内存泄露等问题。涉及判等的 Bug,即使是使用 == 这种错误的判等方式,也不是所有时候都会出问题。所以类似的判等问题不太容易发现,可能会被隐藏很久。注意 equals 和 == 的区别在业务代码中,我们通常使用 equals 或 == 进行判等操作。基本类型,比如 int、long,进行判等,只能使用 ==,比较的是直接值。因为基本类型的值就是其数值。引用类型。

2024-06-30 16:34:03 1026

原创 定时任务-Quartz-集群

支持失效转移不支持分布式。

2024-06-30 11:31:47 228

原创 定时任务-Quartz-Listener

JobListenersc.getListenerManager().addJobListener(new MyJobListener());public class MyJobListener extends JobListenerSupport { @Override public String getName() { return "myJobListener"; } @Override public void jobToBeExec

2024-06-30 11:29:50 98

原创 定时任务-Quartz-Trigger

比如,SimpleTrigger每15秒执行一次,而中间有5分钟时间它都MisFire了,一共错失了20个,5分钟后,假设资源充足了,并且任务允许并发,它会被一次性触发。类似MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT,区别在于会忽略已经MisFire的任务。它会在资源合适的时候,重新触发所有的MisFire任务,并且不会影响现有的调度时间。将startTime设置当前时间,立即重新调度任务,包括的MisFire的。

2024-06-30 11:17:17 707

原创 定时任务-Quartz-job

每次Scheduler调度执行一个Job的时候,首先会拿到对应的Job,然后创建该Job实例,再去执行Job中的execute()的内容,任务执行结束后,关联的Job对象实例会被释放,且会被JVM GC清除。而JobDetail & Job 方式,Sheduler每次执行,都会根据JobDetail创建一个新的Job实例,这样就可以 规避并发访问 的问题。这是因为任务是有可能并发执行,如果Scheduler直接使用Job,就会存在对同一个Job实例并发访问的问题。任务类,My Job的路径。

2024-06-29 23:08:08 267

原创 定时任务-Quartz 介绍-引入

传统的企业级定时任务覆盖范围广∶小到单体应用,大到电子商务系统Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序非常适合于数据量不大的,正在快速发展的中小企业支持集群不支持分布式。

2024-06-29 22:52:49 508

原创 非分布式定时任务使用

ScheduledExecutorService 是 Java 并发包 (java.util.concurrent) 中的一个接口,它扩展了 ExecutorService 接口,提供了计划执行任务的功能,即可以在未来的某个时间点或每隔一段时间执行任务。固定速率 (scheduleAtFixedRate): 任务按照固定的间隔时间执行,不考虑任务实际执行所需的时间。固定延迟 (scheduleWithFixedDelay): 任务在上一次执行结束后再经过指定的延迟时间后执行。

2024-06-29 21:28:43 305

原创 定时任务的分类

把需要处理的计划任务放入到统一的平台,实现集群管理调度与分布式部署的定时任务 叫做分布式定时任务支持集群部署、高可用、并行调度、分片处理等。

2024-06-29 19:02:52 901

原创 CRON表达式

若在日上设置15W,表示离每15号最近的那个工作日触发。假如 15 号正好是周六,则找最近的周五(14号)触发, 如果15号是周未,则找最近的下周一(16 号)触发.如果 15 号正好在工作日(周一至周五),则就在该天触发。在日中设置,表示当月的最后一天在周上表示周六,相当于7或SAT。如果在L前加上数字,则表示该数据的最后一个。6L 2002-2006 表示2002-2006年的每个月的最后一个星期五上午10:15执行作。1. 周的数字为 0 或 7 时,都代表星期天的意思,Java中不能用0表示周数。

2024-06-29 18:45:33 313

原创 类的加载器分类

是Java提供的一套用来被第三方实现或者扩展的API可以用来启用框架扩展和替换组件这些类加载器的工作原理是一样的,区别是它们的加载路径不同,也就是说 findClass 这个方法查找的路径不同。双亲委托机制是为了保证一个 Java 类在 JVM 中是唯一的,假如你不小心写了一个与 JRE 核心类同名的类,比如 Object类,双亲委托机制能保证加载的是 JRE 里的那个 Object类,而不是你写的 Object 类。

2024-06-22 19:47:36 778

原创 JVM-类的加载器

但不是所有类加载都遵守这个模型,有的时候,启动类加载器所加载的类型,是可能要加载用户代码的,比如jdk内部的serviceprovider/serviceloader机制,用户可以在标准api框架上,提供自己的实现,jdk也需要提供些默认的参考实现。不直接在代码中调用ClassLoader的方法加载class对象,而是通过虚拟机自动加载到内存中,如在加载某个类的class文件时,该类的class文件中引用了另外类的对象,此时额外引用的类将通过JVM自动加载到内存中。

2024-06-16 22:33:41 838

原创 jvm 类的加载过程

类在JVM内存中的一个快照,JVM将从字节码文件中解析出的常量池、类字段、类方法等信息存储到类中,这样JVM在运行期便能通过类模板而获取类中的任意信息,能够对类的成员变量进行遍历,也能进行方法的调用。反射的机制即基于这一基础。如果JVM没有将类的声明信息存储起来,则JVM在运行期也无法反射类模型的位置:存储在方法区(1.8之前:永久代:1.8及之后:元空间)为类的静态变量赋予正确的初始值类的初始化是类装载的最后一个阶段。如果前面的步骤都没有问题,那么表示类可以顺利装载到系统中。

2024-06-16 22:31:16 763

原创 多线程-ThreadLocal

ThreadLocal提供线程局部变量。这些变量与正常的变量不同,因为每一个线程在访问ThreadLocal实例的时候(通过其get或set方法)都有自己的、独立初始化的变量副本。ThreadLocal实例通常是类中的私有静态字段,使用它的目的是希望将状态(例如,用户ID或事务ID)与线程关联起来。

2024-06-15 20:17:46 960

原创 多线程-异常

线程不允许抛出未捕获的checked exception也就是说各个线程需要自己把自己的checked exception处理掉JVM的这种设计源自于这样一种理念:“线程是独立执行的代码片断,线程的问题应该由线程自己来解决,而不要委托到外部。”基于这样的设计理念,在Java中,线程方法的异常(无论是checked还是unchecked exception),都应该在线程代码边界之内(run方法内)进行try catch并处理掉。换句话说, 我们不能捕获从线程中逃逸的异常。

2024-06-15 18:01:19 818

原创 多线程-中断

所以, interrupt() 并不能真正的中断线程,需要被调用的 线程自己进行配合才行。中断只是一种协作机制,Java没有给中断增加任何语法,中断的过程完全需要自己实现。实例方法interrupt()仅仅是设置线程的中断状态为true,不会停止线程。在需要中断的线程中不断监听中断状态,一旦发生中断,就执行相应的中断处理业务逻辑。实例方法,判断当前线程是否被中断(通过检查中断标志位) 默认false。一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止。将当前线程的中断状态设为false。

2024-06-13 20:14:56 787

原创 java-框架-日志常见的问题

一般互联网公司都会使用 ELK 三件套来统一收集日志,有一次我们发现 Kibana 上展示的日志有部分重复,一直怀疑是 Logstash 配置错误,但最后发现还是 Logback 的配置错误引起的。掌握了把日志输出到文件中的方法后,我们接下来面临的问题是,如何避免日志记录成为应用的性能瓶颈。这可以帮助我们解决,磁盘(比如机械磁盘)IO 性能较差、日志量又很大的情况下,如何记录日志的问题。CONSOLE 这个 Appender 同时挂载到了两个Logger 上,一个是我们定义的,一个是由于我们定义的继承自,

2024-06-11 23:02:49 329

原创 java框架-log4j2

那也就是动态化服务应用名,如上面Property配置有个SERVER_NAME常量,我这里取自System变量,以此作为服务名。下面的appender使用${SERVER_NAME} 相当于获取了动态服务名。例如,order(订单系统),goods(商品系统)在同一台服务器上部署,我们希望的日志路径和命名方式是。可以根据实际的项目需求来选择,也可以自定义属于自己的lookup。log4j2提供了多个Lookups来满足类似的功能,

2024-06-11 22:14:07 867

原创 java-框架logback

Logback Manual默认引入了 logback框架配置模板文件位置logback-spring.xmllogback-spring.xml:日志框架就不直接加载日志的配置项,由SpringBoot解析日志配置,可以使用SpringBoot的高级Profile功能如果使用logback.xml作为日志配置文件,还要使用profile功能,会有以下错误no applicable action for [springProfile]Chapter 3: Co

2024-06-11 18:46:27 717

原创 数据结构-skiplist跳跃表

假设索引有h级,最高的索引有2个结点;n(2h)=2,从这个公式我们可以求得h=log2(N)-1;首先每一级索引我们提升了2倍的跨度,那就是减少了2倍的步数,所以是n/2、nl4、n/8以此类推;链表遍历的时候,时间复杂度最差会出现O(N),我们优化一下,尝试空间换时间,给链表加个索引,称为“索引升级”,两两取首即可。或者所以是每3个结点有一个索引结点,每层索引的结点数:n/3,n/9,n/27…如果索引是每2个结点有一个索引结点,每层索引的结点数:n/2,n4,n/8.…首先原始链表长度为n。

2024-06-10 20:20:30 336

原创 JVM-垃圾回收器-ZGC

阿里(借鉴ZGC优化自己JVM)美团(规则平台等)58(Hbase平台)腾讯(在线交互、竟价广告、量化交易等)华为(毕昇JDK、大数据项目)

2024-06-10 19:22:09 1266

原创 java-stream应用-树形结构-NIO

【代码】java-stream应用-树形结构-NIO。

2024-06-09 20:04:56 130

原创 java-基础-optional

optional对象是一种包装器对象,要么包装了类型T的对象,要么没有包装任何对象。对于第一种情况,我们称这种值是存在的。0ptional类型被当作一种更安全的方式,用来替代类型T的引用,这种引用要么引用某个对象,要么为 null。

2024-06-09 17:43:43 614

原创 java-基础并行流

parallel方法可以将任意的顺序流转换为并行流只要在终结方法执行时流处于并行模式,所有的中间流操作就都将被并行化。当流操作并行运行时,其目标是让其返回结果与顺序执行时返回的结果相同。重要的是,这些操作是无状态的,并且可以以任意顺序执行。

2024-06-09 17:30:38 643

原创 java基础-stream-终止操作

终端操作会从流的流水线生成结果。其结果可以是任何不是流的值,流进行了终止操作后,不能再次使用。

2024-06-09 16:39:26 729

原创 java基础Stream流中间操作中间操作

super T> predicate) 9:产生一个流,它的元素是当前流中排除不满足谓词条件的元素之外的所有元素。extends T>b):产生一个流,它的元素是a的元素后面跟着b的元素。super T> predicate)9 :产生一个流,它的元素是当前流中所有满足谓词条件的元素。接收一个函数作为参数,该函数会被应用到每个元素上,产生一个新的DoubleStream。接收一个函数作为参数,该函数会被应用到每个元素上,并将其映射成一个新的元素。distinct():筛选,通过流所生成元素的。

2024-06-09 16:27:28 871

原创 maven-目录

002mavenSettings配置 (流水线 拉取私库,包存在,编译不存在。。。。)_maven setting 快速-CSDN博客 002 手动引入jar 到maven库-CSDN博客 004依赖-CSDN博客 004 maven 插件默认的_maven-install-plugin会默认下载-CSDN博客 005 maven 插件-tomcat_maventomcat插件-CSDN博客 008Maven插件-maven-resources-plugin_maven plugin指定资源路径-

2024-06-09 16:23:03 109

NOSQL-redis-运维-单机安装

NOSQL-redis-运维-单机安装

2024-07-07

网络学习的积累存在合理

网络学习的积累存在合理

2024-05-19

SpringMvc 执行流程

SpringMvc 执行流程

2023-06-18

009 maven插件spring-boot-maven-plugin

009 maven插件spring-boot-maven-plugin

2023-06-17

001线程状态图示原图

001线程状态图示原图

2023-06-10

java8的新特性.doc

自己整理的java8新特性及demo 1. Lambda表达式 1 2. 方法的引用 6 3. 构造器引用 7 4. 函数式(Functional)接口 7 5. 四大函数式接口 8 6. Stream 11 7. Map接口的新方法: 19 8. 并行流与串行流 20 9. Optional容器类 23 10. 接口中默认的方法和静态方法 26 11. 日期 26

2020-01-09

easyUI全部手册

jQuery EasyUI 1.5 版 API 中文版.exe jqueryeasyui-demo.chm EasyUI-API+1.3.2.chm EasyUI+tutorial.chm

2019-03-02

数据库连接工具

数据库连接工具,可以连接多种数据库 界面美观 免费使用

2019-02-28

thinkingjava中文版

java圣经thinkingjava 值得拥有 中文高清版

2019-02-28

postmanwin64

postman接口测试工具 window64 位,测试resful 接口的的

2019-02-28

mysql安装图解 安装版

mysql安装图解版 .msi版,window版你值得拥有

2019-02-28

mysql调优与性能设计

mysql性能调优,架构设计 300多页 高清版.值得拥有啊啊

2019-02-28

空空如也

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

TA关注的人

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