自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(134)
  • 资源 (5)
  • 收藏
  • 关注

原创 MQTT设置retained的作用

一.背景 为什么要设置retained? 1.当消息发布到MQTT服务器时,我们需要保留最新的消息到服务器上,以免订阅时丢失上一次最新的消息; 当订阅消费端服务器重新连接MQTT服务器时,总能拿到该主题最新消息,这个时候我们需要把retained设置为true;2.当消息发布到MQ服务器时,我们不需要保留最新的消息到服务器上; 当订阅消费端服务器重新连接MQTT服务器时,不能拿到该主题最新消息,只能拿连接后发布的消息,这个时候我们需要把 retained设置为false;...

2020-07-29 18:59:20 10064

原创 union all对查询结果为NULL的不会去重,对于查询条件查询结果为null 的union all查询,结果为NULL会去重;

问题背景:一个同事问我,union all 不是不去重吗?为什么我昨天查还是对的,今天查询就错了;然后我说查询条件不对,他认为是因为union all对查询结果为NULL去重了;问题论点:union all对查询结果为NULL会去重吗?验证猜想:union all对查询结果为NULL不会去重1.首先我拿一个为null的字段进行union all ;2.得出验证结...

2018-12-26 11:22:15 6599

原创 有哪些令人惊讶的心理学效应

比如你希望对方约会不要再迟到,你要坚持每次都准时到,并在对方偶然不迟到的那天,夸奖他,给他形成心理暗示。在亲密关系中,许多被不平等对待的一方,会受到性虐待、冷暴力、语言攻击等,可这些人还是会以爱为由,在对方的暴力行为里,找到微弱的甜头,回到那个伤害自己的人身边。因此,我们可以通过靠近某个群体,来改变别人给自己的标签,并自发地做出一些行为,使自己所属的群体,看上去比别的群体更优秀。教是最好的学,当你知道要去跟别人讲解一个事时,你会力求语言精简,且要点明确,这会让大脑在整理信息时会更有逻辑。

2024-02-23 10:26:47 373

原创 跳出“踢猫效应”陷阱

若听不进批评,一听到批评的意见就生气,或者暴跳如雷,刚愎自用,固执错误,这样的人,早晚要摔跟头。人的坏情绪,一般会随着社会关系链条依次传递,由地位高的传向地位低的,由强者传向弱者,无处发泄的最弱小的便成了最终的牺牲品。在企业日常管理中,经常会出现这种现象∶管理者受到来自内外各个方面的影响时,往往会将负面情绪带入日常管理工作中,带来的后果就是造成日常管理混乱、效率低下,不仅阻碍日常工作的顺利开展,也在一定程度上影响了员工的士气和凝聚力。的确,在竞争白热化的今天,时时保持豁达的姿态,这很具挑战性。

2023-12-13 14:43:53 463

原创 做管理的那4件事

有时候你去追下属的过程,追下属的结果,可能比较严厉,看上去非常无情,但是他真的会拼命努力,不断提升自己,从而拥有一份稳定的工作。管理者相对下属来说,对战略的理解更深入,但深入到工作细节,到执行层面,你一定不如基层员工,如果你比他更厉害,那说明你请错人了。他一时不能理解,等到团队打了胜仗,他拿到了更多的钱,能得到晋升的机会,他就知道你的严苛,其实是真正对他负责任。盼人好,就是你在用他的时候,你能识别他的长处,并且将他放在合适的位置上,激发他的潜力,让他有更大的生产力。而想做好管理者,必须要有反人性的能力。

2023-11-25 14:58:18 451

原创 Spring Bean的生命周期详细梳理

在Spring IOC容器中,Bean的生命周期大致如下:这就是Spring IOC容器管理Bean的生命周期,帮助我们管理对象的创建和销毁,以及在适当的时机做适当的事情。我们可以将生命周期的触发称为回调,因为生命周期的方法是我们自己定义的,但方法的调用是由框架内部帮我们完成的,所以可以称之为“回调”。让我们先了解一种最容易理解的生命周期阶段:初始化和销毁方法。这些方法可以在Bean的初始化和销毁阶段起作用,我们通过示例来演示这种方式。为了方便演示XML和注解的方式,接下来我们会创建两个类来分别进行演示,分

2023-11-16 13:59:29 238

原创 Redis持久化策略原理及使用场景选择

