自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(153)
  • 资源 (4)
  • 收藏
  • 关注

原创 G1的原理整理

G1的原理整理

2023-08-15 16:18:15 367

原创 jvm-Stop the world

Stop the world 介绍什么是Stop the world?Java中Stop-The-World机制简称STW,Java中一种全局暂停现象,全局停顿,所有Java代码停止,native代码可以执行,但不能与JVM交互。等待所有用户线程进入安全点后并阻塞,做一些全局性操作的行为。在执行垃圾收集算法时,Java应用程序的其他所有线程都被挂起(除了垃圾收集帮助器之外)。Stop-The-World对系统性能存在影响,因此垃圾回收的一个原则是尽量减少“Stop-The-World”的时间

2020-07-29 19:55:29 1120

原创 JVM参数调优总结 -Xms -Xmx -Xmn -Xss

“-Xmx1024m -Xms1024m -Xmn512m -Xss256k”——Java运行参数(转)JVM的堆的内存,是通过下面面两个参数控制的-Xms最小堆的大小,也就是当你的虚拟机启动后,就会分配这么大的堆内存给你-Xmx是最大堆的大小当最小堆占满后,会尝试进行GC,如果GC之后还不能得到足够的内存(GC未必会收集到所有当前可用内存),分配新的对象...

2020-04-08 10:17:45 45653 2

原创 代码重构的技巧方法与代码整洁之道整理

代码重构的技巧方法重构是指这样一个过程:在不改变代码外在行为的前提下,对代码做出修改,以改变程序的内部结构,本质是指代码写好后的设计改进,提高可理解性,降低修改成本。什么时候重构:1.三次原则,多次重复的事情,想办法重构2.添加新的功能时候3.修补错误时重构4.复审代码时候重构为什么要重构:1.完成今天的任务,我们还要考虑明天;2.难于阅读的程序,难以修改;...

2018-11-22 21:59:10 6998

转载 设计模式

23种设计模式23种模式java实现源码收集五年的开发资料下载地址:  http://pan.baidu.com/share/link?shareid=3739316113&uk=4076915866#dir/path=%2Fstudy一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种

2016-01-11 14:16:14 534

原创 生命之重-ICU门口的守望人

不久,主治医生打开ICU的门,将我们叫到病房边的一间小屋内,向我们介绍病人的情况,并让我们签署一份文件(涉及对母亲采取的一系列治疗措施),其中包括一份令人胆颤心惊的病危通知书。幸运的是,第二天母亲醒来,下午转到ICU病房进行脑部CT检查,我短暂地见到了母亲,她看到了我,甚至还叫出了我的小名,那一刻感觉是最亲切的呼唤。因此,高血压患者若出现头痛、恶心、呕吐等相关症状,应提前进行这项检查,以便早日接受介入性治疗,如使用弹簧圈、密网支架等措施,以解除这个随时可能引发危险的“定时炸弹”。

2024-04-02 15:59:37 518

原创 Gradle学习

Gradle Java 构建入门_w3cschoolMac OS下安装GradleMac OS下安装Gradle - 简书IntelliJ IDEA如何导入Gradle项目 IntelliJ IDEA如何导入Gradle项目 - 朱砂痣 - 博客园查看依赖关系:Gradle 查看包的依赖关系 - 简书./gradlew :backend(XX):dependencies安装gradle view 快速查看Gradle项目包依赖_Mars-xq的博客-CSDN博客_gradle 检查依赖idea与gradle

2022-07-04 15:43:39 744 1

原创 一些长时间GC停顿问题的排查及解决办法

一些长时间GC停顿问题的排查及解决办法https://blog.51cto.com/u_15009384/2562336服务调用一切正常,偶发性某个时间点超时,和fullGc的点重合;观察gc日志,发现可能有问题的点:2021-08-04T21:54:36.907+0800: 16523930.991: [CMS-concurrent-sweep: 0.909/0.909 secs] [Times: user=0.75 sys=0.43, real=0.91 secs]CMS: abort pr

2021-08-05 19:26:13 419

原创 实现幂等性方案总结

2021-02-02 17:15:26 211

原创 数据库连接池相关-druid相关介绍及源码分析

