4 WangCw的夏天

尚未进行身份认证

生活不止眼前的苟且,还有诗和远方。

等级
TA的排名 302

Java位运算符

一、Java中所支持的位运算符一共有7个符号说明&按位与。当两位同时为1时才返回1。|按位或。只要有一位为1即可返回1。~按位非(取反)。单目运算符,将操作数的每个位(包括符号位)全部取反。^“异或”运算。当两位相同时返回0,不同时返回1。<<左移运算符。>>右移运算符。>>>...

2019-09-17 22:04:52

KMP、BM、Sunday、Horspool、strstr 字符串匹配算法介绍和性能比较

文章转自:https://blog.csdn.net/qq_33515733/article/details/81163135

2019-08-26 16:25:46

DFA算法实现敏感词过滤

2019-08-05 15:46:03

图书管理系统源码&网上书城系统源码&学生管理系统源码

免费分享:点击此处查看。

2019-08-01 15:01:18

kafka架构分析和配置使用整理

一、软件简介ApacheKafka是开源的分布式流处理平台,也是高吞吐量的分布式跨平台订阅消息系统,主要包含Broker服务器、Topic消息类别、Partition物理分区、Producer生产者、Consumer消费者、ConsumerGroup消费组部分。二、架构图总结:•Broker:Kafka消息服务器,消息中心。一个Broker可以容纳多个Topic。•Prod...

2019-06-21 17:41:43

JVM调优和垃圾回收相关参数整理

一、内存调优-Xmsand-Xmx(or:-XX:InitialHeapSizeand-XX:MaxHeapSize)-Xms和-Xmx可以说是最流行的JVM参数,它们可以允许我们指定JVM的初始和最大堆内存大小。一般来说,这两个参数的数值单位是Byte,但同时它们也支持使用速记符号,比如“k”或者“K”代表“kilo”,“m”或者“M”代表“mega”,“g”或者“G”代表“gi...

2019-05-10 11:42:12

JVM内存模型和GC算法分析

JVM运行时数据区JVM在运行过程中会把它所管理的内存划分成若干不同的数据区域。线程私有:程序计数器、虚拟机栈、本地方法栈(主要存放指令)线程共享:堆、方法区(主要存放数据)一、程序计数器程序计数器是用于存放下一条指令所在单元的地址的地方。我们可以随意拿一个class文件进行反编译,看看其结构。如下,JvmDemo.class文件:cafebabe00000033...

2019-05-09 12:32:19

Spring Boot引起的“堆外内存泄漏”排查及经验总结

背景为了更好地实现对项目的管理,我们将组内一个项目迁移到MDP框架(基于SpringBoot),随后我们就发现系统会频繁报出Swap区域使用量过高的异常。笔者被叫去帮忙查看原因,发现配置了4G堆内内存,但是实际使用的物理内存竟然高达7G,确实不正常。JVM参数配置是“-XX:MetaspaceSize=256M-XX:MaxMetaspaceSize=256M-XX:+AlwaysPreT...

2019-04-29 19:04:06

基于Dubbo的分布式服务日志追踪实现

日志系统中的MDC可以在服务内部提供很好的日志追踪支持。MDC.put(C.LOG.TRACE_ID,"唯一标识串");但是分布式(RPC)的情况下,如何实现呢?以Dubbo为例,我们可以借助Dubbo的上下文信息RpcContext配合Dubbo的SPI扩展实现扩展拦截器来完成服务间的日志追踪。一、上下文信息上下文中存放的是当前调用过程中所需的环境信息。RpcContex...

2019-04-26 11:03:33

基于Redis实现分布式锁剖析

之前的文章《分布式锁详解-分别利用Zookeeper和数据库实现分布式锁》,由于篇幅太长,又碰上加班时间不够充裕,所以没有把Redis的实现也顺带进去,特此做一些利用Redis实现分布式锁的分析。PS:让我做选择的话,分布式锁的选择还是更愿意选择利用Zookeeper去实现的。原因的话可以参考下面这张图:一、关于Redis分布式锁的基础知识1、缓存有效期:redis中的数据,不一定都...

2019-04-25 21:30:34

雪花算法