AOF持久化通过记录所有写操作命令实现持久化,具有更高的数据安全性和更好的容错性等优点,但可能存在较大的存储空间和数据加载速度较慢等缺点。混合持久化结合了RDB持久化和AOF持久化的优点,适用于对数据安全性和性能要求较高的场景。混合持久化结合了RDB持久化和AOF持久化的优点,可以在保证数据安全性的同时,提供较快的数据加载速度。如果同时开启了RDB和AOF持久化,Redis优先使用AOF持久化,因为AOF持久化可以保证更高的数据安全性和灵活性,而RDB持久化适用于数据恢复的场景。

2023-11-15 14:34:34 125

原创 Redis企业级问题及解决方案

总的来说:缓存击穿就是单个高热数据过期的瞬间,数据访问量较大,未命中redis后,发起了大量对同一数据的数据库访问,导致对数 据库服务器造成压力。总的来说:缓存击穿是指访问了不存在的数据,跳过了合法数据的redis数据缓存阶段,每次访问数据库,导致对数据库服务器造成压力。​ 以电商为例,每个商家根据店铺等级,指定若干款主打商品,在购物节期间,加大此类信息key的过期时长 注意:购物节不仅仅指当天,以及后续若干天,访问峰值呈现逐渐降低的趋势。避免在用户请求的时候,先查询数据库,然后再将数据缓存的问题!

2023-11-15 10:42:11 211

原创 远离“垃圾人” (Stay away from Trash people)

只要微笑,挥挥手,并远离他们,继续我们自己的路就行。否则,日积月累,慢慢堆积,垃圾情绪就会填满内心,一旦出现大爆发,会导致情绪失控、情绪崩溃,于是失眠、抑郁症等就跟上来了,还很容易引发躯体疾病,甚至憋闷出大毛病来——许多癌症就是负面情绪长时间累积导致的。毕业于宾夕法尼亚州大学心理学专业和耶鲁大学经济学专业的大卫·波莱在《垃圾车法则》一书中,把进入病态的垃圾情绪称为“垃圾车定律”,也叫“垃圾人定律”,意思是有的严重不良情绪的人就像一台“垃圾车”,他们到处跑来跑去,身上充满了负面情绪、垃圾情绪。

2023-10-28 17:19:08 233

原创 Tomcat最大并发数及在线用户数

还有3万会员正在点击某个帖子,那么我们可以说,某时间点,有2万个并发用户在提交新帖子,有3万个并发用户在编写帖子,有1万个并发用户浏览帖子内容,有3万个并发用户在点击某个帖子,,系统有9万的并发用户。比如,以乘坐地铁为例子,每天乘坐人数为5万人次,每天早高峰是7到9点,晚高峰是6到7点,根据8/2原则,80%的乘客会在高峰期间乘坐地铁,则每秒到达地铁检票口的人数为50000。值得注意的是,这9万并发用户中,真正对系统产生压力的只有5万用户,即提交新帖和点击帖子的用户。侠义上来说,可以理解为系统注册用户数;

2023-10-28 11:25:55 819

原创 判断是否为Base64加密无意间发现特殊字符无法判断

2.经过多少测试postgre最后一个字符为任何一个base64相同的字符 postgre[0-9], postgre[a-z] , postgre[A-Z] , postgre[+,/,=] 都会被认为true;1.在一次对配置文件数据库用户名和密码加密过程,发现postgres这么去判断都是为true;3 将字节数组的每个字节转换为对应的base64字符。2 判断字节数组的长度是否是4的倍数。4 判断base64字符是否合法。三:发现特殊字符无法判断。

2023-10-24 10:12:33 491

原创 管理好自己,才是一个人最大的本事

日本经营之圣稻盛和夫先生在《心法》里说:“人生一切的不幸,没有别的原因,都是由自己的心灵吸引而来的,是无休止地倾诉不幸,牢骚不断的那颗心,唤来了不幸。当你拥有钝感力,不那么敏感,摈弃外界不良的声音,你专注于自己的内心,你会发现,一切都没有我们想象的那么难。你真心实意帮助了他。你怎么对待他,是属于你的课题。当别人嫉妒你,嘲讽你,你也不要太在意,他们那么做,恰恰说明你很优秀,你遇到的不好的人,都是来成就你的。就是你要多读书,多和行业内的专家交流,推倒思维里的墙,不断地建立属于你的框架思维,拓展自己的认知边界。

2023-09-07 09:32:47 82

原创 PostgreSQL 存储过程详细案例

