自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

行而不辍,未来可期 - King

不要让霓虹灯和人群的喧嚣影响了自己前进的方向~

  • 博客(276)
  • 资源 (7)
  • 收藏
  • 关注

原创 NIO的核心三组件

在NIO中有几个核心组件:选择器(Selector)、缓冲区(Buffer)、通道(Channel),具体了解一下。

2021-01-22 18:34:30 762

原创 Java IO的演进

一个系统的性能遵循木桶原理,IO的性能的高低直接影响着一个系统的吞吐量,尤其在高并发的场景下,IO的优化就是那个key-point之一。

2021-01-21 20:26:31 464 1

原创 G1调优分析

c++和java之间有一堵由内存动态分配和垃圾收集技术所围成的墙,墙外面的人想进去墙里面的人想出来。

2020-11-29 18:46:06 1648 1

原创 G1垃圾收集器

C++和Java之间有一堵由内存动态分配和垃圾收集技术所围成的墙,墙外面的人想进去墙里面的人想出来。

2020-11-28 14:11:07 904

原创 MySql主从复制及延迟

主从延迟问题又称为“过期读”问题,是数据一致性问题;另外,对于MySQL数据库来说,任何时刻尽量不允许大事务的执行;若要执行,则将大事务拆成一个个小的子事务来执行,这是最基本心法口诀。

2020-11-27 17:37:40 463

原创 MySql死锁分析

在我们使用锁的时候,有一个问题是需要注意和避免的,我们知道,排他锁有互斥的特性。一个事务或者说一个线程持有锁的时候,会阻塞其他线程的获取锁,这个时候会造成线程的阻塞和等待,如果说是循环等待,就有可能造成死锁。

2020-11-27 10:36:33 324

原创 Innodb中的锁

目标:并发场景下加锁保证数据访问的安全性的同时,又要保证性能。无锁编程: 自旋锁 自适应自旋锁 无锁:cas 加锁的优化: 特点: 粒度控制的更细 减少锁的阻塞 一种试探性的算法 — 显的更加智能 锁消除 锁粗化 偏向锁:只有a去竞争,重入锁的实现; 轻量级锁:a和b交替竞争 - aqs 重量级锁【真正的加锁】:多个线程并发去竞争 - aqs 粒度锁..

2020-11-26 17:22:43 281

原创 数据库事务与隔离级别

事务:要么什么都做,要么都不做,没有中间状态。 All or Nothing。

2020-11-26 11:45:05 188

原创 再聊索引

尽量减少访问磁盘的次数是数据库设计的重要原则之一; 每个索引在innodb里都是一颗B+树,一张表由多棵B+树组成

2020-11-26 09:32:05 151

原创 CAS思想

从锁的角度出发看CAS机制,在多任务环境中,如果有对共享变量的写操作,一般想到都会加锁,加锁固然没错,但是对于性能来说是一个很大的消耗,会使线程阻塞。而基于CAS机制的乐观锁,实现很简单,在高并发中,对于程序性能的提升有很大的帮助,思想很重要。

2020-11-25 14:48:36 996

原创 FutrueTask原理分析

通常一个请求分为请求-处理-返回,如果通过异步线程去完成一个任务,我们通常会选择FutureTask +Submit+ Callable()来实现获取返回值。

2020-11-25 09:44:18 904

原创 AQS与Reentrantlock的实现

锁的基本原则:把多线程的并行任务通过某种机制实现线程的串行化执行达到线程安全的目的。

2020-11-24 13:20:26 611

原创 ThreadLocal的原理

ThreadLocal是一种线程隔离机制,为我们提供了另一种解决线程并发访问的问题,利用副本机制解决了并发变量访问安全,采用了空间换时间的策略。

2020-11-24 11:47:25 512 1

原创 再聊线程池原理

面对资源限制,为了更好的掌握充分利用有限的资源,所以有很多的池化技术,比如对象池,线程池,连接池等等,主要是用来更好的利用和控制池子里的资源,不至于线程过多导致系统内存,cpu,网络资源不足,过少又浪费cpu性能。

2020-11-23 23:16:39 217

原创 降级限流

对于高可用的服务,除了尽量保证自身的服务的可靠性外,还的防止不被上游压垮,控制上游的访问一般使用限流策略,避免被下游服务不可用拖垮,一般采取降级策略,只有更好的了解和控制上下游才能使自身的服务的稳定性增强。

2020-11-23 19:37:39 1233

原创 理解微服务SpringCloud

微服务是互联网发展的必经之路,它是安姆达尔定律取代摩尔定律的最佳体现。

2020-11-23 15:25:52 633

原创 SpringBoot日志模块分析

日志是了解系统运行的显示器,了解系统的指示牌,问题追踪器,数据运营分析的基础。

2017-06-04 18:11:58 1156 1

原创 SpringBoot自定义starter

Starter主要是在根据条件帮我们做Bean的自动装配。包括包扫描,加载,实例化和注册Bean,提供一种开箱即用的组件。

2017-06-04 17:40:21 882

原创 SpringBoot的启动原理

SpringBoot最终还是对Spring框架的封装,主要任务还是在做(IOC)控制反转,(DI)依赖出入和(DL)依赖查找,实现自动化装配,一切交给spring托管,更好的完成各功能的集成。

2017-05-09 19:32:05 1626

原创 一个http请求的完整旅途

输入一个网址就能跳转到相应的服务器,那么这个响应背后的整体流程是什么样的呢?

2017-05-09 18:48:16 1140 2

原创 Spring的AOP流程

一种技术的诞生,主要是思维模式的改变,有C的面向过程,到C++/java的面向对象,到面向类,面向方法编程的AOP,最后到面向服务编程的微服务。

