导航菜单
路很长,又很短
博主信息
昵   称:Cocodroid ->关于我
Q     Q:2531075716
博文数:304
阅读量:683037
访问量:63087
至今:
×
分享博文列表
· ThreadPoolExecutor线程池参数设置技巧
    一、ThreadPoolExecutor的重要参数corePoolSize:核心线程数核心线程会一直存活,及时没有任务需要执行当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理设置allowCoreThreadTimeout=true(默认false)时,核心 ...更多
(5)阅读 2019-04-19

· ZooKeeper和CAP理论及一致性原则
    一、CAP理论概述CAP理论告诉我们,一个分布式系统不可能同时满足以下三种一致性(C:Consistency)可用性(A:Available)分区容错性(P:PartitionTolerance)这三个基本需求,最多只能同时满足其中的两项,因为P是必须的,因此往往选择就在CP或者 ...更多
(22)阅读 2019-04-07

· HashMap分析之红黑树树化过程
    概述HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(JavaDevelopmetKit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文主要分析一下HashMap中红黑树树化的过程 ...更多
(14)阅读 2019-04-03

· 史上最清晰的红黑树讲解(下)
    上一篇文章史上最清晰的红黑树讲解(上)对JavaTreeMap的插入以及插入之后的调整过程给出了详述。本文接着以JavaTreeMap为例,从源码层面讲解红黑树的删除,以及删除之后的调整过程。如果还没有看过上一篇文章,请在阅读本文之前大致浏览一下前文,以方便理解。寻找节点后继对于 ...更多
(24)阅读 2019-04-03

· 史上最清晰的红黑树讲解(上)
    本文以JavaTreeMap为例,从源代码层面,结合详细的图解,剥茧抽丝地讲解红黑树(Red-Blacktree)的插入,删除以及由此产生的调整过程。总体介绍JavaTreeMap实现了SortedMap接口,也就是说会按照key的大小顺序对Map中的元素进行排序,key大小的评 ...更多
(17)阅读 2019-04-02

· 红黑树之原理和算法详细介绍
    R-BTree简介R-BTree,全称是Red-BlackTree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。红黑树的特性:(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每个叶子节 ...更多
(31)阅读 2019-04-02

· jstack 堆栈日志分析
    一、线程的状态线程间的状态转换:1.新建(new):新创建了一个线程对象。2.可运行(runnable):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu的使用权。3.运行(running ...更多
(37)阅读 2019-03-17

· 深入理解jstack日志
    在分析线上问题时常使用到jstack<PID>命令将当时Java应用程序的线程堆栈dump出来。面对jstack日志,我们如何查看?首先要清楚线程的状态线程的状态有:new、runnable、running、waiting、timed_waiting、blocked、 ...更多
(38)阅读 2019-03-17

· 通过jstack日志分析和问题排查
    前段事件公司出现了一个严重故障(调用dubbo服务一直处于超时,整个服务系统发生雪崩,系统彻底访问不了),一开始怎么都找不到问题的根源,日志的表现形式是dubbo线程池用完了,那么具体是什么导致的没有找到,后然通过jstack日志分析才找到问题的根源,根源就是系统日志代码写有问题 ...更多
(58)阅读 2019-03-17

· 为什么Redis内存不宜过大
    redis这个内存数据库,它的高性能、稳定性都是不用怀疑的,但我们塞进redis的数据过多,内存过大,那如果出问题,那它可能会带给我们的就是灾难性。这几年的线上业务表明,redis这个内存数据库,它的高性能、稳定性都是不用怀疑的,但我们塞进redis的数据过多,内存过大,那如果出 ...更多
(30)阅读 2019-03-14

· HTTP访问控制(CORS)跨域- 学习笔记
    今天在写一个简单的mock-server的时候遇到了跨域问题,导致前端页面不能正常与mock-server进行数据交互,之后我查询了相关资料,了解了一下CORS的相关知识。一.简介当一个资源从与该资源本身所在的服务器不同的域或端口请求一个资源时,资源会发起一个跨域HTTP请求。而 ...更多
(149)阅读 2019-03-08

· GC策略的调优
    GC策略在G1还没成熟的情况下,目前主要有串行、并行和并发三种,对于大内存的应用而言,串行的性能太低,因此使用到的主要是并行和并发两种,具体这两种GC的策略在深入JVM章节中已讲解,并行和并发GC的策略通过-XX:+UseParallelGC和-XX:+UseConcMarkSw ...更多
(61)阅读 2019-03-06

· ThreadDump分析笔记: 解读堆栈
    1.概述随着系统日益增大,代码结构日渐复杂,经过验收测试的系统可能在实际生产环境下表现的一塌糊涂,也可能非常棒。因此通过QA并不能保证系统不会发生内存泄漏,往往流量越大泄露的越快,最后导致系统崩溃。比如在某个时间点系统一直出现TimeOut、或者系统突然处理速度急剧下降等问题。对 ...更多
(78)阅读 2019-03-06

· Java内存之本地内存分析神器: NMT 和 pmap
    背景其他团队的一些同事经常问我一个问题:你的Java进程怎么占了那么多VirtualSize和RSS?最近,我基本上可以回答清楚这个问题了。用NMT和pmap基本就就能搞清楚Java进程为什么占了那些VirtualSize和RSS。NMT是NativeMemoryTracking ...更多
(47)阅读 2019-03-04

· Java内存泄漏分析系列之六:JVM Heap Dump(堆
    正如ThreadDump文件记录了当时JVM中线程运行的情况一样,HeapDump记录了JVM中堆内存运行的情况。可以通过以下几种方式生成HeapDump文件:使用jmap命令生成jmap命令是JDK提供的用于生成堆内存信息的工具,可以执行下面的命令生成HeapDump:1jma ...更多
(88)阅读 2019-03-04

· Spring笔记——AOP(注解方式)
    在JavaEE应用中,常常通过AOP来处理一些具有横切性质的系统级服务,如事务管理、安全检查、缓存、对象池管理等。1.AOP的基本概念AOP从程序运行角度考虑程序的流程,提取业务处理过程的切面。AOP面向的是程序运行中各个步骤,希望以更好的方式来组合业务处理的步骤。AOP框架并不 ...更多
(55)阅读 2019-03-04

· Java堆外内存增长问题排查Case
    最近排查一个线上java服务常驻内存异常高的问题,大概现象是:java堆Xmx配置了8G,但运行一段时间后常驻内存RES从5G逐渐增长到13G#补图#,导致机器开始swap从而服务整体变慢。由于Xmx只配置了8G但RES常驻内存达到了13G,多出了5G堆外内存,经验上判断这里超出 ...更多
(82)阅读 2019-03-04

· 微信小程序开发之异步转同步
    基于小程序request请求是异步的特性,app.jsonLaunch()中的请求与index.jsonLoad()中的请求是同时进行的,导致onLoad()中如果有基于onLaunch()返回的数据的请求,会有报错,这样会使onLoad()中request请求的数据“第一次”无 ...更多
(274)阅读 2018-08-04

· 区块链入门教程
    区块链(blockchain)是眼下的大热门,新闻媒体大量报道,宣称它将创造未来。可是,简单易懂的入门文章却很少。区块链到底是什么,有何特别之处,很少有解释。下面,我就来尝试,写一篇最好懂的区块链教程。毕竟它也不是很难的东西,核心概念非常简单,几句话就能说清楚。我希望读完本文,你 ...更多
(414)阅读 2018-03-07

· 架构演化:云原生时代开启之系列三:CNCF篇
    云原生与CNCF 在2015年,由Google牵头创立的CNCF(CloudNativeComputingFoundation)正式成立,并且发布其标志性作品Kubernetes1.0。由此,围绕着CNCF产生了不少有价值的云原生项目。CNCF独立维护了一个全景图项目,发布周期非 ...更多
(422)阅读 2018-01-27