我们可以看到上面无论是单列多行还是多列多行,都用到了 return next 和 return query 方法在 plpgsql 中,如果存储过程返回 setof sometype,则返回值必须在 return next 或者 return query 中声明,然后有一个不带参数的 retrun 命令,告诉函数执行完毕;【setof 就意味着 多行】用法如下return next 可以用于标量和复合类型数据;return query 命令将查询到的一条结果追加到函数的结果集中;

2023-06-16 16:25:05 2182

原创 Linux中常见curl命令详解

4.curl -X POST --header"Content-Type:application/json" --data ‘{}’ url (使用post模拟json格式请求接口)2.curl -i url(获取该网址的文本信息以及协议头部信息)3.curl -x proxy url(使用代理获取网页文本信息)5.curl -I url(仅返回请求头部信息)下面我么就对常用的几种命令做一个简单的描述。1.curl url(获取该网址的文本信息)

2023-05-16 14:11:05 531

原创 Seata中的四种不同的事务模式原理和应用场景

Seata中的四种不同的事务模式原理和应用场景

2023-03-24 14:13:21 1500

原创 一切喜怒哀乐都来自于你的认知

我们的人生,往往只看到一条船,而没有看到那条河,更疏略了两岸美丽的风景。不要太功利,这个世界,人类竞争比拼的不是什么学分成绩,不是名校名师,不是专业科目,而是你对自我与社会的终极认知。说格局、说心胸、说视野,最终说的不过是认知。

2023-03-21 17:25:02 503

原创 往往是认知决定你的人生格局

因为你的认知决定了你的思维方式,思维方式决定了你的方向,而你的方向又大概率决定了你的命运。

2023-03-21 14:53:20 303

原创 6条社交潜规则,更容易活得通透

每一个人都是如此,比如年轻时候,到了冬天,家人让你穿秋裤,你不仅不穿秋裤,还露着脚脖子,如果有人劝你,你会嫌他唠叨。他的生意做得特别好的时候,当身边有人遇到困难,他经常施以援手,介绍业务给别人,别人缺钱的时候找他帮忙,也大大方方的借,甚至连欠条都不用打。在你帮助人的时候,或者说在培养一个人的时候,你的发心就是真的想要帮助他,希望他越来越优秀,并不是为了图他的回报,这是你的课题。比如有的演员,身边全是捧他的人,到最后,就认为自己的演技是好的,认为自己的作品是好的,还很自信。你帮助过的那些人,未必会帮助你。

2023-03-17 17:37:25 881 1

原创 社会上大多数人,都有同一种根深蒂固的思维习惯,而成功的人只是社会少数人。

社会上大多数人,都有同一种根深蒂固的思维习惯,而成功的人只是社会少数人。

2023-03-13 15:13:00 418

原创 莫欺少年穷的底层逻辑

莫欺少年穷,三十年河东,三十年河西,我命由我不由天;

2023-03-11 16:34:55 283

原创 CharGPT无法替代的职场发展底层逻辑

CharGPT无法替代的职场发展底层逻辑

2023-03-02 09:31:52 317

原创 PostgreSQL对空值处理nullif函数

PostgreSQL对空值处理nullif函数

2022-11-23 10:04:03 5533

原创 PostgreSQL 的时间差DATEDIFF

PostgreSQL 的时间差DATEDIFF

2022-11-18 18:06:04 15523

原创 Java 文件和IO流字符串(Base64字符串)互转

在项目中,我们往往会有离线设备交互文件的时候,就需要把文件转IO字符或者IO字符串转未文件;

2022-06-29 11:20:45 1480

原创 概况Java中的偏向锁、轻量级锁、重量级锁、自旋锁、自适应自旋锁

概况Java中的偏向锁、轻量级锁、重量级锁、自旋锁、自适应自旋锁

2022-06-16 10:54:59 1960 2

原创 Liunx 常用命令50个

1.find 基本语法参数如下:find [PATH] [option] [action]# 与时间有关的参数:-mtime n : n为数字,意思为在n天之前的“一天内”被更改过的文件;-mtime +n : 列出在n天之前(不含n天本身)被更改过的文件名;-mtime -n : 列出在n天之内(含n天本身)被更改过的文件名;-newer file : 列出比file还要新的文件名# 例如:find /root -mtime 0 # 在当前目录下查找今天之内有改动的文件# 与用.

2022-03-16 11:08:28 16503 13

原创 SpringMVC 的工作流程

1、springmvc工作原理图2、springmvc工作流程1、 用户向服务端发送一次请求,这个请求会先到前端控制器DispatcherServlet(也叫中央控制器)。2、DispatcherServlet接收到请求后会调用HandlerMapping处理器映射器。由此得知,该请求该由哪个Controller来处理(并未调用Controller,只是得知)3、DispatcherServlet调用HandlerAdapter处理器适配器,告诉处理器适配器应该要去执行哪个Controlle

