- 博客(29)
- 资源 (2)
- 收藏
- 关注
原创 G1垃圾收集器详解
简介G1(Garbage First)垃圾收集器是当今垃圾回收技术最前沿的成果之一。早在JDK7就已加入JVM的收集器大家庭中,成为HotSpot重点发展的垃圾回收技术。同优秀的CMS垃圾回收器一样,G1也是关注最小时延的垃圾回收器,也同样适合大尺寸堆内存的垃圾收集,官方也推荐使用G1来代替选择CMS。G1最大的特点是引入分区的思路,弱化了分代的概念,合理利用垃圾收集各个周期的资源,解决了其他收集器甚至CMS的众多缺陷。内存模型G1与其他垃圾收集器不同之处在于,heap被划分为一系列大小相等的“
2020-08-02 16:15:06
9390
2
原创 zookeeper那些事
一、 ZooKeeper 简介ZooKeeper 是一个开源的分布式协调服务,ZooKeeper框架最初是在“Yahoo!"上构建的,用于以简单而稳健的方式访问他们的应用程序。 后来,Apache ZooKeeper成为Hadoop,HBase和其他分布式框架使用的有组织服务的标准。 例如,Apache HBase使用ZooKeeper跟踪分布式数据的状态。二、 ZooKeeper 的作用1.1 配置管理在我们的应用中除了代码外,还有一些就是各种配置。比如数据库连接等。一般我们都 是使用配置
2020-06-27 23:09:40
231
原创 kafka使用
Kafka简介什么是 KafkaKafka 是由 Linkedin 公司开发的,它是一个分布式的,支持多分区、多副本,基于 Zookeeper 的分布式消息流平台,它同时也是一款开源的基于发布订阅模式的消息引擎系统。Kafka 的基本术语消息:Kafka 中的数据单元被称为消息,也被称为记录,可以把它看作数据库表中某一行的记录。批次:为了提高效率, 消息会分批次写入 Kafka,批次就代指的是一组消息。主题:消息的种类称为 主题(Topic),可以说一个主题代表了一类消息。相当于是对
2020-06-14 19:56:01
1240
转载 缓存一致性问题简述
需求起因在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。这个业务场景,主要是解决读数据从Redis缓存,一般都是按照下图的流程来进行业务操作。读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(MySQL)间的数据一致性问题。不管是先写MySQL数据库,再删除Redis缓存;还是先删除缓存,再写库,都有可能
2020-06-14 18:01:23
938
原创 树的常用数据结构
1. 二叉树 二叉树是数据结构中一种重要的数据结构,也是树表家族最为基础的结构。 二叉树的定义:二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2i-1个结点;深度为k的二叉树至多有2k-1个结点;对任何一棵二叉树T,如果其终端结点数为n0,度为2的结点数为n2,则n0=n2+1。 二叉树的示例: 满二叉树和完全二叉树: 满二叉树:除最后一层无任何子节点外,每一层上的所有结点都有两个子结点。也可以这样理解,
2020-06-08 23:09:20
1578
原创 Docker总结
一、什么是DockerDocker使用Google公司推出的 Go 语言进行开发实现,基于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。Docker在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护,使得Docker技术比虚拟机技术更为轻便、快捷。Docker可以轻松的为任何应用创建一个轻量级的、可移植...
2019-09-21 21:53:33
430
原创 Redis总结
Redis 简介Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key - value 数据库Redis 与 其他 key - value 缓存产品有以下三个特点: Redis 支持数据持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis 不仅仅支持简单的 key - value 类型的数据,同时还提供 list,set,z...
2019-08-25 19:00:18
198
原创 java并发编程
一、概述在过去单 CPU 时代,一个时间点只能执行单一任务。之后发展到多任务阶段,计算机能在同一时间点并行执行多任务或多进程。虽然并不是真正意义上的“同一时间点”,而是多个任务或进程共享一个 CPU,并交由操作系统来完成多任务间对 CPU 的运行切换,以使得每个任务都有机会获得一定的时间片运行。由于单核cpu性能的限制,多核cpu应运而生,为了提高程序的运行效率,多线程技术开始不断发展,使得在...
2019-05-21 16:50:38
145
原创 TCP三次握手连接和四次挥手断开过程详解
TCP的连接建立是一个三次握手过程,目的是为了通信双方确认开始序号,以便后续通信的有序进行。主要步骤如下:1. 连接开始时,连接建立方(Client)发送SYN包,并包含了自己的初始序号a;2. 连接接受方(Server)收到SYN包以后会回复一个SYN包,其中包含了对上一个a包的回应信息ACK,回应的序号为下一个希望收到包的序号,即a+1,然后还包含了自己的初始序号b;3. 连接...
2019-03-21 22:04:43
1277
原创 我对JVM的认识
一、JVM是什么JVM是Java Virtual Machine(Java虚拟机)的缩写,它可以指一个抽象规范、一个具体实现、一个运行中的虚拟机实例,JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。二、JRE/JDK/JV...
2019-02-28 14:08:08
143
原创 nginx安装部署
一、环境准备本篇采用centos7安装环境1.gcc 安装yum install gcc-c++2.PCRE pcre-devel 安装PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre...
2019-02-21 14:47:21
114
转载 乐观锁与悲观锁
何谓悲观锁与乐观锁 乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源...
2019-02-19 14:38:55
119
原创 常见数据结构
数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成 。常用的数据结构有:数组,栈,链表,队列,树,图,堆,散列表等。每一种数据结构都有着独特的数据存储方式,下面为大家介绍它们的结构和优缺点。1、数组数组是可以再内存中连续存储多个元素的结构,在内存中的分配也是连续的,数组中的元素通过数组下标进行访问,数组下标从0开始。例如下面这段代码就是将数组的第一个...
2019-02-11 14:35:21
295
原创 CentOS 7下搭建配置SVN服务器
1. 安装CentOS通过yum安装subversion。$ sudo yum install subversion subversion安装在/bin目录:$ which svnserve /bin/svnserve检查一下subversion是否安装成功。$ svnserve --versionsvnserve, version 1.7.14 (r154213...
2019-01-10 10:42:13
125
转载 ThreadLocal的使用以及实现原理解析
前言前面的文章里,我们学习了有关锁的使用,锁的机制是保证同一时刻只能有一个线程访问临界区的资源,也就是通过控制资源的手段来保证线程安全,这固然是一种有效的手段,但程序的运行效率也因此大大降低。那么,有没有更好的方式呢?答案是有的,既然锁是严格控制资源的方式来保证线程安全,那我们可以反其道而行之,增加更多资源,保证每个线程都能得到所需对象,各自为营,互不影响,从而达到线程安全的目的,而Threa...
2019-01-03 10:05:38
123
原创 使用OpenOffice实现文件在线预览
一、解决方案方案1:可以直接使用第三方服务,不过这个需要收费的,我在这列几个http://www.yozodcs.com/https://www.idocv.com/http://www.officeweb365.com/方案2:服务器安装office web apps文件浏览服务器,实现文件预览,安装部署方法可自行百度方案3:office转Html、pdf实...
2019-01-02 17:08:19
24724
10
转载 Error:Could not create the Java Virtual Machine. Error:A Fatal exception has occurred,程序将退出。
错误提示信息:Error:Could not create the Java Virtual Machine.Error:A Fatal exception has occurred,Program will exit.如图: 解决办法:1、判断机子是否安装了java环境。具体方法网上搜吧注意设置自己的环境变量:如JAVA_HOME,CLASSPATH,PATH ...
2018-12-27 16:58:49
17575
转载 Mybatis动态插入数据、更新数据
有时我们控制同一张表,但传入的参数不固定,操作表的字段不固定,就要用到mybatis动态插入。xml如下:<insert id="insertMessage" parameterType="com.sf.ccsp.member.client.request.MessageReq"> insert cx_customer_message (ID,MEMB...
2018-10-30 17:44:08
9725
1
转载 cron表达式详解
Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: Seconds Minutes Hours DayofMonth Month DayofWeek Year或 Seconds Minutes Hours DayofMonth Month DayofWeek每一个域可出现的字符如下: Seconds:可出现", - ...
2018-10-28 11:23:31
133
转载 java集群实现定时任务的方案
需求: 有两台服务器同时部署了同一套代码, 代码中写有spring自带的定时任务,但是每次执行定时任务时只需要一台机器去执行。当拿到这个需求时我脑子中立马出现了两个简单的解决方案:利用ip进行判断, 两台机器ip肯定不一样, 指定某一台机器的ip运行。 只在一台机器上部署定时任务的代码。最后两个方案又都被自己否决了。 第一条,如果指定ip的机器出现了问题怎么办? 例如说宕机了, 那么该...
2018-09-05 17:00:39
2255
原创 springboot实现上传和下载
1.添加pom依赖 <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3....
2018-08-01 15:22:51
1587
2
原创 bootstrap-treeview使用
1.导库<script src="static/js1/menu/bootstrap.min.js"></script><script src='static/js1/menu/jquery-1.9.1.min.js'></script><script src="static/bootstrap3/js/bootstrap-treeview...
2018-06-20 15:00:49
267
原创 springboot入门
前言Spring一直是很火的一个开源框架,在过去的一段时间里,Spring Boot在社区中热度一直很高,所以决定花时间来了解和学习,为自己做技术储备。正文首先声明,Spring Boot不是一门新技术,所以不用紧张。从本质上来说,Spring Boot就是Spring,它做了那些没有它你也会去做的Spring Bean配置。它使用“习惯优于配置”(项目中存在大量的配置,此外还内置了一个习惯性的配...
2018-06-14 10:57:28
232
原创 jQuery.tablesorter插件实现排序
简介Tablesorter 是一个用来直接在浏览器上对表格数据进行排序的jQuery插件,无需再次刷新页面,支持多种单元格数据类型,例如数值、字符串、日期和自定义排序。使用 <link href="<%=basePath %>static/jQuery/style.css" rel="stylesheet" /> <script type="...
2018-05-21 20:07:51
1480
原创 spring框架简介
spring框架简介概述Spring 是最受欢迎的企业级Java 应用程序开发框架。数以百万的来自世界各地的开发人员使用 Spring 框架来创建好性能、易于测试、可重用的代码。Spring 框架是一个开源的Java 平台,它最初是由 Rod Johnson 编写的,并且 2003 年 6 月首次在Apache 2.0 许可下发布。当谈论到大小和透明度时, Spring 是轻量级的。 Spring...
2018-04-30 15:48:33
333
原创 maven使用详解
Maven使用详解eclipse建立maven项目1. 我们在Eclipse菜单栏中点击File->New->Other->Maven,在弹出的对话框中会看到,如下图所示: 2.选择Maven Project,请选中Create a simpleproject(skip archetype selection),之后点击Next3.填写Group id和Artifact id, ...
2018-03-30 10:26:14
356
原创 maven的安装和使用
maven的安装与使用一、Maven是什么Maven是一个采用纯Java编写的开源项目管理工具。Maven采用了一种被称之为project object model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中,通过该文件,Maven可以管理项目的整个声明周期,包括编译,构建,测试,发布,报告等等。目前Apache下绝大多数项目都已经采用Maven进行管理。...
2018-03-27 10:47:11
265
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人