各种数据库连接池对比主要功能对比 Druid BoneCP DBCP C3P0 Proxool JBoss Tomcat-Jdbc LRU 是 否 是 否...

2021-01-28 17:43:45 860

原创 如何提升弹幕互动的思考

弹幕作为一种亚产品,已经越来越被音视频产品所广泛使用。有像B站一样从右至左快速飞过的传统文字弹幕,以及在此基础上添加了表情、昵称、互动功能的各类升级版弹幕,也有以QQ音乐为代表的自下而上浮现的气泡式弹幕。弹幕产品的本质可以是说以内容为载体的“注意力经济”。作为内容,其表现形态是文字,其视觉表达依赖于字数、字体、字色、字号、底图(色)、动效的运用。作为注意力经济,它的产生则要从需求的源头谈起。今天我们就来分析一下弹幕产品究竟是如何产生的,并在此基础上思考如何深挖弹幕产品潜力,最终提高用户活

2021-01-18 17:03:19 1073 1

原创 概要设计模板

概要设计模板需求背景 需求文档:链接 背景描述: 性能要求 最大QPS: 响应时间: TP9999为50ms 影响点分析列举影响的项目和相关功能业务流程附上业务流程图存储设计表结构设计、缓存设计等,如果用了其它存储,也请说明接口设计可以附上链接例:2tb_sXXX(星球主题品类) 字段 类型 说明 id ...

2021-01-12 17:43:18 332

原创 spring boot jar冲突问题集锦

spring boot jar冲突问题集锦本文主要总结下spring boot项目搭建过程中,冲突解决的一些小经验1、日志jar包冲突:1.1、日志主要是spring boot自带spring-boot-starter-logging的排除,一是要用log4j2,二是xdcs不排除这个也会有冲突。(隐秘程度:低;重要程度:高)<exclusion><artifactId>spring-boot-starter-logging</artifactId.

2021-01-12 17:26:30 870

原创 fullGC总结

1.tomcat 线程池线程不回收导致频繁fullgc查看tomcat线程池,线程池中线程数达到2000tomcat6 线程池配置参数解读tomcat配置手册线上环境,引用tomcat 线程池配置<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"maxThreads="2000" maxQueueSize="2000"/>最大活跃线程数配置2000(相当于线程池最大核心...

2021-01-12 17:10:42 411

原创 CodeReview总结

codereview重点排查原则: 代码都要经过review才能上线 小组内交叉review 输出review记录 步骤: 先过静态代码扫描。 讲解项目设计和代码结构。 线下交叉review,打好todo tag。 组织小会针对todo tag讨论,明确是否需要修改,做好会议纪要。 重点review内容: 配置:资源配置正确性,重点关注数据库、redis、dubbo等中间件连接池配置,连接池大小、超时时间。 ..

2021-01-12 16:55:38 302

原创 mysql数据库采坑总结:

数据库采坑总结:1.socketTimeout和connectTimeout和queryTimeOut未配置问题:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://mysql-XXXXXX/dataName?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&s.

2021-01-12 16:54:27 214

原创 csv以及excel文件解析

<!-- csv文件解析依赖 --><dependency> <groupId>com.opencsv</groupId> <artifactId>opencsv</artifactId> <version>4.3.2</version></dependency><dependency> <groupId>org.projectlombok&lt.

2020-07-30 18:54:11 1226

原创 Java IO流关闭问题的研究