2021-12-15 11:29:37 316

原创 spring事务失效的原因

1:数据库引擎不支持事务这里以 MySQL 为例,其 MyISAM 引擎是不支持事务操作的,InnoDB 才是支持事务的引擎,一般要支持事务都会使用 InnoDB。根据 MySQL 的官方文档:https://dev.mysql.com/doc/refman/5.5/en/storage-engine-setting.html从 MySQL 5.5.5 开始的默认存储引擎是:InnoDB,之前默认的都是:MyISAM,所以这点要值得注意,底层引擎不支持事务再怎么搞都是白搭。2:没有.

2021-12-10 15:13:00 155

原创 BeanFactory和ApplicationContext有什么区别

BeanFactory和ApplicationContext有什么区别? BeanFactory和ApplicationContext是Spring的两大核心接口,都可以当做Spring的容器。其中ApplicationContext是BeanFactory的子接口。(1)BeanFactory:是Spring里面最底层的接口,包含了各种Bean的定义,读取bean配置文档,管理bean的加载、实例化,控制bean的生命周期,维护bean之间的依赖关系。ApplicationContext

2021-12-03 11:50:57 245

原创 Spring AOP——Spring 中面向切面编程

一、AOP——另一种编程思想1.1 什么是 AOPAOP (Aspect Orient Programming),直译过来就是 面向切面编程。AOP 是一种编程思想,是面向对象编程(OOP)的一种补充。面向对象编程将程序抽象成各个层次的对象,而面向切面编程是将程序抽象成各个切面。从《Spring实战(第4版)》图书中扒了一张图:从该图可以很形象地看出,所谓切面,相当于应用对象间的横切点,我们可以将其单独抽象为单独的模块。1.2 为什么需要 AOP想象下面的场景,开发中在多个模块间有

2021-11-30 16:36:29 133

原创 Java并发编程:Java线程池核心ThreadPoolExecutor的使用和原理分析

引出线程池线程是并发编程的基础,前面的文章里,我们的实例基本都是基于线程开发作为实例,并且都是使用的时候就创建一个线程。这种方式比较简单,但是存在一个问题,那就是线程的数量问题。假设有一个系统比较复杂,需要的线程数很多,如果都是采用这种方式来创建线程的话,那么就会极大的消耗系统资源。首先是因为线程本身的创建和销毁需要时间,如果每个小任务都创建一个线程,那么就会大大降低系统的效率。其次是线程本身也是占用内存空间的,大量的线程运行会抢占内存资源,处理不当很可能会内存溢出,这显然不是我们想看到的。那么

2021-11-23 19:34:40 645

原创 Java中Runnable和Thread的区别

