自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

I want to know a little more.

一点一点的进步。。。

  • 博客(21)
  • 资源 (3)
  • 收藏
  • 关注

原创 Idea下maven无法下载jar

问题:Idea里配置了自定义的Maven以及自定义的settings.xml自定义的本地仓库。有一天忽然遇到需要更新某个jar,就把本地仓库的jar删掉了,然后重新reimport结果下不下来了。结论:删掉workspace,重新创建workspace,重新拉代码配置maven等配置解决。原因:至今懵逼...

2020-05-25 17:41:00 171

原创 Broken Pipe异常

对外提供一个查询接口,查询参数巨大导致Spring项目中的request请求报错:2020-05-25 00:11:30 [http-nio-8080-exec-694] DEBUG [org.springframework.web.servlet.DispatcherServlet] - Could not complete requestorg.apache.catalina.connector.ClientAbortException: java.io.IOException: Broken p

2020-05-25 17:35:02 450

转载 java native方法使用

一、前言 今天在看java.lang.System源码的时候看到了System静态代码块中有一个registerNatives方法,该方法是被 native关键字修饰。public final class System { /* register the natives via the static initializer. * * VM will invoke(调用) the initializeSystemClass method to complete...

2020-05-24 15:53:26 428

转载 很高兴!终于踩到了慢查询的坑

之前看了饿了么团队写的一篇博客:等等!这两个 Spring-RabbitMQ 的坑我们已经替你踩了。深受启发,一定要取个能吸引读者眼球的标题,当然除了响当当的标题以外,内容也要是干货。为什么会想取这样一个标题,因为看了理论上的慢查询优化,今天!!!终于在生产上实战了(一)慢sql一问题发现将应用发布到生产环境后,前端页面请求后台API返回数据,发现至少需要6s。查看到慢sql:复现慢sql执行sql:select count(*) from sync_block...

2020-05-23 16:45:22 340

转载 JMX可视化监控线程池

前两天阅读公司代码看到了用JMX监控定时任务信息和状态,JMX这个单词感觉很熟于是便去查阅了一下,并写了监控线程池的Demo通过阅读本篇文章你将了解到:JMX介绍 线程池介绍 JMX监控线程池应用什么是JMXJMX简介JMX(Java Management Extensions),监控管理框架,通过使用JMX可以监控和管理应用程序。JMX最常见的场景是监控Java程序的基本信息和运行情况,任何Java程序都可以开启JMX,然后使用JConsole或Visual VM进行预览JM.

2020-05-23 16:21:51 1260

转载 为什么阿里巴巴要禁用Executors创建线程池?

看阿里巴巴开发手册并发编程这块有一条:线程池不允许使用Executors去创建,而是通过ThreadPoolExecutor的方式,通过源码分析禁用的原因写在前面首先感谢大家在盖楼的间隙阅读本篇文章,通过阅读本篇文章你将了解到:线程池的定义 Executors创建线程池的几种方式 ThreadPoolExecutor对象 线程池执行任务逻辑和线程池参数的关系 Executors创建返回ThreadPoolExecutor对象 OOM异常测试 如何定义线程池参数如果只想知道原因可.

2020-05-23 16:19:55 227

转载 并发编程——ConcurrentHashMap#addCount() 分析

前言ConcurrentHashMap 精华代码很多,前面分析了 helpTransfer 和 transfer 和 putVal 方法,今天来分析一下 addCount 方法,该方法会在 putVal 方法中调用。该方法可以配合 size 方法一起查看,关于该方法,楼主也写了一篇文章分析过:并发编程 —— ConcurrentHashMap size 方法原理分析具体代码如下:addCount(1L, binCount);return null;复制代码当插入结束的时候,会调用该

2020-05-23 16:18:15 2239 1

转载 ConcurrentHashMap#transfer() 扩容逐行分析

前言ConcurrentHashMap 是并发中的重中之重,也是最常用的数据结果,之前的文章中,我们介绍了 putVal 方法。并发编程之 ConcurrentHashMap(JDK 1.8) putVal 源码分析。其中分析了 initTable 方法和 putVal 方法,但也留下了一句话:这篇文章仅仅是 ConcurrentHashMap 的开头,关于 ConcurrentHashMap 里面的精华太多,值得我们好好学习。说道精华,他的扩容方法绝对是精华,要知道,ConcurrentH

2020-05-23 15:39:21 553 2

转载 并发编程——ConcurrentHashMap#helpTransfer() 扩容逐行分析

前言ConcurrentHashMap 鬼斧神工,并发添加元素时,如果 map 正在扩容,其他线程甚至于还会帮助扩容,也就是多线程扩容。就这一点,就可以写一篇文章好好讲讲。今天一起来看看。源码分析为什么帮助扩容?在 putVal 方法中,如果发现线程当前 hash 冲突了,也就是当前 hash 值对应的槽位有值了,且如果这个值是 -1 (MOVED),说明 Map 正在扩容。那么就帮助 Map 进行扩容。以加快速度。具体代码如下:int hash = spread(key.hash

2020-05-23 15:37:47 3354 4

转载 并发编程 —— ConcurrentHashMap size 方法原理分析

前言ConcurrentHashMap 博大精深,从他的 50 多个内部类就能看出来,似乎 JDK 的并发精髓都在里面了。但他依然拥有体验良好的 API 给我们使用,程序员根本感觉不到他内部的复杂。但,他内部的每一个方法都复杂无比,就连 size 方法,都挺复杂的。今天就一起来看看这个 size 方法。size 方法代码如下:public int size() { long n = sumCount(); return ((n < 0L) ? 0 : (n &gt

2020-05-23 13:34:38 501

转载 如何 60 秒内进行 Linux 性能分析

当你登陆一台 Linux 服务器之后,因为一个问题要做性能分析时:你会在第 1 分钟内做哪些检测呢?在 Netflix,我们有很多 EC2 的 Linux 机器,并且也需要很多性能分析工具来监控和检查它们的性能。包括有针对云上的监控工具 Atlas,和按需要进行实例分析的 Vector。虽然这些工具能帮助我们解决大多数问题,但是我们有时候还需要登陆机器实例去运行一些标准的 Linux 性能分析工具。最开始的 60 秒:总结在这篇文章中,Netflix 的性能分析工程师团队会给你展示在最开始的 6

2020-05-22 18:17:44 481

转载 TimSort

作者:Ron Tang链接:https://www.zhihu.com/question/23928138/answer/562890458来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。1.扫描数组,确定其中的单调上升段和严格单调下降段,将严格下降段反转。我们将这样的段称之为run。2.定义最小run长度,短于此的run通过插入排序合并为长度高于最小run长度;3.反复归并一些相邻run,过程中需要避免归并长度相差很大的run,直至整个排序完成;4..

2020-05-21 20:53:34 277

转载 如何保证redis的高并发及高可用?

怎么保证Redis是高并发以及高可用的?从石杉码农课程整理而来一、redis如何通过读写分享来承载读请求QPS超过10万+1、redis高并发跟整个系统的高并发之间的关系redis,你要搞高并发的话,不可避免,要把底层的缓存搞得很好mysql,高并发,做到了,那么也是通过一系列复杂的分库分表,订单系统,事务要求的,QPS到几万,比较高了要做一些电商的商品详情页,真正的超高并发,QPS上十万,甚至是百万,一秒钟百万的请求量光是redis是不够的,但是redis是整个大型的缓存架构中,支

2020-05-19 22:02:38 1183

转载 动态规划例子

https://blog.csdn.net/JiuZhang_ninechapter/article/details/106094679

2020-05-19 16:45:31 320

转载 JDK6 Instrumentation 简介

Instrumentation 简介利用 Java 代码,即 java.lang.instrument 做动态 Instrumentation 是 Java SE 5 的新特性,它把 Java 的 instrument 功能从本地代码中解放出来,使之可以用 Java 代码的方式解决问题。使用 Instrumentation,开发者可以构建一个独立于应用程序的代理程序(Agent),用来监测和协助运行在 JVM 上的程序,甚至能够替换和修改某些类的定义。有了这样的功能,开发者就可以实现更为灵活的运行时虚拟

2020-05-19 12:01:30 333

转载 Log4j2详解

1.背景Log4j 2中记录日志的方式有同步日志和异步日志两种方式,其中异步日志又可分为使用AsyncAppender和使用AsyncLogger两种方式。2.Log4j2中的同步日志所谓同步日志,即当输出日志时,必须等待日志输出语句执行完毕后,才能执行后面的业务逻辑语句。下面通过一个例子来了解Log4j2中的同步日志,并借此来探究整个日志输出过程。log4j2.xml配置如下:<?xml version="1.0" encoding="UTF-8"?><C

2020-05-19 11:10:23 8141

转载 如何避免伪共享

在并发编程过程中,我们大部分的焦点都放在如何控制共享变量的访问控制上(代码层面),但是很少人会关注系统硬件及 JVM 底层相关的影响因素。前段时间学习了一个牛X的高性能异步处理框架 Disruptor,它被誉为“最快的消息框架”,其 LMAX 架构能够在一个线程里每秒处理 6百万 订单!在讲到 Disruptor 为什么这么快时,接触到了一个概念——伪共享( false sharing ),其中提到:缓存行上的写竞争是运行在 SMP 系统中并行线程实现可伸缩性最重要的限制因素。由于从代码中很难看出是否会出现

2020-05-18 22:07:03 948 1

原创 Apollo+LoggingSystem动态配置日志级别

代码如下:@ApolloConfig("namespace_xxxx.app_id")private Config config;@ApolloConfigChangeListener("namespace_xxxx.app_id")private void onChange(ConfigChangeEvent changeEvent) { refreshLoggingLevels();}@PostConstructprivate void refreshLoggingLev.

2020-05-18 18:45:27 941

转载 什么是Service Mesh

Service Mesh作为下一代微服务技术的代名词,初出茅庐却深得人心一鸣惊人,大有一统微服务时代的趋势。那么到底什么是Service Mesh?一言以蔽之:Service Mesh是微服务时代的TCP协议。有了这样一个感性的初步认知,我们再来看到底什么是Service Mesh。提到Service Mesh,就不得不提微服务。根据维基百科的定义:微服务 (Microservices) 是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块 (Small Building .

2020-05-18 16:28:55 202

原创 查看进程依赖上下文

最近在定位java项目中依赖fastjson版本漏洞问题,学到了一个查看进程上下文命令。Step1:先查看jvm进程ps -ef | grep java | grep 你的项目名得知P_IDStep2:查看P_ID进程依赖上下文cat /proc/P_ID/maps |grep 你想过滤的比如我想看P_ID中使用的fastjson版本,就可以cat /proc/82553/maps | grep fastjson...

2020-05-11 10:18:55 308

原创 Etcd是什么

最近在把服务迁移到云上(docker+k8s)的时候,发现k8s是基于etcd做分布式资源管理的,etcd和zk在的核心都是做分布式服务的注册中心(统一资源配置),用法上略有不同。从官网上来看:ETCD:etcdis a strongly consistent, distributed key-value store that provides a reliable way to store data that needs to be accessed by a distributed sys.

2020-05-09 11:01:02 587

C程序设计(第三版).谭浩强.清华大学出版社.zip

C程序设计(第三版).谭浩强.清华大学出版社pdf,因为看有些地方下载需要积分太多,不利于该资源的传播,所以重新压缩了下

2019-07-19

同济大学线性代数.zip

同济大学线性代数高清pdf。

2019-07-01

SSH整合JAR(附带一些开发常用的jar)

适合新手开发一些小项目,里面是开发必须的jar,没有多余的。

2015-04-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除