自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (2)
  • 收藏
  • 关注

原创 【java基础知识】『7』JVM调优参数详解

(1)jps显示系统内所有的HotSpot虚拟机进程option参数-l: 输出主类全名或jar路径 -m: 输出JVM启动时传递给main()的参数示例 (1.1)# jps -l -m28920org.apache.catalina.startup.Bootstrapstart(2)jmap生成指定进程的堆使用情况 option参数histo : 显示堆中对象的统计信息 heap : 显示Java堆详细信息示例(2.1)# jma...

2021-02-03 15:31:10 150

原创 【java基础知识】『6』java内存屏障&缓存一致性应用&volatile深理解

缓存一致性协议:就是任何一个线程更改了数据,都会通知其它线程从主内存获取最新的数据大家都知道,CPU是计算机的心脏,最终由它来执行所有的运算和程序。主内存是数据(包括代码行)存放的地方。在计算机系统中,CPU高速缓存是用于减少处理器访问内存(主)所需平均时间的部件,当处理器发出内存访问请求时,会先查看缓存是否有请求数据,有:则不访问主内存直接返回该数据;无(失效):则先把主内存中的相应数据载入缓存,再将其返回处理器。CPU缓存层级分为L1(<=256k,一级缓存)、L2(256k-8m,二级缓存)

2020-11-26 17:05:45 259

原创 【kafka】『2』kafka为什么能快速处理海量数据

在使用kafka时,我们经常会想,为什么kafka能够达到如此巨大的数据吞吐量?这与kafka的很多设计哲学是分不开的,比如分区并行、ISR机制、顺序写入、页缓存、高效序列化、零拷贝等等,由于kafka的消息存储涉及到海量数据读写,所以利用零拷贝能够显著的降低延迟,提高效率。(linux内核中的函数sendfile()就是零拷贝)(1)零拷贝的原理...

2020-11-24 16:18:32 364

原创 【Redis】『2』NIO在redis中的应用和演变

关于I/O多路复用(事件驱动),首先要理解的是,操作系统为你提供一个功能,当你的某个socket可读或可写的时候,它可以给你一个通知。这样当配合非阻塞的socket使用时,只有当系统通知我哪个描述符可读了,我才去执行read操作,可以保证每次read都能读到有效数据而不做纯返回或无用功,写操作类似,操作系统的这个功能是通过select/poll/epoll/kqueue之类的系统调用函数来实现,这些函数都可以见识多个描述符的读写就绪状况,这样,多个描述符的I/O操作都能在一个线程内并发交替的顺序完成,这就叫

2020-11-24 16:08:47 177

原创 【MySQL 】数据库加锁机制分析

一、InnoDB模式:(1)行锁 (1.1)行锁分类:共享锁(S):允许一个事务去读一行,阻止其它事务获得相同数据集的排它锁 排它锁(X):允许获得排它锁的事务更新数据,阻止其它事务取得相同数据集的共享锁和排它锁 意向共享锁(IS):事务在给一个数据行加共享锁前必须先取得该表的IS锁 意向排它锁(IX):事务在给一个数据行加排它锁前必须先取得该表的IX锁 锁模式的兼容情况 共享锁 排它锁 意向共享锁 意向排它锁 共享锁 兼容 互斥...

2020-09-10 17:40:32 81

原创 【java基础知识】『5』ThreadLocal@Thread@ThreadLocalMap的关系认识&内存泄漏原因分析

Thread,ThreadLocal,ThreadLocalMap 关系如下图通过源码发现,ThreadLocalMap 是Thread的一个类变量,之所以能让线程之间的数据互相不受影响,就是这个原因,如下:而Entry[]又是ThreadLocalMap的一个成员变量,它是针对一个线程有多个ThreadLocal变量使用的情况,其对象Entry的Key和Value分别是我们的Th...

2020-03-13 16:59:37 449 2

原创 【java基础知识】『4』JVM内存模型之Heap(堆)内存分析

JVM内存模型中,Heap区被分为新生代和老年代两个区域,新生代又分为Eden+Survivor1+Survivor2新生代收集算法主要是使用复制算法,老年代收集算法主要使用标记-清理或标记-整理算法。堆内存划分如下:新生代在发生首次YGC的时候,Eden内存活的对象会被复制到S1;再发生YGC的时候,Eden内存活的对象和S1内存活的对象复制到S2,同时清除Eden内的对象和S1...