概述Runnable 是接口。Thread 是类,且实现了Runnable接口。Thread部分源码public class Thread implements Runnable{ private static class Caches { static final ConcurrentMap subclassAudits = new ConcurrentHashMap(); static final ReferenceQueu

2021-11-16 10:41:20 1283

原创 Java内存垃圾回收(GC)原理

一、为什么需要垃圾回收  如果不进行垃圾回收,内存迟早都会被消耗空,因为我们在不断的分配内存空间而不进行回收。除非内存无限大,我们可以任性的分配而不回收,但是事实并非如此。所以,垃圾回收是必须的。二、哪些内存需要回收?哪些内存需要回收是垃圾回收机制第一个要考虑的问题,所谓“要回收的垃圾”无非就是那些不可能再被任何途径使用的对象。那么如何找到这些对象?1、引用计数法这个算法的实现是,给对象中添加一个引用计数器,每当一个地方引用这个对象时,计数器值+1;当引用失效时,计数器值-1。任何时刻计

2021-11-09 19:55:46 1423

原创 Java并发编程:CountDownLatch、CyclicBarrier和Semaphore

在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。  以下是本文目录大纲:  一.CountDownLatch用法  二.CyclicBarrier用法  三.Semaphore用法  若有不正之处请多多谅解,并欢迎批评指正。  请尊重作者劳动成果,转载请标明原文链接:  http://www.cnblogs.com/dolphin052

2021-09-13 15:18:47 97

原创 Java Redisson实现分布式锁原理

一、高效分布式锁当我们在设计分布式锁的时候,我们应该考虑分布式锁至少要满足的一些条件,同时考虑如何高效的设计分布式锁,这里我认为以下几点是必须要考虑的。1、互斥在分布式高并发的条件下,我们最需要保证,同一时刻只能有一个线程获得锁,这是最基本的一点。2、防止死锁在分布式高并发的条件下,比如有个线程获得锁的同时,还没有来得及去释放锁,就因为系统故障或者其它原因使它无法执行释放锁的命令,导致其它线程都无法获得锁,造成死锁。所以分布式非常有必要设置锁的有效时间,确保系统出现故障后,在一定时间

2021-06-24 17:49:45 420

原创 Java Redis三种客户端对比(优缺点对比+使用建议)

Redis 官方推荐的 Java 客户端有Jedis、lettuce 和 Redisson。1. JedisJedis 是老牌的 Redis 的 Java 实现客户端,提供了比较全面的 Redis 命令的支持,其官方网址是:http://tool.oschina.net/uploads/apidocs/redis/clients/jedis/Jedis.html。优点:支持全面的 Redis 操作特性(可以理解为API比较全面)。缺点:使用阻塞的 I/O,且其方法调用都是同步的,程序流

2021-06-24 14:04:20 1365

原创 Java 原子性,可见性,有序性概念

一、简介volatile是Java提供的一种轻量级的同步机制。Java语言包含两种内在的同步机制:同步块(或方法)和volatile变量,相比于synchronized(synchronized通常称为重量级锁),volatile更轻量级,因为它不会引起线程上下文的切换和调度。但是volatile变量的同步性较差(有时它更简单并且开销更低),而且其使用也更容易出错。二、并发编程的3个基本概念1.原子性定义: 即一个操作或者多个操作 要么全部执行并且执行的过程不会被任何因素打断...

2021-06-24 11:48:47 294

原创 @Scheduled cron说明

一、Cron详解:Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式:1.Seconds Minutes Hours DayofMonth Month DayofWeek Year2.Seconds Minutes Hours DayofMonth Month DayofWeek每一个域可出现的字符如下:Seconds:可出现", - * /"四个字符,有效范围为0-59的整数Minutes:可出现", - * /...

2021-05-06 11:48:37 218

原创 分布式锁的三种实现方式

分布式锁三种实现方式: 1 2 3 1. 基于数据库实现分布式锁; 2. 基于缓存(Redis等)实现分布式锁; 3. 基于Zookeeper实现分布式锁; 一, 基于数据库实现分布式锁1. 悲观锁利用select … where … for update 排他锁注意: 其他附加功能与实现一基本一致,这里需要注意的是“where name=lock ”,name字段必须要走索引,否则会锁表。有些情况下,比如表..

2021-04-07 16:08:10 128

原创 Java原子类应用场景如:AtomicInteger的使用

Java中有那么一些类,是以Atomic开头的。这一系列的类我们称之为原子操作类。原子类建立在 CAS 和 volatile 之上,CAS 是非阻塞算法的一种常见实现,相对于 synchronized 这种阻塞算法,它的性能更好。以最简单的类AtomicInteger为例。它相当于一个int变量,我们执行Int的 i++ 的时候并不是一个原子操作。而使用AtomicInteger的incrementAndGet却能保证原子操作。具体的类如下:闲话不多说,还是用实例说话吧。问题:现在有2...

2021-03-03 14:53:30 1258 2

搭建ftp服务器并实现http访问.zip

搭建ftp服务器并实现http访问

2021-06-19

tree_dom.zip

Java树形结构递归方式(以时间换空间)和非递归方式(以空间换时间); 如果层级比较多和数据量比较大建议用非递归方式效率更高;

2020-11-09

0-9和A-Z的流水号.sql

SQL 生成A-Z英文字母和0-9数字组合的流水号,其中我的案例是2位数的,根据自己的需要可以生成N位流水号;

2020-03-30

利用反射子父类赋值高效工具类案例extends_setvalue.zip

利用反射子父类赋值高效工具类案例,特别对扩展类进行数据持久化的时候或者是查询父类数据要赋值给扩展类时,这个工具类就非常高效高性能。避免许多冗余代码和重复IO读写;

2020-02-21

access.zip

问题:对于查询有些字段值一直未null,但是accdb文件对应的表和字段都有值,可是查询结果还是为null; 推理: 1.排查关键字段导致查询值为null;2.排查数据类型导致为null;3.排查JDK1.8版本问题;4.排查Access_JDBC30.jar有问题; 推理结果:之前的Access_JDBC30.jar有问题,更换jar包就好了;

2019-09-17

空空如也

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

TA关注的人

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