2017-05-07 19:11:08 1812

原创 Spring的IOC初始化流程

Spring的出现就是为了更好的管理Bean,而IOC/DI/DL又是Spirng的核心,IOC在Spring中可以简单的理解为一个Map容器,帮我们管理控制着Bean的生命周期。

2017-05-07 19:06:09 873

原创 了解线程池

并发处理的广泛应用是使得 Amdahl定律代替摩尔定律成为计算机性能发展源动力的根本原因,也是人类压榨计算机运算能力最有力的武器。

2016-08-31 21:50:10 2062 3

原创 线程的启动与停止

中断线程仅仅只是优雅的打个招呼,改变一个状态位,具体怎么做完全取决于线程自己,让程序有时间去完成一些未完成的事情,释放资源等,温柔以待。

2016-08-31 21:25:30 1844 1

原创 了解线程

并发处理的广泛应用是使得 Amdahl定律代替摩尔定律成为计算机性能发展源动力的根本原因,也是人类压榨计算机运算能力最有力的武器。线程也是一把双刃剑,帮我们充分利用cpu高效快速的完成任务的同时也带来了线程安全和性能相关的问题。

2016-08-30 16:36:50 1578 2

原创 Synchronized锁

多线程对共享变量的写操作容易产生线程安全问题。

2016-08-30 16:07:29 1646 1

原创 了解volatile

volatile核心价值:保证访问写变量的可见性。

2016-07-16 16:55:57 1911 3

原创 Java内存模型JMM

java内存模型的核心价值:保证变量的可见性,有序性和原子性。

2016-07-16 16:39:43 2737 2

原创 内存泄漏与溢出

c++和java之间有一堵由内存动态分配和垃圾收集技术所围成的墙,墙外面的人想进去墙里面的人想出来。

2016-07-16 16:33:25 2048

原创 jvm性能监控与问题分析工具

工欲善其事,必先利其器。工具的本身还是底层命令的实现,没什么神奇的地方,只是对命令的封装图形化展示让我们使用更加高效和直观。

2016-07-13 19:38:55 3158

原创 强-软-弱-虚引用

如果reference类型的数据中存放的数值是另外一块内存的起始地址,就称这块内存代表着一个引用。为了更好的控制对象的生命周期,提高内存利用率,JDK1.2 之后,java扩充了引用的概念,将引用分为强引用/软引用/弱引用/和虚引用四种。

2016-07-12 16:42:34 4727

原创 CMS垃圾回收器

虽然新出的G1优点明显,但是CMS算法依然是目前项目中使用的最多的垃圾收集器

2016-07-12 16:36:03 2897

原创 垃圾回收算法

c++和java之间有一堵由内存动态分配和垃圾收集技术所围成的墙。墙外面的人想进去墙里面的人想出来。Java/JVM通过gc营造出了一种“无限内存”的假象,正式由于gc的存在,程序员才这么肆无忌惮。

2016-07-12 16:31:36 1475

原创 jvm的工作流程

代码编译的结果从本地机器码转变为字节码,是存储格式的一小步,却是编程语言发展的一大步。

2016-07-12 16:25:27 1512

原创 explain详解

explain(Execution plan cost)就是优化器做的事情。执行计划,很重要!! 只有明白sql是如何执行的,才能更好的优化,先了解它,然后才能优化它,explain就是和mysql优化对话的大门和打开优化器门的钥匙~

2016-07-12 16:12:20 2667

原创 order by语句的执行优化分析

Mysql设计原则之一:如果内存够,就使用内存,尽量减少磁盘的访问。

2016-07-10 15:36:41 1966

原创 了解between和limit及count(*)

设计表结构或者是创建索引的时候,我们的目标就是在满足当前需求的情况下,减少对数据库的io次数,避免大量数据的获取及排序,减少资源的消耗。

2016-07-10 15:31:01 2024

原创 认识索引

每个索引在innodb里都是一颗B+树,一张表由多棵B+树组成,B+树很好的配合了磁盘的读写性能。

2016-07-10 15:24:46 1740

原创 更新sql的执行过程

数据库的查询操作具有天然幂等性,不会对数据库有任何的修改。但是mysql如何实现对数据库的更新操作呢?

2016-06-30 11:06:30 3864 1

原创 查询sql的执行过程

简单的查询一行数据,数据库需要经过那些加工处理才能得到我们需要的数据呢?

2016-06-30 10:31:21 1939

常用linux命令速查表

一款很不错的常用linux命令速查表,舍弃了不常用的命令,让我们更好的玩儿转linux系统。

2015-08-03

quartuesii安装向导文件

下载了好久都没下载成功,并且软件都很大,所以找到了一个很好的quartuesii安装向导。quartuesii 11.0的软件安装向导,下载后先解压,然后加上可执行权限,sudo chmod 755 软件名,然后在执行./软件名,然后就跟安装软件一样安装了! 非常好的quartuesii安装向导。里面还有modusim 和相关的组建都是自动完成!

2014-10-28

linux及c语言库函数精华大全

linux下各种命令大全,还有c语言库函数大全,常用的命令非常齐全!对于初学c语言及linux和ubantu系统的爱好者有很大的帮助!希望可以帮助大家!

2014-04-25

linux下QT截屏小程序

linux下QT中很好的截屏程序,效果非常好!!对于初学者有一定的帮助!!希望可以帮到大家!

2014-04-25

ARM体系结构详解

很好的ARM体系结构讲解!对于初学者很有帮助!

2014-04-25

firefox27.0.1

最新的linux下的firefox浏览器!!

2014-04-25

conky配置汉化包

很好的conky配置汉化包,里面有相应的字体软件及操作说明!!

2014-04-25

空空如也

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

TA关注的人

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