雪花算法雪花算法的原始版本是scala版,用于生成分布式ID(纯数字,时间顺序),订单编号等。结构:算法描述:最高位是符号位,始终为0,不可用。41位的时间序列,精确到毫秒级,41位的长度可以使用69年。时间位还有一个很重要的作用是可以根据时间进行排序。10位的机器标识,10位的长度最多支持部署1024个节点。12位的计数序列号,序列号即一系列的自增id,可以支持同一节点同一毫秒生...

2019-04-23 17:07:21

分布式锁详解 - 分别利用Zookeeper和数据库实现分布式锁

一、锁的相关描述1、锁的使用流程:首先参考一下JDK所实现的锁的通用接口Lock.java接口:/**@since1.5*@authorDougLea*/publicinterfaceLock{/***加锁*/voidlock();/***锁中断*/voidl...

2019-04-23 15:10:16

同步锁的优化思路及JDK对锁的一些优化

一、锁优化的思路和方法主要有以下5点:减少锁持有时间主要就是精准的确定需要加锁的模块,不需要加锁的代码模块分离在同步块之外。减小锁粒度将大对象(这个对象可能会被很多线程访问),拆成小对象,大大增加并行度,降低锁竞争。降低了锁的竞争,偏向锁,轻量级锁成功率才会提高。最最典型的减小锁粒度的案例就是ConcurrentHashMap。锁分离最常见的锁分离就是读写锁ReadWri...

2019-04-10 16:47:08

总结一些索引使用和优化规范

1、索引列的数据长度能少则少。答:这个原因很简单,B-Tree各个节点能存储信息更多,减少树的告诉,效率自然也能得到提示。2、索引一定不是越多越好,越全越好,一定是建合适的。答:索引多了,检索速度虽然可能得到提升。但是“写”相关操作的效率可就不容小觑了。3、匹配列前缀可用到索引likeabc%。但是like%9999%、like%9999用不到索引。答:最左匹配原则。4、Whe...

2019-04-01 20:40:15

自旋锁、阻塞锁、可重入锁使用解析

自旋锁自旋锁是采用让当前线程不停地的在循环体内执行实现的,当循环的条件被其他线程改变时才能进入临界区。如下:publicclassSpinLock{privateAtomicReference<Thread>sign=newAtomicReference<>();publicvoidlock(){Threadcurre...

2019-03-29 16:39:46

Fork/Join - 并发框架源码解析

什么是Fork/Join框架Fork/Join框架是Java7提供了的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。我们再通过Fork和Join这两个单词来理解下Fork/Join框架,Fork就是把一个大任务切分为若干子任务并行的执行,Join就是合并这些子任务的执行结果,最后得到这个大任务的结果。比如计算1+2+…+100...

2019-03-28 22:01:47

ConcurrentLinkedQueue线程安全的队列源码解析

ConcurrentLinkedQueue简介在并发编程中我们有时候需要使用线程安全的队列。如果我们要实现一个线程安全的队列有两种实现方式一种是使用阻塞算法,另一种是使用非阻塞算法。使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现,而非阻塞的实现方式则可以使用循环CAS的方式来实现。ConcurrentLinkedQueue是一个基于链接节点的...

2019-03-28 19:43:17

XStream注解使用简介

Xstream简介Xstream是一种OXMapping技术,是用来处理XML文件序列化的框架,在将JavaBean序列化,或将XML文件反序列化的时候,不需要其它辅助类和映射文件,使得XML序列化不再繁索。Xstream也可以将JavaBean序列化成Json或反序列化,使用非常方便。本文章主要介绍Xstream相关注解的使用。XStream注解使用假设要生成如下xml报文:<...

2019-03-20 10:17:14

系统吞吐量(TPS)、用户并发量、性能测试概念和公式

PS:下面是性能测试的主要概念和计算公式,记录下:一.系统吞度量要素:一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间QPS(TPS):每秒钟request/事务数...

2019-03-07 11:06:58

【xxl-job分布式任务调度系统】特性整理

一、概述XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。二、使用细节1、调度中心集群调度中心支持集群部署,提升调度系统容灾和可用性。调度中心集群部署时,几点要求和建议:DB配置保持一致;登陆账号配置保持一致;集群机器时钟保持一致(单机集群忽视);建议:推荐通过nginx为调度中心集群做负载均衡,分配域名。调度中心访问、执行器回...

2019-02-27 14:51:36

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。