后端
文章平均质量分 82
坐看云淡风轻
这个作者很懒,什么都没留下…
展开
-
G1垃圾收集器详解
简介G1(Garbage First)垃圾收集器是当今垃圾回收技术最前沿的成果之一。早在JDK7就已加入JVM的收集器大家庭中,成为HotSpot重点发展的垃圾回收技术。同优秀的CMS垃圾回收器一样,G1也是关注最小时延的垃圾回收器,也同样适合大尺寸堆内存的垃圾收集,官方也推荐使用G1来代替选择CMS。G1最大的特点是引入分区的思路,弱化了分代的概念,合理利用垃圾收集各个周期的资源,解决了其他收集器甚至CMS的众多缺陷。内存模型G1与其他垃圾收集器不同之处在于,heap被划分为一系列大小相等的“原创 2020-08-02 16:15:06 · 9352 阅读 · 2 评论 -
缓存一致性问题简述
需求起因在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库。这个业务场景,主要是解决读数据从Redis缓存,一般都是按照下图的流程来进行业务操作。读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(MySQL)间的数据一致性问题。不管是先写MySQL数据库,再删除Redis缓存;还是先删除缓存,再写库,都有可能转载 2020-06-14 18:01:23 · 917 阅读 · 0 评论 -
Redis总结
Redis 简介Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key - value 数据库Redis 与 其他 key - value 缓存产品有以下三个特点: Redis 支持数据持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis 不仅仅支持简单的 key - value 类型的数据,同时还提供 list,set,z...原创 2019-08-25 19:00:18 · 186 阅读 · 0 评论 -
Docker总结
一、什么是DockerDocker使用Google公司推出的 Go 语言进行开发实现,基于操作系统层面的虚拟化技术。由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。Docker在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护,使得Docker技术比虚拟机技术更为轻便、快捷。Docker可以轻松的为任何应用创建一个轻量级的、可移植...原创 2019-09-21 21:53:33 · 405 阅读 · 0 评论 -
java并发编程
一、概述在过去单 CPU 时代,一个时间点只能执行单一任务。之后发展到多任务阶段,计算机能在同一时间点并行执行多任务或多进程。虽然并不是真正意义上的“同一时间点”,而是多个任务或进程共享一个 CPU,并交由操作系统来完成多任务间对 CPU 的运行切换,以使得每个任务都有机会获得一定的时间片运行。由于单核cpu性能的限制,多核cpu应运而生,为了提高程序的运行效率,多线程技术开始不断发展,使得在...原创 2019-05-21 16:50:38 · 137 阅读 · 0 评论 -
TCP三次握手连接和四次挥手断开过程详解
TCP的连接建立是一个三次握手过程,目的是为了通信双方确认开始序号,以便后续通信的有序进行。主要步骤如下:1. 连接开始时,连接建立方(Client)发送SYN包,并包含了自己的初始序号a;2. 连接接受方(Server)收到SYN包以后会回复一个SYN包,其中包含了对上一个a包的回应信息ACK,回应的序号为下一个希望收到包的序号,即a+1,然后还包含了自己的初始序号b;3. 连接...原创 2019-03-21 22:04:43 · 1262 阅读 · 0 评论 -
乐观锁与悲观锁
何谓悲观锁与乐观锁 乐观锁对应于生活中乐观的人总是想着事情往好的方向发展,悲观锁对应于生活中悲观的人总是想着事情往坏的方向发展。这两种人各有优缺点,不能不以场景而定说一种人好于另外一种人。悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源...转载 2019-02-19 14:38:55 · 108 阅读 · 0 评论 -
我对JVM的认识
一、JVM是什么JVM是Java Virtual Machine(Java虚拟机)的缩写,它可以指一个抽象规范、一个具体实现、一个运行中的虚拟机实例,JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。二、JRE/JDK/JV...原创 2019-02-28 14:08:08 · 138 阅读 · 0 评论 -
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 · 110 阅读 · 0 评论 -
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 · 113 阅读 · 0 评论 -
ThreadLocal的使用以及实现原理解析
前言前面的文章里,我们学习了有关锁的使用,锁的机制是保证同一时刻只能有一个线程访问临界区的资源,也就是通过控制资源的手段来保证线程安全,这固然是一种有效的手段,但程序的运行效率也因此大大降低。那么,有没有更好的方式呢?答案是有的,既然锁是严格控制资源的方式来保证线程安全,那我们可以反其道而行之,增加更多资源,保证每个线程都能得到所需对象,各自为营,互不影响,从而达到线程安全的目的,而Threa...转载 2019-01-03 10:05:38 · 116 阅读 · 0 评论 -
使用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 · 24587 阅读 · 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 · 16225 阅读 · 0 评论 -
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 · 9669 阅读 · 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 · 128 阅读 · 0 评论