自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 多线程之对象及变量的并发访问(五) - 数据脏读

一、前述在前面文章的学习中,我们一直都在围绕 synchronized 来讲述,在方法没有同步处理的时候,多个线程访问一个实例变量的时候,这个值已经被其他的线程更改过了,所以会出现数据脏读(dirtyRead),这个数据脏读也出现了好多次,那么本文就来看看到底是什么东西二、数据脏读...

2019-09-29 17:11:04 431

原创 记录一次 maven 依赖冲突解决

一、前述Apache Maven是一个软件项目管理和理解工具。Maven基于项目对象模型(POM)的概念,可以从一个中心信息段管理项目的构建、报告和文档。二、采坑复盘1、报错截图1.1、 在进行 mvn clean install 的时候,如下图报错:1.2、根据报错找到对应的 pom 文件,找到对应的依赖项发现是因为下图的依赖在报错1.3、 全局搜索 javax.servle...

2019-09-17 11:13:55 519 1

原创 浅谈 Jvm 内存区域

1、前述在大学学习 C++ 的时候,有一个最烦人的操作,就是对内存的管理,全部交给了开发者自己管理,开发者在写代码的时候,经常需要写代码去释放内存,否则酒很容易造成内存泄露或者内存泄漏,导致服务崩溃,但是在 Java 语言里,Jvm 剥夺了开发者这个权力,由 java 虚拟机自己来管理,这样在一定程度上释放 java 语言开发者,不再需要为每一个 new 出来的对象做delete/free 的操...

2019-09-03 11:19:48 255

原创 浅谈 Java 类加载

1、前述Java 程序里,需要将 java 文件 编译为 class 文件,然后虚拟机再去加载这些 class 文件,加载到虚拟机以后,才能运行和使用,在 java 语言里,类加载都是在程序运行时完成的,也就是 runtime2、类加载源代码简述protected Class<?> loadClass(String name, boolean resolve) t...

2019-08-29 17:16:03 244

原创 mysql 事务特性以及隔离级别

1、前述相信我们开发中会遇到各种各样的异常,或者请求外部接口的异常,当客户端向我们的服务端发起一次请求的时候,通常在业务里会做一些数据库增删改查的操作,然后做一些业务逻辑处理来返回响应给客户端,但是代码里出现异常是不可避免的,这个时候就需要我们来做一些数据库回滚的操作,也就是事务回滚,否则就会出现很多的脏数据,影响系统后续的业务处理,本文是自己的一篇记录和理解2、数据库事务回滚说到数据库事务...

2019-08-27 18:10:17 425

原创 老生常谈 Mysql 索引

一、前述程序员每天都会跟数据库打交道,每天都在面临着 “这个加载好慢,可以优化吗”,“是不是卡死了啊,点击半天没反应”诸如此类的声音,数据库优化可能是项目里需要不断在进行的,项目版本迭代,数据更新,数据量增加等等一系列,都会驱动代码优化,数据库优化,而数据库优化最直接可能也是程序员脱口而出的答案,加索引,然而,索引加上了,不是那么的好用的,因为它会失效,那么本文就简单来测试下有关索引的一些场景...

2019-08-27 11:23:01 279 1

原创 插入排序

