java
文章平均质量分 82
buchifanqie
这个作者很懒,什么都没留下…
展开
-
大事务问题【事务记录篇】
系统中大事务问题要如何处理?大事务引发的问题先看看系统中如果出现大事务可能会引发哪些问题最常见的就是死锁和高并发下锁超时,其本质原因都是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程所站用不会释放的资源而处于的一种永久等待状态。大事务肯定会锁住资源,然后让其他需要锁住资源的事务一直等待,最后超时。另一种情况就是锁住需要的资源,然后再去申请其他资源的时候,结果这些资源被其他占用不释放那么就是死锁。死锁的四个必要条件:互斥条件(Mutual exclusion):资源不.原创 2021-10-08 13:57:13 · 281 阅读 · 0 评论 -
【算法】树状数组原理和实现(纪录片)
树状数组原理和实现树状数组是一种维护数组前缀和、区间和的数据结构,思想和跳跃表有点类似。那么衍生出一个问题,为什么不直接建树?答案是没必要,因为树状数组能处理的问题就没必要建树。和Trie树的构造方式有类似之处。建立索引树状数组的一个节点索引的原始数据数量,与该节点编号在二进制下最低为的1有关1,3,5,7… 二进制下以1结尾,仅索引1个数据(自身)2,6,10,14…二进制下以10结尾,索引2个数据(自身,它前面的那个数)4,12… 二进制下以100结尾,索引4个数据(自身,前面3个数).原创 2021-09-14 18:58:48 · 170 阅读 · 0 评论 -
【hashMap】hash算法和局部位运算
初衷曾经学习hashmap路上遇到这样那样的问题,这次记录一下hashmap里面的一些位运算1、hashmapHashMap的底层就是通过数组+链表+红黑树的方式实现的哈希表结构。数组结构可以在O(1)的时间复杂度定位元素在数组中的位置,而位置是通过key的哈希值和数组长度取模计算出来的,而哈希值是可能相同的,也就是哈希冲突,当然,哈希值不同的时候,通过取模计算也可能产生哈希冲突,所以相同索引下的键的哈希值是可能不相同的或者说,绝大多数是不相同的。当哈希冲突时,就用到链表或者红黑树来解决,当多个.原创 2021-09-08 17:09:02 · 255 阅读 · 0 评论 -
PropertyPlaceholderConfigurer加载报错Could not resolve placeholder
加载文件问题1. 使用@PropertySource(“classpath:application.properties”)和@Value加载配置文件属性的时候启动报错@Configuration@PropertySource("classpath:application.properties")@Data@Componentpublic class CacheConfigBean { private int retryCount; private int elapsedTime原创 2021-08-24 15:46:45 · 1465 阅读 · 0 评论 -
spring配置加载PropertyResourceConfigurer和PropertyPlaceholderConfigurer
继承图UMLPropertySourcesPlaceholderConfigurerPropertySourcesPlaceholderConfigurer,也就是 BeanFactoryPostProcessor接口的一个实现,PropertySourcesPlaceholderConfigurer:PropertyPlaceholderConfigurerPropertyPlaceholderConfigurer是个bean工厂后置处理器的实现,也就是 BeanFactoryPostP.原创 2021-08-24 15:15:46 · 1422 阅读 · 0 评论 -
JSONObject 的基本用法
public static void main(String[] args) {Map map=new HashMap();map.put("我","妹");map.put("擦","哇");map.put("你","呀");JSONObject json = JSONObject.fromObject(map);System.out.println原创 2016-11-23 16:03:37 · 1895 阅读 · 0 评论 -
java日终
主要写一下最近写的日终的东西,日终主要是每日统计跑数,就不需要在用统计的时候大量的带条件分组去查询,从而提高统计信息的查询效率。简单的来说日终的主要逻辑就是定时的跑一个方法,从而去把需要的数据统计出来,放到指定的数据库表里面的操作;里面运用到的方法和技术主要有:java的反序列化,activeMQ,spring定时器。spring配置定时器quartz配置原创 2020-04-30 11:29:57 · 209 阅读 · 0 评论 -
记一次kafka消费者不消费,消费组被踢出问题
描述环境:出现12台集群一个kafka节点,消费组一个java-data,消费者6个问题:运行几个小时后,开始逐步出现消费者被coordinator提出消费组,但是程序进程未退出,正常运行中。怀疑问题网络问题,不生产数据,一直挂起来,观察是否会被踢掉消费阻塞单机性能和吞吐量分析源码,修改源码打印日志,降低到一台消费者1.第一次排查1. 排查日志出现consumer poll timeout has expired. This means the time between subs原创 2021-03-18 15:43:45 · 8959 阅读 · 6 评论 -
springcloud客户端注册时 Saw local status change event StatusChangeEvent错误
启动报错信息2020-06-12 11:48:54.815 WARN 7728 --- [ Thread-31] com.netflix.discovery.DiscoveryClient : Saw local status change event StatusChangeEvent [timestamp=1591933734815, current=DOWN, previous=UP]2020-06-12 11:48:54.819 INFO 7728 --- [ T.原创 2021-03-18 15:26:10 · 2989 阅读 · 4 评论 -
分布式自定义异常工具包RuntimeException
前言在java项目里,异常的使用是比不可少,但是很多的开发者并不知道异常在项目中要怎么使用会更好一些,今天就给大家说说项目中我是怎么使用的,也希望能引出你的更好的使用方法和想法。分析我们先来说说,目前很多项目都是怎么处理自定义异常的呢?因为项目采用的是基本都是MVC代码组织模式,所以很多的项目会按层次定义自己的异常,例如:DaoException、ServiceException、ControllerException,还有按照第三发组件定义自定义异常,例如:MysqlExceptioin、Redi.原创 2021-03-18 15:18:45 · 807 阅读 · 0 评论 -
Java中this关键字使用
说明当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是 this。因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this,并且this只和特定的对象关联,而不和类关联,同一个类的不同对象有不同的this。1、 使用this来区分当前对象。Java中为解决变量的命名冲突和不确定性问题,引入关键字this代表其所在方法的当前对象的引用:构造方法中指该构造器所创建的新对象;方法中指调用该方法的对象;在类本身的方法.原创 2021-03-18 15:08:53 · 236 阅读 · 0 评论 -
自我记录下LocalDate方法
getYear() int 获取当前日期的年份getMonth() Month 获取当前日期的月份对象getMonthValue() int 获取当前日期是第几月getDayOfWeek() DayOfWeek 表示该对象表示的日期是星期几getDayOfMonth() int 表示该对象表示的日期是这个月第几天getDayO...原创 2020-04-30 11:30:17 · 204 阅读 · 0 评论 -
JNA 回调和使用经历
1.JNA C端代码注意事项1.如果是结构体回调参数,C端必须重新向JVM声明新的内存空间,把每个参数重新赋值,意为原参数空间地址有引用,不然会出现java端获取参数时乱码/空的情况。2.结构体数组回调或者返回会出现这个问题,其他单个结构体和直接参数返回暂时没有此情况。建议:所有返回java的参数或者结构体/结构体数组,都重新声明一个新对象一来接收,意为有新的指针指向内存地址,内存空间有引...原创 2020-04-30 11:29:20 · 3972 阅读 · 0 评论 -
spring-webflux 与gateway 和springboot-start-web问题
Spring-webflux当两者一起时配置的并不是webflux web application, 仍然时一个spring mvc web application。官方文档中有这么一段注解:很多开发者添加spring-boot-start-webflux到他们的spring mvc web applicaiton去是为了使用reactive WebClient. 如果希望更改webAppli...原创 2020-04-30 11:19:05 · 3523 阅读 · 0 评论 -
基于jdk1.8 Stream 和 parallelStream
一.什么是Stream?Stream 是在 Java8 新增的特性,普遍称其为流;它不是数据结构也不存放任何数据,其主要用于集合的逻辑处理。二.和Iterator的区别Iterator 做为迭代器,其按照一定的顺序迭代遍历集合中的每一个元素,并且对每个元素进行指定的操作。而 Stream 在此基础上还可以将这种操作并行化,利用多核处理器的优势快速处理集合(集合的数据会分成多个段,由多个线程处...原创 2020-04-30 10:58:28 · 837 阅读 · 0 评论