JSON.toJSONString中空字符串不参与序列化问题 String jsonStr = JSON.toJSONString(cfPayNotifyVo); //空值和空字符串不参与序列化JSON.toJSONString(cfPayNotifyVo, SerializerFeature.WriteMapNullValue); //有空值的字段也参与序列化------------参考:https://www.cnblogs.com/wa...
2019年度受欢迎的开源软件 目录一、基础软件类二、开发框架和基础组件类三、企业软件类四、大前端五、开发工具类六、应用软件类一、基础软件类https://www.oschina.net/p/linuxdeepin[深度操作系统--深度]https://www.oschina.net/p/tencent-angel[基于参数服务器理念的机器学习框架--腾讯王练]https:...
Java必备知识总结(2020版) 一、Java基础1.== 和 equals 的区别是什么?== 解读基本类型:比较的是值是否相同; 引用类型:比较的是引用是否相同;代码示例:String x = "string";String y = "string";String z = new String("string");System.out.println(x==y); // trueSystem.ou...
Java8中StreamAPI总结and示例 目录1.Stream简介2.为什么要使用Stream3.示例数据源 4.Filter5.Map6.FlatMap7.Reduce8.Collect9.Optional10.并发11.调试----------------------------------------------------------------------1...
在Java8中为什么要使用红黑树来实现的HashMap? 一、前言在jdk1.8版本后,Java对HashMap做了改进,在链表长度大于8的时候,将后面的数据存在红黑树中,以加快检索速度。二、红黑树回顾红黑树的英文是“Red-Black Tree",简称R-B Tree。它是一种不严格的平衡二叉查找树,我前面说了,它的定义是不严格符合平衡二叉查找树的定义的。那红黑树空间是怎么定义的呢?顾名思义,红黑树中的节点,一类被标记为黑色,一类被标记...
Java开发面试知识点梳理(含答案) 出于篇幅考虑,这篇文章给出了10个专题。Java面试宝典产生自我7月份准备社招跳槽的过程,当时网上找了些试题,但是没答案,然后一边梳理自己的知识,一般结合自己平时钻研的知识和工作经验,自己对试题进行了整理,解答。也凭借着这次梳理,社招一路过关斩将,offer收割率100%。面了头条,和美团的3个事业部,均收获offer。也预祝各位校招和社招的朋友,斩获满意的offer。悄悄告诉你,外面...
限流(Rate limit)算法总结 一、前言保障服务稳定的三大利器:熔断降级、服务限流和故障模拟。今天和大家谈谈限流算法的几种实现方式,本文所说的限流并非是Nginx层面的限流,而是业务代码中的逻辑限流。那么为什么需要限流呢?按照服务的调用方,可以分为以下几种类型服务1、与用户打交道的服务比如web服务、对外API,这种类型的服务有以下几种可能导致机器被拖垮:用户增长过快(这是好事)因为某个热点事件(微博热...
CountDownLatch(闭锁)、Semaphore(信号量)、CyclicBarrier(回环栅栏) 一、CountDowLatch(闭锁)(倒计数锁存器) CountDownLatch类位于java.util.concurrent包下,在完成某些运算时,只有其他所有线程的运算全部完成,当前运算才继续执行。 利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能。final CountD...
主流MQ特性对比 技术选型:目前在市面上比较主流的消息队列中间件主要有,Kafka、ActiveMQ、RabbitMQ、RocketMQ等这几种。不过敖丙我想说的是,ActiveMQ和RabbitMQ这两着因为吞吐量还有GitHub的社区活跃度的原因,在各大互联网公司都已经基本上绝迹了,业务体量一般的公司会是有在用的,但是越来越多的公司更青睐RocketMQ这样的消息中间件了。Kafka和Rock...
一文搞懂蓝绿发布、灰度发布和滚动发布 应用程序升级面临最大挑战是新旧业务切换,将软件从测试的最后阶段带到生产环境,同时要保证系统不间断提供服务。长期以来,业务升级渐渐形成了几个发布策略:蓝绿发布、灰度发布和滚动发布,目的是尽可能避免因发布导致的流量丢失或服务不可用问题。一、 蓝绿发布项目逻辑上分为AB组,在项目系统时,首先把A组从负载均衡中摘除,进行新版本的部署。B组仍然继续提供服务。...
github代码托管&&gitbash本地工具 安装gitbash工具地址:https://git-scm.com/downloads----------------------------1. 生成公钥首先检查本机公钥:$ cd ~/.ssh2.如果提示:No such file or directory 说明你是第一次使用git。如果不是第一次使用,请执行下面的操作,清理原有ssh密钥。$ mkdir key...
Redis: 缓存过期、缓存雪崩、缓存穿透、缓存击穿(热点)、缓存并发(热点)、多级缓存、布隆过滤器 1.缓存过期缓存过期:在使用缓存时,可以通过TTL(Time To Live)设置失效时间,当TTL为0时,缓存失效。为什么要设置缓存的过期时间呢?一、为了节省内存例如,在缓存中存放了近3年的10亿条博文数据,但是经常被访问的可能只有10万条,其他的可能几个月才访问一次。那么,就没有必要让所有的博文数据长期存在于缓存中。设置一个过期时间比方说7天,超过7天未被访问的博文数据...
程序员成长的四个简单技巧,你 get 了吗? 最近拜读了“阿里工程师的自我修养”手册,12 位技术专家分享生涯感悟来帮助我们这些菜鸡更好的成长,度过中年危机,我收获颇多,其中有不少的方法技巧和我正在使用的,这让我觉得我做的这些事情是对的,我走在了一条正确的道路上。我们程序员这个行业不像医生、律师等其他行业,那些行业可谓是越老越吃香,但是我们不一样,我们不能享受越老越吃香的待遇,因为互联网发展太快,技术不断的更新,就我工作的这短短几年时间就有不...
规则引擎drools【一】 小明是一家互联网公司的软件工程师,他们公司为了吸引新用户经常会搞活动,小明常常为了做活动加班加点很烦躁,这不今天呀又来了一个活动需求,我们大家一起帮他看看。一、小明的烦恼--线上活动规则频繁变更活动规则是根据用户购买订单的金额给用户送相应的积分,购买的越多送的积分越多,用户可以使用积分来兑换相应的商品,我们这次活动的力度很大,肯定会吸引很多的用户参加,产品经理小王兴高采烈唾液横飞的对小明讲...
除了努力挣钱,青春也不能错过的十件事 这些年一直在为钱奔波,上班挣钱,下班熬夜挣钱,有时间看看公众号文章也是优先选择那些如何快速挣钱的。然而结果却是没有挣到钱,又错过了很多生活中的美好。最近闲暇时间比较多,与自己独处的时间也比较多,当自己面对自己时,能够想到的除了怎样挣钱,却想不到其他的兴趣爱好。独处是考验自己能否接受自己的最好方式。有些生活方式,有些追求,可能自己从内心中也是不认可的,只是被社会的这股浮躁气裹挟着前行。看了欧...
Oracle常识系列 1.查看Oracle编码:SELECT * FROM NLS_DATABASE_PARAMETERS查看结果:NLS_CHARACTERSET UTF82.一个汉字等于多少个varchar2如果Oracle 的字符集是Utf-8, varchar2(4000)最多可以存1333个汉字,而varchar2(4000 char)其实和varchar2(1333 char)一样,...
Oracle常用DDL语句 --删除主键ALTER TABLE t_biz_carJoint_wb_roadWay DROP CONSTRAINT T_BIZ_CARJOINT_WB_ROADWAY_PK;--修改主键alter table t_biz_carJoint_wb_roadWay add constraint T_BIZ_CARJOINT_WB_ROADWAY_PK primary key(CHNL_...
UTF-8中文一个汉字占几个字节? 英文字母和中文汉字在不同字符集编码下的字节数英文字母:字节数 : 1;编码:GB2312字节数 : 1;编码:GBK字节数 : 1;编码:GB18030字节数 : 1;编码:ISO-8859-1字节数 : 1;编码:UTF-8字节数 : 4;编码:UTF-16字节数 : 2;编码:UTF-16BE字节数 : 2;编码:UTF-16LE中文汉字:字节...
QuickSort快排算法 QuickSort快排算法:如 6 1 2 7 9 3 4 5 10 8基准数:最左的数:6规则:最左的哨兵i, 最右的哨兵j;先从最右往左找一个小于基准的数,再从左往右找一个大于基准的数,交换[i] 和 [j];当i==j 时,交换基准数和[i], 则基准数归位(找到自己正确的位置)。本质:每一轮会使一个基准数归位。开始: 6 1 2 7 9 3 4 5 ...
JRebel热部署插件【亲测】 1. JRebel简介JRebel是一种热部署生产力工具,修改代码后不用重新启动程序,所有的更改便可以生效。它跳过了Java开发中常见的重建、重新启动和重新部署周期。2. 相关工具下载地址【对应自己电脑版本】:https://github.com/ilanyu/ReverseProxy/releases/tag/v1.4下载后双击启动;tom 换成UUI...