一、前述前面的文章分享了冒泡排序、选择排序,本文大概分析下插入排序二、Java 实现以及解析import java.util.Arrays;public class InsertSort { public static void main(String[] args) { InsertSort(); } public static void InsertSort() { in...

2019-08-16 14:58:38 112 1

原创 Java装箱以及拆箱类型

一、前述写前述貌似成为我写博客的一个习惯,总觉得直接开始不太好,得扯一两句,才慢慢进入主题,毕竟大家都是含蓄的,hhh,本文分享的是 Java 里面装箱以及拆箱的操作二、测试代码以及讲解public class TestString { public static void main(String[] args) { String s1 = "abc"; StringBuffer ...

2019-08-16 14:41:41 233 1

原创 选择排序

一、前述本文分享的是选择排序,在前面的文章中,分享了冒泡排序二、选择排序选择排序就是假设把这个序列的第一个元素当做最小的,然后依次通过跟后面元素的比较,如果有更小的,那么就跟这个第一个元素的位置交换,依次类推三、Java 实现以及讲解public class SelectSort { public static void main(String[] args) { selectSo...

2019-08-16 14:30:46 87

原创 冒泡排序

一、前述 计算机语言有多种,旗下的工程师更是千千万万,但是算法是通用的,是灵魂,平时的开发中可能很少需要用到那么多的算法来实现系统,但是要考虑到某个实现的性能,就不得不考虑利用合适的算法来提高我们代码的执行效率,特意开一个分类来研究下排序二、冒泡排序 冒泡排序就是把小的元素往前调或者把大的元素往后调三、Java 实现以及讲解public class...

2019-08-16 14:25:17 141

原创 SpringAop + ThreadPoolTaskScheduler + 自定义注解实现动态定时任务

一、前述在平时生活中,闲下来总会思考一些现实中已经拥有的东西,工具或者软件,假如自己是这些的开发者,我怎么去实现这个功能,于是乎,哼哧哼哧,实现一个最简单类似闹钟动态定时,开动二、关于定时的那些过往1、Timer 相信是许多程序员接触的第一个定时的类库,它属于 java.util 下,还记得当时,用 Timer 跑起来第一个定时任务的时候,这是多么神奇,它自己动了。言归正题,Timer 内部...

2019-08-15 18:10:29 1924 1

原创 Redis 之 BGREWRITEAOF

一、关于 BGREWRITEAOF在前面的一篇文章中,分享了关于 redis 的持久化,Redis 之 RDB 与 AOF,本文简单介绍下 AOF 的一个很重要的命令 - BGREWRITEAOF,1.0.0 开始可以使用,指定 Redis 启动 AOF 重写进程。重写将创建当前AOF 文件的一个小型优化版本。1、如果 BGREWRITEAOF 失败,服务野不会丢失任何数据,因为旧的 AO...

2019-08-08 16:26:24 1463

原创 Redis 之 持久化与灾难

一、AOF truncated 如何处理?1、写入 AOF 文件的时候服务器 crash,或者挂在 AOF 文件的数据卷已经满了,这是都是有可能的,当这种情况发生时,AOF仍然包含指定时间点版本数据集的一致数据(如果使用默认的AOF fsync策略,该数据集可能老了一秒钟),但是写入 AOF 文件的最后一条命令可能会被 truncated,这时候 Redis 会丢失最后那条不正确的命令,在这种情...

2019-08-08 16:03:40 495

原创 Redis 之 RDB 与 AOF

一、前述持久化都不陌生,mysql 存储就是最经典的持久化,其实也就是把我们想要的数据长久的保存在磁盘上Redis 提供了两种不同的持久化选项:1、RDB 持久化在指定的时间间隔执行数据集某个时间点的快照2、AOF 持久化会记录服务器收到的每个写操作,并且在 server 重启的时候重新被释放加载,重新建立一个数据集,命令使用跟 Redis 本身协议相同的格式记录,使用追加的方式。当 AO...

2019-08-08 16:02:23 187

原创 Redis 之内存淘汰源码分析

一、前述在上一篇文章中,介绍了一下 Redis LRU 内存淘汰、LFU 内存淘汰以及两种算法的区别:Redis 之 LRU 与 LFU可以知道,LRU我们可以配置六种策略,LFU 同样可以配置,那么今天就来看看源码, Redis 是怎样的一个逻辑来进行内存淘汰的二、 源码概览int freeMemoryIfNeeded(void) { (1) i...

2019-08-07 15:04:08 278

原创 Redis 之 LRU 与 LFU

一、前述官方文档:https://redis.io/topics/lru-cache众所周知,Redis 是一个基于内存的数据库,因此单线程的读写避免了频繁的 cpu 上下文切换开销,同时 redis 也可以用作发布订阅、延时队列、分布式锁等等很多场景,来实现我们的业务需求,今天分享一下 redis 里的 lru二、lru 的一些故事lru 全称是 Least Recently Used,...

2019-08-06 00:42:12 4741 2

原创 聊聊关于spring 事务的一次采坑

一、前述一直以来事务都是很多小伙伴的心病,今天我也踩了一次坑,记录分享下,加深理解二、代码以及讲解@Service@Transactionalpublic class MiniUserServiceImpl extends ServiceImpl<MiniUserDao, MiniUser> implements MiniUserService { private f...

2019-07-29 18:16:07 184 1

原创 Swagger Bootstrap UI 增强 swagger 快速输出接口文档

一、环境依赖本文基于 springboot 2.1.6,maven为构建工具,增强的 swagger (Swagger Bootstrap UI)版本为 1.9.3,在原有swagger 的项目里继承就可以,能够减少后端开发非常多的写接口文档的时间,高效且直观,使用详情请看官方文档以及 swagger 注解使用文档二、安装配置操作步骤1、在 maven 的中央仓库,找到增强 swagger(...

2019-07-29 14:48:15 2316 1

原创 docker 安装配置 rabbitmq

一、前述首先放上 rabbitmq 官网二、安装 docker安装 dockeryum install docker启动 dockersystemctl start docker 查看是否启动成功,查看是否有容器docker ps -a三、安装 rabbitmqdocker 拉取 rabbitmq 镜像docker pull rabbitmq:management...

2019-07-26 12:40:57 428

原创 多线程之对象及变量的并发访问(四) - synchronized 方法与锁对象

一、前述我们一直都说,线程锁住的都是对象,那本文就来证明下究竟是对象还是其他的二、synchronized 方法与锁对象public class SynTest02 { public void testA(){ try { System.out.println("testA begin threadname = " + Thread.curre...

2019-06-22 18:21:25 233

原创 多线程之对象及变量的并发访问(三) - 多个对象多个锁

一、前述本文讲述的是多个对象访问同步方法的 demo二、多个对象多个锁在前面的文章中,讲述的都是一个对象访问方法局部变量、访问实例变量,本文是多个对象访问实例变量,读者不妨思考下,会有什么样的姐结果存在?demo 代码如下:public class SynTestA { private int num = 0; public synchronized void addA(S...

2019-06-22 17:22:32 402

原创 多线程之对象及变量的并发访问(二) - 实例变量非线程安全

一、前述本文继续分享多线程的对象及变量的并发访问二、实例变量非线程安全平时开发中,经常会遇到多个线程共同访问一个实例变量,这样就会出现非线程安全的脏读问题线程访问的对象中,如果有多个实例变量,那么运行的结果可能就是会出现交叉运行,如果只有一个实例变量,可能出现被后来的覆盖的现象接下来看看 demo:public class SynTestA { private int num ...

2019-06-22 15:14:19 193

原创 多线程之对象及变量的并发访问(一) - synchronized同步方法

一、前述最近看了多线程的一本书,寻思着自己做做笔记,同时也分享下,打算写一个系列的博客,结合书本和自己的一些理解,希望大家支持,提出不好的地方二、synchronized同步方法2.1 方法内的变量为线程安全相信看到这里的人,肯定平时的开发中已经接触过 线程安全 与 非线程安全 相关的技术点,或者说一些平时的项目,或者我们 java 基础里的集合,里面就有很多线程安全的,以及非线程安全的等...

2019-06-22 14:45:02 635

原创 Jenkins+Docker+git+Springboot 持续集成自动化部署

1、前述1、在平时开发过程中,我们经常需要部署测试环境、生产环境、开发环境等等各种环境,作者所知的部署方法是如下方法1)本地打包 war/jar,将包上传,放到 Tomcat 启动,或者用原始命令启动2)本地打包,服务器跑脚本来启动项目3)服务器安装 git,进行 git 认证,在通过脚本在服务器 git 拉代码打包部署2、架构流程图3、环境搭建相信看了上面的流程图以后,大家心里对...

2019-05-17 18:47:08 7054 3

原创 Jenkins 安装配置

一、前述1、Jenkins是一个独立的开源自动化服务器,可用于自动执行与构建,测试,交付或部署软件相关的各种任务。2、Jenkins可以通过本机系统软件包,Docker安装,甚至可以由安装了Java Runtime Environment(JRE)的任何机器独立运行。二、安装 Jenkins安装 Java 环境(Jdk)1.1 sudo yum install java1.2 ja...

2019-05-14 15:12:13 129

原创 来聊一聊那个很牛逼的极光推送(优化版)

一、前述上次写了一篇关于 [极光推送](https://blog.csdn.net/qq_37189624/article/details/87878070)来推送消息的,但是过于单一,繁琐,使用起来不是很方便,因此特意弄了一个比较方便,全面的,直接上代码二、代码package com.gizwits.lease.util;/** * @author tanxi * @date 201...

2019-03-20 16:32:20 1149

原创 来聊一聊那个很牛逼的极光推送

之前写了一篇 websocket 的:web管理后台与微信公众号的消息会话,那么今天我们来聊聊另外一个长连接的技术–极光推送一、技术产生背景1、在平时开发中,可能需要服务端对客户端实时的推送一些消息,例如在世界杯期间,一些球星的新闻以及最新的赛场状态,都是需要很快并且精准的推送到用户的手机2、我们平时做的一般都是由客户端调取服务端的接口来进行一些数据交互,然而服务端却无法主动像客户端发送数据...

2019-02-22 14:43:58 3578 1

原创 实现基于springboot的web管理端与微信公众号关注用户的消息会话

实现基于springboot的web管理端与微信公众号关注用户的消息会话原始需求:小程序用户在进入小程序进行下单消费,然后关注公众号,在公众号里会发消息到微信公众号服务器,此时web端需要展示该用户发过来的消息,并且web后台管理人员...

2018-12-23 14:29:57 2473 4

原创 Java后台实现小程序微信支付

## 微信支付 本人第一篇博客,之前笔记一直放在有道云,想写博客很久了,一直没下定决心,也没静下心好好写,今天突然跟朋友谈到平时工作根本没时间学习,整理,总结,工作中遇到的问题很多会经常遇到,不整理第二次碰到又要半天,就这么扯吧扯吧,扯完之后,不知道哪来的决心,就下手,哈哈,废话不多说,进入正题啦,有不对的或者更好的建议,希望各位看官指点指点小白~(一)首先还是要来看下微信官方的api...

2018-12-13 18:46:52 702 1

空空如也

空空如也

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

TA关注的人

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