- 博客(100)
- 收藏
- 关注
原创 JSON.toJSONString中空字符串不参与序列化问题
String jsonStr = JSON.toJSONString(cfPayNotifyVo); //空值和空字符串不参与序列化JSON.toJSONString(cfPayNotifyVo, SerializerFeature.WriteMapNullValue); //有空值的字段也参与序列化------------参考:https://www.cnblogs.com/wa...
2019-12-18 17:39:48
1412
原创 2019年度受欢迎的开源软件
目录一、基础软件类二、开发框架和基础组件类三、企业软件类四、大前端五、开发工具类六、应用软件类一、基础软件类https://www.oschina.net/p/linuxdeepin[深度操作系统--深度]https://www.oschina.net/p/tencent-angel[基于参数服务器理念的机器学习框架--腾讯王练]https:...
2019-12-09 20:12:52
757
原创 Java必备知识总结(2020版)
一、Java基础1.== 和 equals 的区别是什么?== 解读基本类型:比较的是值是否相同; 引用类型:比较的是引用是否相同;代码示例:String x = "string";String y = "string";String z = new String("string");System.out.println(x==y); // trueSystem.ou...
2019-12-05 18:14:44
917
原创 Java8中StreamAPI总结and示例
目录1.Stream简介2.为什么要使用Stream3.示例数据源 4.Filter5.Map6.FlatMap7.Reduce8.Collect9.Optional10.并发11.调试----------------------------------------------------------------------1...
2019-12-03 20:37:50
603
原创 在Java8中为什么要使用红黑树来实现的HashMap?
一、前言在jdk1.8版本后,Java对HashMap做了改进,在链表长度大于8的时候,将后面的数据存在红黑树中,以加快检索速度。二、红黑树回顾红黑树的英文是“Red-Black Tree",简称R-B Tree。它是一种不严格的平衡二叉查找树,我前面说了,它的定义是不严格符合平衡二叉查找树的定义的。那红黑树空间是怎么定义的呢?顾名思义,红黑树中的节点,一类被标记为黑色,一类被标记...
2019-11-29 12:03:30
14726
2
原创 Java开发面试知识点梳理(含答案)
出于篇幅考虑,这篇文章给出了10个专题。Java面试宝典产生自我7月份准备社招跳槽的过程,当时网上找了些试题,但是没答案,然后一边梳理自己的知识,一般结合自己平时钻研的知识和工作经验,自己对试题进行了整理,解答。也凭借着这次梳理,社招一路过关斩将,offer收割率100%。面了头条,和美团的3个事业部,均收获offer。也预祝各位校招和社招的朋友,斩获满意的offer。悄悄告诉你,外面...
2019-11-27 16:31:29
517
原创 限流(Rate limit)算法总结
一、前言保障服务稳定的三大利器:熔断降级、服务限流和故障模拟。今天和大家谈谈限流算法的几种实现方式,本文所说的限流并非是Nginx层面的限流,而是业务代码中的逻辑限流。那么为什么需要限流呢?按照服务的调用方,可以分为以下几种类型服务1、与用户打交道的服务比如web服务、对外API,这种类型的服务有以下几种可能导致机器被拖垮:用户增长过快(这是好事)因为某个热点事件(微博热...
2019-11-22 11:24:58
897
原创 CountDownLatch(闭锁)、Semaphore(信号量)、CyclicBarrier(回环栅栏)
一、CountDowLatch(闭锁)(倒计数锁存器) CountDownLatch类位于java.util.concurrent包下,在完成某些运算时,只有其他所有线程的运算全部完成,当前运算才继续执行。 利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能。final CountD...
2019-11-21 20:38:35
408
原创 主流MQ特性对比
技术选型:目前在市面上比较主流的消息队列中间件主要有,Kafka、ActiveMQ、RabbitMQ、RocketMQ等这几种。不过敖丙我想说的是,ActiveMQ和RabbitMQ这两着因为吞吐量还有GitHub的社区活跃度的原因,在各大互联网公司都已经基本上绝迹了,业务体量一般的公司会是有在用的,但是越来越多的公司更青睐RocketMQ这样的消息中间件了。Kafka和Rock...
2019-11-21 17:22:25
1866
原创 一文搞懂蓝绿发布、灰度发布和滚动发布
应用程序升级面临最大挑战是新旧业务切换,将软件从测试的最后阶段带到生产环境,同时要保证系统不间断提供服务。长期以来,业务升级渐渐形成了几个发布策略:蓝绿发布、灰度发布和滚动发布,目的是尽可能避免因发布导致的流量丢失或服务不可用问题。一、 蓝绿发布项目逻辑上分为AB组,在项目系统时,首先把A组从负载均衡中摘除,进行新版本的部署。B组仍然继续提供服务。...
2019-11-11 10:10:43
387
原创 github代码托管&&gitbash本地工具
安装gitbash工具地址:https://git-scm.com/downloads----------------------------1. 生成公钥首先检查本机公钥:$ cd ~/.ssh2.如果提示:No such file or directory 说明你是第一次使用git。如果不是第一次使用,请执行下面的操作,清理原有ssh密钥。$ mkdir key...
2019-11-06 16:23:29
337
原创 Redis: 缓存过期、缓存雪崩、缓存穿透、缓存击穿(热点)、缓存并发(热点)、多级缓存、布隆过滤器
1.缓存过期缓存过期:在使用缓存时,可以通过TTL(Time To Live)设置失效时间,当TTL为0时,缓存失效。为什么要设置缓存的过期时间呢?一、为了节省内存例如,在缓存中存放了近3年的10亿条博文数据,但是经常被访问的可能只有10万条,其他的可能几个月才访问一次。那么,就没有必要让所有的博文数据长期存在于缓存中。设置一个过期时间比方说7天,超过7天未被访问的博文数据...
2019-11-05 19:27:28
439
原创 程序员成长的四个简单技巧,你 get 了吗?
最近拜读了“阿里工程师的自我修养”手册,12 位技术专家分享生涯感悟来帮助我们这些菜鸡更好的成长,度过中年危机,我收获颇多,其中有不少的方法技巧和我正在使用的,这让我觉得我做的这些事情是对的,我走在了一条正确的道路上。我们程序员这个行业不像医生、律师等其他行业,那些行业可谓是越老越吃香,但是我们不一样,我们不能享受越老越吃香的待遇,因为互联网发展太快,技术不断的更新,就我工作的这短短几年时间就有不...
2019-11-05 18:08:54
161
原创 规则引擎drools【一】
小明是一家互联网公司的软件工程师,他们公司为了吸引新用户经常会搞活动,小明常常为了做活动加班加点很烦躁,这不今天呀又来了一个活动需求,我们大家一起帮他看看。一、小明的烦恼--线上活动规则频繁变更活动规则是根据用户购买订单的金额给用户送相应的积分,购买的越多送的积分越多,用户可以使用积分来兑换相应的商品,我们这次活动的力度很大,肯定会吸引很多的用户参加,产品经理小王兴高采烈唾液横飞的对小明讲...
2019-11-05 17:15:56
441
原创 除了努力挣钱,青春也不能错过的十件事
这些年一直在为钱奔波,上班挣钱,下班熬夜挣钱,有时间看看公众号文章也是优先选择那些如何快速挣钱的。然而结果却是没有挣到钱,又错过了很多生活中的美好。最近闲暇时间比较多,与自己独处的时间也比较多,当自己面对自己时,能够想到的除了怎样挣钱,却想不到其他的兴趣爱好。独处是考验自己能否接受自己的最好方式。有些生活方式,有些追求,可能自己从内心中也是不认可的,只是被社会的这股浮躁气裹挟着前行。看了欧...
2019-11-05 16:52:52
391
原创 Oracle常识系列
1.查看Oracle编码:SELECT * FROM NLS_DATABASE_PARAMETERS查看结果:NLS_CHARACTERSET UTF82.一个汉字等于多少个varchar2如果Oracle 的字符集是Utf-8, varchar2(4000)最多可以存1333个汉字,而varchar2(4000 char)其实和varchar2(1333 char)一样,...
2019-10-24 18:22:48
192
原创 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_...
2019-10-23 19:53:25
680
原创 UTF-8中文一个汉字占几个字节?
英文字母和中文汉字在不同字符集编码下的字节数英文字母:字节数 : 1;编码:GB2312字节数 : 1;编码:GBK字节数 : 1;编码:GB18030字节数 : 1;编码:ISO-8859-1字节数 : 1;编码:UTF-8字节数 : 4;编码:UTF-16字节数 : 2;编码:UTF-16BE字节数 : 2;编码:UTF-16LE中文汉字:字节...
2019-10-12 11:28:51
8808
1
原创 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 ...
2019-09-04 15:42:26
208
原创 JRebel热部署插件【亲测】
1. JRebel简介JRebel是一种热部署生产力工具,修改代码后不用重新启动程序,所有的更改便可以生效。它跳过了Java开发中常见的重建、重新启动和重新部署周期。2. 相关工具下载地址【对应自己电脑版本】:https://github.com/ilanyu/ReverseProxy/releases/tag/v1.4下载后双击启动;tom 换成UUI...
2019-08-31 16:15:06
1156
1
原创 Rabbitmq消息积压问题
面试题如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?面试官心理分析你看这问法,其实本质针对的场景,都是说,可能你的消费端出了问题,不消费了;或者消费的速度极其慢。接着就坑爹了,可能你的消息队列集群的磁盘都快写满了,都没人消费,这个时候怎么办?或者是这整个就积压了几个小时,你这个时候怎么办?或者是你积压的时间太长了,...
2019-08-27 16:38:00
6768
1
原创 Confluence突报500连不上数据库
问题:报500 jdbc exception连不上数据库解决方案:1. 看mysql日志 /var/log/mysqld.log2019-08-23T05:53:21.138933Z 0 [ERROR] /usr/sbin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcode: 2 - ...
2019-08-23 16:56:29
1683
原创 JDK1.8中HashMap在出现hash碰撞时链表长度超过8一定会变成红黑树?
JDK1.8中HashMap在出现hash碰撞时链表长度超过8就一定会变成红黑树吗答案是:否.实际上转换红黑树有个大前提,就是当前hash table的长度也就是HashMap的capacity(不是size)不能小于64.小于64就只是做个扩容.看HashMap源码核心代码如下(大体上调用关系就是put->putVal->treeifyBin):put()...
2019-08-23 16:50:59
5676
1
原创 为什么Map桶【链表】中个数超过8才转为红黑树
要弄明白这个问题,我们首先要明白为什么要转换,这个问题比较简单,因为Map中桶的元素初始化是链表保存的,其查找性能是O(n),而树结构能将查找性能提升到O(log(n))。当链表长度很小的时候,即使遍历,速度也非常快,但是当链表长度不断变长,肯定会对查询性能有一定的影响,所以才需要转成树。至于为什么阈值是8,我想,去源码中找寻答案应该是最可靠的途径。--------------------...
2019-08-19 16:27:26
2764
1
原创 SystemProperty
package bhz.utils;public class TestSystemProperty { public static void main(String[] args) { System.out.println("java版本号:" + System.getProperty("java.version")); // java版本号 System.out.prin...
2019-08-18 17:59:59
696
原创 日志关键词查找--常用Linux命令
tail【常用】tail -1000f nohup.outtail -n 100 nohup.outgrep【常用】grep -A10 -B20 '资金方' nohup.out --color多关键词 或grep -E "资金方|核心企业|供应商" nohup.out --color多关键词 与grep '2019-08-16 10:00' nohup.out | ...
2019-08-16 16:09:34
888
原创 哪些情况会导致索引失效
索引并不是时时都会生效的,比如以下几种情况,将导致索引失效:-------------------------------简单归纳,如下:1--条件有or2--联合索引【复合索引】不适用第一部分3--like 以%开头4--字符串不加引号5--where条件有数学运算或函数--------------------------------详细如下:如果条件中有...
2019-08-15 17:18:06
2478
原创 免解压mysql安装
1.官网下载https://dev.mysql.com/downloads/mysql/2.配置环境变量Path:bin的目录添加到系统变量3.mysql-8.0.12-winx64目录下新建一个my.ini文件[mysqld]# 设置3306端口port=3306# 设置mysql的安装目录basedir=E:\\software_offline_software_...
2019-08-15 12:13:14
153
原创 Dubbo面试题小结
1、Dubbo 集群的负载均衡有哪些策略Dubbo 提供了常见的集群策略实现,并预扩展点予以自行实现。1.Random LoadBalance: 随机选取提供者策略,有利于动态调整提供者权重。截面碰撞率高,调用次数越多,分布越均匀;2.RoundRobin LoadBalance: 轮循选取提供者策略,平均分布,但是存在请求累积的问题;3.LeastActive LoadBalan...
2019-08-12 10:37:49
562
原创 IDEA报Can't use Subversion command line client: svn
解决方案:重新安装小乌龟 并 安装时勾选command line client tools--------------参考:https://blog.csdn.net/fuqiang3270/article/details/68945645
2019-08-09 11:13:22
448
原创 Mysql启动失败,报Can't start server: can't create PID file: No such file or directory解决方案
报错一[ERROR] Can’t start server: can’t create PID filepath: No such file or directory错误原因一般是由于服务器强制关机导致pid文件丢失。解决办法1. 在/etc/my.cnf 中查看pid-file的位置pid-file=/var/run/mysql/mysqld.pid2. 创建对应的目录...
2019-08-08 11:23:24
5242
原创 告别NPE总结
1. 意识:使用 obj.doSomething() 时记得判断obj != null。意识的养成需要一个漫长的过程,我们可以通过工具来帮忙,IDEA 就是一个非常出色的工具。2. 判断对象是否相等时,使用Objects.equals(a, b),当然Objects工具类还贴心地为我们提供了toString和requireNonNull这样的好帮手3.自动拆箱的陷阱。当...
2019-08-02 18:04:10
217
原创 MySQL开发规范
MySQL开发规范主要内容命名规范 数据库基本设计规范 数据库字段设计规范 数据库索引设计规范 数据库SQL开发规范命名规范所有的数据库对象名称(包括库名、表名、列名等等)必须以小写字母命名,每个单词之间用下划线分割,禁用中划线,请勿使用驼峰规则给表或者字段命名。 所有的数据库对象名称禁止使用 MySQL 保留关键字。 数据库对象的命名要能做到见名知意,并且不要超过 32...
2019-08-01 10:05:25
163
原创 SQLSyntaxErrorException: ORA-00942: 表或视图不存在
2019-07-31 15:29:14.353 ERROR 4965 --- [nio-8888-exec-3] c.s.f.w.e.GlobalDefaultExceptionHandler : 异常信息:org.springframework.jdbc.BadSqlGrammarException:### Error updating database. Cause: java.sql...
2019-07-31 16:01:00
2864
原创 HttpMessageNotReadableException: Required request body is missing
解决方案:重启项目nohup java -jar fact-web-0.0.1-SNAPSHOT.jar&
2019-07-30 16:52:35
1435
原创 常用正则
座机和手机号:/^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/座机:/0\d{2}-\d{7,8}/手机号:/^(1[0-9])(\d{9})$/身份证号:/^(^[1-9]\d{5}[1-9]\d{3}(((0[2])([0|1|2][0-8])|(([0-1][1|4|6|9])([0|1|2][0-9]|[3][0]))|(((0[1|3|5|7|8...
2019-07-30 10:13:58
405
原创 ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值
ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值检查插入的值是否大于该字段数据类型约束的长度。这个异常是指,用户向数据库执行插入数据操作时,某条数据的某个字段值过长,如果是varchar2类型的,当长度超过2000,--4000(最大值)之间的时候,oracle会自动将该字段值转为long型的,然后,插入操作失败。解决办法是:将此字段的类型改为clob或者blob类型;...
2019-07-10 10:18:46
11881
原创 美团点评数据库高可用架构的演进与设想
本文介绍最近几年美团点评MySQL数据库高可用架构的演进过程,以及我们在开源技术基础上做的一些创新。同时,也和业界其它方案进行综合对比,了解业界在高可用方面的进展,和未来我们的一些规划和展望。MMM在2015年之前,美团点评(点评侧)长期使用MMM(Master-Master replication manager for MySQL)做数据库高可用,积累了比较多的经验,也踩了不少坑,可以...
2019-07-09 11:20:34
236
原创 mysql跳过密码
重置密码的第一步就是跳过MySQL的密码认证过程,方法如下:#vim /etc/my.cnf(注:windows下修改的是my.ini)在文档内搜索mysqld定位到[mysqld]文本段:/mysqld(在vim编辑状态下直接输入该命令可搜索文本内容)在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程mysql -u root...
2019-06-30 23:17:42
619
原创 知名互联网公司的职级划分与薪资待遇
先来张职级划分汇总图,如下:一、阿里1.阿里的级别定义P序列=技术岗 M序列=管理岗阿里的非管理岗分为10级其中P6、P7、P8需求量最大,也是阿里占比最大的级别阿里的级别对应薪资阿里薪资结构:一般是12+1+3=16薪年底的奖金为0-6个月薪资,90%人可拿到3个月股票是工作满2年才能拿,第一次拿50%,4年能全部拿完2.说到股票,真是要普及...
2019-06-16 17:10:14
174546
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人