2020-02-28 10:41:57 510

原创 【SpringBoot】SpringBoot aop的execution 表达式详解

Aspectj切入点语法定义在使用spring框架配置AOP的时候,不管是通过XML配置文件还是注解的方式都需要定义pointcut"切入点"例如定义切入点表达式 execution (* com.sample.service.impl..*.*(..))execution()是最常用的切点函数,其语法如下所示:整个表达式可以分为五个部分:1、execution(): 表...

2019-08-15 10:58:33 745

原创 【Docker】Harbor镜像仓库管理搭建以及使用过程(基于CentOS7)

1、安装Docker,建议安装最新版的,我安装的是Docker version 18.09.6, build 481bc77156直接使用阿里云的配置方式(https://yq.aliyun.com/articles/110806?spm=5176.8351553.0.0.6d5819915Yppt7)# step 1: 安装必要的一些系统工具sudo yum install -y y...

2019-06-02 21:22:06 427 2

原创 【SpringBoot】SpringBoot aop的execution 表达式详解

Aspectj切入点语法定义在使用spring框架配置AOP的时候,不管是通过XML配置文件还是注解的方式都需要定义pointcut"切入点"例如定义切入点表达式 execution (* com.sample.service.impl..*.*(..))execution()是最常用的切点函数,其语法如下所示:整个表达式可以分为五个部分:1、execution(): 表...

2019-03-22 09:53:25 1501

原创 【java基础知识】『3』JVM类生命周期过程

程序运行时,类的生命周期有加载、验证、准备、解析、初始化五个过程。(1)、准备JVM为类变量分配内存以及初始化 java中的变量有2种类型,分别为类变量(被static修饰的变量)和类成员变量(除了类变量的其它变量) 在准备阶段,JVM只会为类变量分配内存, 而不会为类成员变量分配内存,到初始化阶段才会为类成员变量分配内存(1.1)、初始化的类型 在准备阶段,...

2019-03-18 16:44:28 198

原创 【Timescaledb】时序数据库的原理简单介绍&实际操作安装

关于Timescaledb 的Hypertable函数的参数,详见https://docs.timescale.com/v1.1/api#create_hypertable有具体的说明(一)、create_hypertable()函数timescaledb 官网create_hypertable()函数的参数截图几个重要的参数:1、chunk_time_interval:块覆盖时间精...

2019-01-21 11:39:38 5765

原创 【java基础知识】『2』Byte一个字节的数据大小范围为什么是-128~127

一个字节是8位,最高位是符号位,最高位为0则是正数。最高位为1则是负数如果一个数是正数,最大数则为:01111111,转为十进制为127,如果一个数是负数,按照一般人都会觉得是11111111,转为十进制为-127,但是:一个+0表示为:00000000,一个-0表示为:1000000,因为符号位不算在里面,所以就会有两个0,所以从一开始发明二进制的时候,就把-0规定为-128,如此二...

2018-12-18 16:32:05 1993

原创 【Kafka】Consumer均衡、Consumer消费组

一、kafka的Consumer均衡算法有一个topic:topic_test,然后这个topic的partition和他们所在的broker的图如下1.其中 broker有两个,也就是服务器有两台。2.partition有6个,分布按照如图所示,按照哈希取模的算法分配。3.消费者有8个,他们属于同一个消费组。如果按照如图所示,那么这一个消费组中的消费者会怎么取kafka的数据...

2018-12-04 11:34:47 535

原创 【MySql】数据库索引-B-Tree

索引索引的目的:提高查询效率原理:通过不断的缩小想要获得数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件,也就是我们总是通过同一种查找方式来锁定数据。数据结构:B+树图解B+树与查找过程:如上图,是一颗b+树,关于b+树的定义可以参见B+树,这里只说一些重点,浅蓝色的块我们称之为一个磁盘块,可以看到每个磁盘块包含几个数据项(深蓝色所示)和指针(黄色所示),如...

2018-08-21 15:16:33 394

原创 【SQL语句】灵活SQL语句

1、查询数学成绩排名select stid, name, score, (select count(*) from stuscore s where s.subject='数学' and s.score &gt; score)+1 from stuscore where subject='数学' order by score灵活点:用一个子查询查询出比当前人成绩大的有多少人,那么有多少人就是第...

2018-05-10 11:20:06 397

原创 【Git】常用命令和操作

1、查看远程分支:$ git branch -a2、查看本地分支:$ git branch3、切换分支:$ git checkout branchName4、删除本地分支:$ git branch -d branchName注意事项:[目录上的*代表当前正处于的工作目录](二)、提交代码git提交代码的五个步骤:1、查看代码的修改状态2、查看代码的修改内容3、暂存需要提交的代码4、提交已暂...

2018-05-09 13:59:41 278

原创 【SpringColud】微服务框架 SpringColud

SpringColud为开发者提供了在分布式系统(配置管理,服务发现,熔断,路由,微代理,控制总线,一次性token,全局锁,leader选举,分布式session,集群状态)钟快速构建的工具。先简单阐述下Spring Colud中文社区对四个基础关键组件的描述:(一)、Spring Colud Config配置中心Spring Colud Confi...

2018-03-28 11:01:37 2329

原创 【Maven】常用基础知识整理

一个常用的maven项目的pom.xml文件配置如下:&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://mave...

2018-03-23 13:20:07 192

原创 【Zookeeper】第二期:搭建

Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被 称为一个“集合体”(ensemble)Zookeeper通过复制来实现高可用性,只要...

2018-02-26 13:42:06 162

原创 【Zookeeper】第一期:简单介绍

一、分布式协调技术在给大家介绍ZooKeeper之前先来给大家介绍一种技术——分布式协调技术。那么什么是分布式协调技术?那么我来告诉大家,其实分布式协调技术 主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成"脏数据"的后果。这时,有人可能会说这个简单,写一个调 度算法就轻松解决了。说这句话的人,可能对分布式系统不是很了解,所以才会出现这种误解。如果这些进程...

2018-02-26 13:05:01 231

原创 【Nginx】配置location root

https://jasonhzy.github.io/2016/08/25/nginx-alias-root/http://blog.csdn.net/21aspnet/article/details/6583335nginx指定文件路径有两种方式root和alias,root与alias主要区别在于nginx如何解释location后面的uri,这会使两者分别以不同的方

2017-11-20 13:56:54 11407

原创 【java基础知识】『1』classpath的几点理解

src不是classpath,而是源码路径, WEB-INF/classes,lib才是classpathWEB-INF/ 是资源目录, 客户端不能直接访问,这话是没错,不过现在的IDE编译器在编译时会把src下的文件(是文件,不是.java)移到WEB-INF/classes下。不过值得注意的是,spring配置文件里这个locations是uri表示,也就是说你写的jdbc.pr

2016-08-31 09:51:40 661 1

原创 【线程池】java线程池执行流程理解

有时候项目中要使用到队列和多线程,写个例子留着随笔,方便后续使用大家都知道,多线程是为了能更高效的运行程序,而线程池是为了控制一个进程中线程过多而导致内存溢出的问题,队列主要是为了解决了某一时刻请求过多而出现的宕机情况,同时能接收处理更多的请求,可以将多个请求放置到队列中,等待线程依次执行,而客户端则可以继续处理其它事情。线程池和队列执行顺序:1、线程池刚创建时,里面没有一个

2016-05-31 14:41:44 1082

原创 【Redis】『1』为什么Redis内存不宜过大

redis这个内存数据库,它的高性能、稳定性都是不用怀疑的,但我们塞进redis的数据过多,内存过大,那如果出问题,那它可能会带给我们的就是灾难性。作者:程超来源:网络|2016-05-23 09:54这几年的线上业务表明,redis这个内存数据库,它的高性能、稳定性都是不用怀疑的,但我们塞进redis的数据过多,内存过大,那如果出问题,那它可能会带给我们的就是灾难性(我

2016-05-23 11:36:17 31862 4

原创 【网络基础知识】Http协议与TCP协议简单理解

在java编写代码,很多时候会遇到Http协议或者TCP协议,这里做一个简单的理解。TCP协议对应于传输层,而HTTP协议对应于应用层,从本质上来说,二者没有可比性。Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发出一次Http请求。Http会通过TCP建立起一个到服务器的连接通道,当本次请求需要的数据完毕后,Http会立即将TCP连接断开,这个过程是

2015-09-13 23:33:23 1358

数据库知识

这是一根很不错的sqlserver代码哦

2013-07-15

javascript使用

主要讲述的是javascript的使用方法以及更详细的使用方法

2012-05-29

空空如也

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

TA关注的人

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