hashmap之jdk7、8对比
摘要:一、红黑树 红黑树特点:每个根节点只有两个子节点,且 右子节点key值>根节点key值>左子节点key值 参考:https://www.cnblogs.com/mfrank/p/9227097.html 二、hashmap HashMap基础概念: size:hashmap存储k,v个数 capci
阅读全文
posted @
2019-07-19 17:17
colorfulworld
阅读(1517)
推荐(0) 编辑
RateLimiter限流
摘要:1、处理高并发 1.1高并发处理方案: 缓存 缓存的目的是提升系统访问速度和增大系统处理容量 降级 降级是当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉,待高峰或者问题解决后再打开 限流 限流的目的是通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可
阅读全文
posted @
2019-07-17 15:12
colorfulworld
阅读(3337)
推荐(0) 编辑
redis队列
摘要:1、lpush+rpop 采用rpop需要不停调用rpop方法查看list中是否有待处理消息。每调用一次都会发起一次连接,造成不必要浪费 代码: producer: package com.eval.mind.service.redis; import java.util.UUID; import
阅读全文
posted @
2019-07-13 17:13
colorfulworld
阅读(1184)
推荐(0) 编辑
Serializable是一个空接口,如何实现序列化
摘要:Serializable接口的定义: public interface Serializable{} Serializable 接口之所以定义为空,是因为它只起到了一个标识的作用,告诉程序实现了它的对象是可以被序列化的,但真正序列化和反序列化的操作并不需要它来完成。 static和transient
阅读全文
posted @
2019-07-13 17:13
colorfulworld
阅读(469)
推荐(0) 编辑
JVM堆内存OOM后其他线程是否还可以正常运行
摘要:可以的,当一个线程出现OOM后,他占用内存资源会立马释放掉 。我们仔细观察一下在14:42:05~14:42:25之间曲线变化,你会发现使用堆的数量,突然间急剧下滑!这代表这一点,当一个线程抛出OOM异常后,它所占据的内存资源会全部被释放掉,从而不会影响其他线程的运行!
阅读全文
posted @
2019-07-13 17:13
colorfulworld
阅读(501)
推荐(0) 编辑
策略模式&简单工厂模式&抽象工厂模式
摘要:无论工厂还是策略模式,每个具体工具类(工厂模式)/具体策略类(策略模式)中执行方法名都是一样的,都和抽象工具(工厂模式)/抽象策略(策略模式)中方法名一样的 1、简单工厂类 思想:将创建何种工具交由工厂。将原本逻辑if...else...中“变”的部分抽离为具体工具类,调用方通过在工厂中传入标志符来
阅读全文
posted @
2019-07-12 15:15
colorfulworld
阅读(1569)
推荐(0) 编辑
rocketMQ
摘要:1、RocketMQ结构 nameserver从broker获取topic信息,producer通过topic确定将消息发送到不同broker;broker中有多个messagequeue,消息发送到broker后经过轮询算法、hash算法等将消息发送到不同的messagequeue上。messag
阅读全文
posted @
2019-07-11 15:32
colorfulworld
阅读(719)
推荐(0) 编辑
rabbitmq
摘要:RabbitMQ的broker由Exchange,Binding,queue组成,其中exchange和binding组成了消息的路由键;客户端Producer通过连接channel和server进行通信,Consumer从queue获取消息进行消费(长连接,queue有消息会推送到consumer
阅读全文
posted @
2019-07-11 09:07
colorfulworld
阅读(220)
推荐(0) 编辑
redis服务器查看key-value
摘要:1、redis外网无法访问异常:ENIED Redis is running in protected mode because protected mode 1)打开配置文件把下面对应的注释掉 # bind 127.0.0.1 2)Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用
阅读全文
posted @
2019-07-11 07:53
colorfulworld
阅读(30530)
推荐(2) 编辑
RocketMQ安装与实例
摘要:一、RocketMQ安装(单机) 1、RocketMQ下载 :Apache 官方下载网址:https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.3.0/rocketmq-all-4.3.0-source-release.zip 或者GitHub
阅读全文
posted @
2019-07-11 07:53
colorfulworld
阅读(1826)
推荐(0) 编辑
ThreadLocal
摘要:1、定义 threadLocal:更好理解为threadLocalvalue,用于存储本线程中变量,该变量对其他线程而言是不可见的 2、局限 线程之间不能做到数据共享,不管是不是同一个对象的线程还是不同对象的线程,不同线程之间不能做到数据共享,从而无法解决共享对象的更新问题;每个线程往ThreadL
阅读全文
posted @
2019-07-11 07:52
colorfulworld
阅读(169)
推荐(0) 编辑
java8 新特性
摘要:功能接口/函数式接口 @FunctionInterface 函数式接口就是只定义一个抽象方法并且添加@FunctionInterface的接口,如Runnable Callable Comparator。 函数式接口是为了Java中lambda使用而出现的 函数式接口特点: 接口有且只有一个抽象方法
阅读全文
posted @
2019-07-11 07:52
colorfulworld
阅读(334)
推荐(0) 编辑
ThreadPool基础
摘要:1、ThreadPoolExcutor参数: ThreadPoolExecutor(int coresize,int maxPoolsize,long keepalivetime,Timeunit unit,BlockingQueue<Runnable>workqueue) A:workcount:
阅读全文
posted @
2019-06-12 20:27
colorfulworld
阅读(191)
推荐(0) 编辑
乐观锁失败重试
摘要:1、乐观锁失败后会报:ObjectOptimisticLockFailureException 2、处理方案:捕获到对应乐观锁失败异常后进行重试,代码参考如下 在写入数据库的时候需要有锁,比如同时写入数据库的时候会出现丢数据,那么就需要锁机制。 数据锁分为乐观锁和悲观锁,那么它们使用的场景如下: 1
阅读全文
posted @
2019-06-11 22:05
colorfulworld
阅读(5688)
推荐(1) 编辑
equals方法
摘要:1、==如果作用于基本数据类型,则比较的是值是否相等; 如果作用于引用类型,则比较的是变量所指向的对象的地址 2、对于非String、Date类型equals比较的是引用类型的变量所指向的对象的地址 但对于String、Date类型,在其类中重写了equals(),所以比较的是值 3、Object类
阅读全文
posted @
2019-06-11 22:05
colorfulworld
阅读(3064)
推荐(0) 编辑
Arrays.asList使用误区
摘要:Arrays.asList使用的jar包是import java.util.Arrays; Arrays.asList是使用该jar中的ArrayList方法 1、 基本类型数组 Int [] intArr={1,2,3}; List listArr=Arrays.asList(intArr); S
阅读全文
posted @
2019-06-11 16:09
colorfulworld
阅读(362)
推荐(0) 编辑
ClassLoader类加载
摘要:一、jvm类加载 1.类加载器作用 ①将.class文件加载到jvm ②将class文件统一编码成jvm要求格式 2. 类加载过程 1)加载 将字节码(可能是.class文件、jar包或者网络等)转化为二进制字节流加载到内存中 2)验证 jvm对转化为二进制字节流进行校验,只有符合jvm字节码规范的
阅读全文
posted @
2019-06-08 10:33
colorfulworld
阅读(314)
推荐(0) 编辑
redis分布式锁
摘要:1、Redis分布式锁流程图(二个要点:①超时解锁 ②获得锁的线程唯一标识,用以谁的锁谁来解锁) 2、Redis分布式锁算法: ①加锁 a:锁的唯一标识(设置随机值作为锁的持有人,只有锁的持有人才可以解锁) b:锁的超时时间 加锁指令:jedis.set(lockKey, requestId, SE
阅读全文
posted @
2019-06-07 16:39
colorfulworld
阅读(422)
推荐(0) 编辑
join&Union
摘要:id name id name 1 zhangsan 1 hanmeimei 2 lisi 2 wangwu 3 wangwu join:select * from A join B on A.name=B.name 取交集 id name id name 1 wangwu 2 wangwu ful
阅读全文
posted @
2019-06-05 19:21
colorfulworld
阅读(179)
推荐(0) 编辑