包装流的close方法是否会自动关闭被包装的流?平时我们使用输入流和输出流一般都会使用buffer包装一下,import java.io.BufferedOutputStream;import java.io.FileOutputStream;import java.io.IOException;public class IOTest { public static void main(String[] args) throws IOException { F...

2020-06-08 17:06:08 532 1

原创 索引优化及规则

索引创建规则:1、表的主键、外键必须有索引;2、数据量超过300的表应该有索引;3、经常与其他表进行连e799bee5baa6e59b9ee7ad9431333262353331接的表,在连接字段上应该建立索引;4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;5、索引应该建在选择性高的字段上;6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:A、正确选择复合索引中的主列字段,

2020-06-01 10:36:34 153

原创 评论系统总结(如何抗住大UGC)

1.评论服务的基本业务需求;常见的评论系统主要有三种:楼中楼模式、流模式和引用模式(都是我自己起的名字),下面集中介绍这三种的优劣势以及实现方法。https://blog.csdn.net/Kit_G/article/details/79855964https://blog.csdn.net/qq_40962427/article/details/893044642.评论服务...

2020-03-24 16:15:14 466

原创 newCachedThreadPool, newFixedThreadPool, newScheduledThreadPool ,newSingleThreadExecutor 用法

java线程池:Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool 创建一个定长线程池,支持...

2020-01-08 19:55:38 280

原创 Druid 数据库连接池介绍及配置

1. Druid是什么?Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。2. 在哪里下载druid 正式版本下载: maven中央仓库:http://central.maven.org/maven2/com/alibaba/druid/ 3. 怎么获取Druid的源码Druid是一个开源项目,源码托管在github上,源代码仓库地址...

2020-01-08 19:41:49 1239

原创 Java并发容器大合集

概述java.util包中的大部分容器都是非线程安全的,若要在多线程中使用容器,你可以使用Collections提供的包装函数:synchronizedXXX,将普通容器变成线程安全的容器。但该方法仅仅是简单地给容器使用同步,效率很低。因此并发大师Doug Lea提供了java.util.concurrent包,提供高效的并发容器。并且为了保持与普通的容器的接口一致性,仍然使用u...

2020-01-08 19:36:38 155

原创 Java中CAS详解

Java中CAS详解在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁.锁机制存在以下问题: (1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。 (2)一个线程持有锁会导致其它所有需要此锁的线程挂起。 (3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险。 ...

2020-01-08 17:36:02 217

原创 常用序列化方式

一些常用Java序列化框架的比较:https://www.cnblogs.com/lgjlife/p/10731099.html几种常用的Java序列化技术:http://fendou.net.cn/index.php/Home/Index/article/aid/20191117205159347下面介绍几种常用的Java序列化技术,耗时比较,单位纳秒0.002511:co...

2020-01-08 16:25:19 522

原创 分布式任务调度系统

目前市场上比较流行的,xxl-job:https://www.xuxueli.com/xxl-job/我们公司进行二次开发,叫做hawk,大致的结构图:hawk-core接入客户端部分,通过ApplicationEvent监听,进行job注册,public class ClientLifecycleListener implements ApplicationListene...

2020-01-08 13:58:11 400

原创 redis使用总结:

redis官网:https://redis.io/经典博客:https://blog.csdn.net/qq_40693171/article/details/97437427springboot整合spring Cache(redis):https://blog.csdn.net/qq_40693171/article/details/99676253Springboot整合redi...

2020-01-07 19:58:12 161

原创 MySQL 分库分表

MySQL 分库分表:https://cloud.tencent.com/developer/article/1539420众所周知,数据库很容易成为应用系统的瓶颈。单机数据库的资源和处理能力有限,在高并发的分布式系统中,可采用分库分表突破单机局限。本文总结了分库分表的相关概念、全局ID的生成策略、分片策略、平滑扩容方案、以及流行的方案。1 分库分表概述在业务量不大时,单库单表即可...

2020-01-07 17:17:26 337

原创 TiDB 简介

TiDB 简介:https://pingcap.com/docs-cn/(这篇文章整理的挺全面的)TiDB 是 PingCAP 公司设计的开源分布式 HTAP (Hybrid Transactional and Analytical Processing) 数据库,结合了传统的 RDBMS 和 NoSQL 的最佳特性。TiDB 兼容 MySQL,支持无限的水平扩展,具备强一致性和高可用性。T...

2020-01-07 16:56:26 1724

原创 kafka总结

1.1 Kafka的特性:- 高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition, consumer group 对partition进行consume操作。- 可扩展性:kafka集群支持热扩展- 持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失- 容错性:允许集群中节点失败(若副本数量...

2020-01-07 16:39:01 312

原创 HDFS总结

一、简介:HDFS(Hadoop Distributed File System),作为Google File System(GFS)的实现,是Hadoop项目的核心子项目,是分布式计算中数据存储管理的基础,是基于流数据模式访问和处理超大文件的需求而开发的,可以运行于廉价的商用服务器上。它所具有的高容错、高可靠性、高可扩展性、高获得性、高吞吐率等特征为海量数据提供了不怕故障的存储,为超大数据集...

2020-01-07 15:22:58 960

原创 Hbase总结

HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是谷歌BigTable的开源实现,主要用来存储非结构化和半结构化的松散数据。HBase的目标是处理非常庞大的表,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列元素组成的数据表。hbase介绍:https://www.jianshu.com/p/53864dc3f7...

2020-01-07 14:43:44 137

原创 跨域问题以及如何手写一个代理服务实现postman功能

写一个代理工具服务,所有的请求经过此服务转发到不同的服务,可以统一处理跨域问题,只要允许这个服务的请求即可。中转工具: https://blog.csdn.net/xxssyyyyssxx/article/details/729544991. 用户浏览器自己放开跨域限制: https://www.jianshu.com/p/2db73311fcbe2. nginx部分一些对域名的操作:...

2020-01-07 14:12:20 556

原创 RabbitMq使用总结

RabbitMq使用总结:一: rabbitMq相关的介绍:镇楼的官网:https://www.rabbitmq.comhttps://www.cnblogs.com/xiangyuqi/p/8603993.html概念介绍:https://www.jianshu.com/p/3ba4c1883c3dRabbitMQ的基础介绍:https://www.cnblo...

2020-01-07 13:42:47 6581

原创 javaweb获取Ipv6

request.getRemoteAddr()取得的是IPv6的地址格式解决方法:https://www.cnblogs.com/labao/p/6715879.htmlIPV6地址格式分析:https://www.cnblogs.com/lsgxeva/p/9209266.htmlhttps://blog.csdn.net/qq125293177/article/details/...

2019-12-26 17:15:41 2398 1

原创 infuxDB使用总结

infuxDB官网:https://docs.influxdata.com/influxdb/v1.7/introduction/getting-started/InfluxDB中文文档:https://jasper-zhang1.gitbooks.io/influxdb/content/infuxDB v2 官网:https://v2.docs.influxdata.com/v2.0/r...

2019-12-12 18:28:10 507

原创 maven使用总结

参考使用文档:https://www.yiibai.com/maven/maven_environment_setup.htmlMaven 基本概念:http://qiankunli.github.io/2019/02/14/maven_concept.htmlmaven插件调试方法:https://www.cnblogs.com/xiaoxi666/p/9570826.html...

2019-12-12 15:59:19 89

原创 git使用总结

git官网:https://git-scm.com/docs/gitgit常用命令:https://blog.csdn.net/lxw198902165221/article/details/89228458项目忽略提交设置:https://www.cnblogs.com/YangJieCheng/p/8175761.html图形化管理工具-sourcetreegit config...

2019-12-12 15:42:12 86

原创 phantomjs自动截图生成图片

https://www.jianshu.com/p/41d5e08af0a7https://www.cnblogs.com/bangejingting/p/6907628.html有时候我们需要定时的生成一些报表图片,或者通过钉钉等发送给对应用户或群组;第一步,本地生成报表,可以用baiduEchart等https://www.echartsjs.com/zh/tutorial.h...

2019-12-12 15:16:40 559

原创 左耳朵耗子给出的学习指南

左耳朵耗子给出的学习指南参考文档:https://blog.csdn.net/haoel建议:不要乱买书,不要乱追新技术新名词,基础的东西经过很长时间积累而且还会在未来至少10年通用。ps:数据库发展很快,sql语法长存,java变化也很快,基础语法保留;回顾一下历史,看看历史上时间线上技术的发展,你才能明白明天会是什么样。一定要动手,例子不管多么简单,建议至少自己手敲一遍...

2019-12-12 14:34:14 840

Tomcat性能优化篇笔记.pdf

Tomcat性能优化篇笔记.pdf

2020-06-05

propties配置管理jar

propties配置管理,提供接入自己的propties平台。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

2018-01-08

JavaScript面向对象

JavaScript面向对象主要简单介绍,初级入门级别。

2016-01-26

mysql使用与说明,快捷

MySQL常用命令汇总》_非常详细_值得下载

2014-12-03

空空如也

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

TA关注的人

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