自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

we are family

我不是一个伟大的程序员,我只是一个具有良好习惯的程序员

  • 博客(75)
  • 资源 (9)
  • 收藏
  • 关注

原创 IDEA git回滚版本

2019-07-29 14:56:13 1471

原创 接口入参校验注解详解

在接口开发中,经常是需要对传入参数完整性进行验证的,或者对手机号格式进行验证等,而一般不了解@Valid注解之前,都是通过自己封装方法来验证,都是一堆if else集合,这样判断对于代码结构很不友好,开发效率也不高,使用@Valid注解可以快速的对参数进行验证,并且可以通过抓取全局异常,从而实现统一返回引用@Valid是使用hibernate validation的时候使用,其中java的...

2019-07-15 15:04:57 4667

原创 《JAVA与模式》之策略模式

《JAVA与模式》之策略模式在阎宏博士的《JAVA与模式》一书中开头是这样描述策略(Strategy)模式的:  策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式的结构  策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象...

2019-05-15 11:49:29 64

转载 并发编程的锁机制:synchronized和lock

1. 锁的种类锁的种类挺多,包括:自旋锁、自旋锁的其他种类、阻塞锁、可重入锁、读写锁、互斥锁、悲观锁、乐观锁、公平锁、可重入锁等等,其余就不列出了。我们这边重点看如下几种:可重入锁、读写锁、可中断锁、公平锁。1.1 可重入锁如果锁具备可重入性,则称作为可重入锁。synchronized和ReentrantLock都是可重入锁,可重入性在我看来实际上表明了锁的分配机制:基于线程的分配,而...

2019-05-05 14:52:39 139

原创 JAVA内存模型概述

为什么要有内存模型在介绍Java内存模型之前,先来看一下到底什么是计算机内存模型,然后再来看Java内存模型在计算机内存模型的基础上做了哪些事情。要说计算机的内存模型,就要说一下一段古老的历史,看一下为什么要有内存模型。内存模型,英文名Memory Model,他是一个很老的老古董了。他是与计算机硬件有关的一个概念。那么我先给你介绍下他和硬件到底有啥关系。CPU和缓存一致性我们应该...

2019-05-01 12:11:11 54

原创 idea git 版本回退

idea中git远程版本回退2017年10月15日 15:25:36 gomeplus 阅读数:19830工作中遇到git远程仓库需要回退到历史版本的问题,根据网上的搜索结果结合自己的实践,整理了如下步骤:1. 在“Show History”中找到当前版本(取名:newVersion)和想要回退到的版本(oldVersion) 2. 选择newVersion和oldVersion点...

2019-01-25 17:40:11 976

原创 Java8特性:Lambda表达式与Stream API

一、Labmda表达式Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用 Lambda 表达式可以使代码变的更加简洁紧凑。1.1语法lambda 表达式的语法格式如下:(parameters) -> expression 或 (parameters) ->{...

2018-11-28 15:31:23 226 1

原创 Mac HomeBrew安装以及常用命令

一,安装brew1,安装brewcurl -LsSf http://github.com/mxcl/homebrew/tarball/master | sudo tar xvz -C/usr/local --strip 12,安装完成后执行brew提示:Please run brew update!3,按照提示更新,执行brew update报错:Error:...

2018-11-13 14:48:17 307

原创 git常用命令

git常用命令:git init //初始化本地git环境 git clone XXX//克隆一份代码到本地仓库 git pull //把远程库的代码更新到工作台 git pull --rebase origin master //强制把远程库的代码跟新到当前分支上面 git fetch //把远程库的代码更新到本地库 git add . //把本地的修改加到stage中 git...

2018-11-05 19:39:23 64

原创 Java BigDecimal详解

1.引言  float和double类型的主要设计目标是为了科学计算和工程计算。他们执行二进制浮点运算,这是为了在广域数值范围上提供较为精确的快速近似计算而精心设计的。然而,它们没有提供完全精确的结果,所以不应该被用于要求精确结果的场合。但是,商业计算往往要求结果精确,这时候BigDecimal就派上大用场啦。先看下面代码  public static void main(Str...

2018-11-02 14:13:25 102

原创 熟悉synchronized锁机制

由于同一进程的多个线程共享同一片存储空间,在带来方便的同时,也带来了访问冲突这个严重的问题。Java语言提供了专门机制以解决这种冲突,有效避免了同一个数据对象被多个线程同时访问。需要明确的几个问题:synchronized关键字可以作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。如果 再细的分类,synchronized可作用于instance变量、object ...

2018-10-24 20:43:14 77

转载 Java并发编程volatile关键字详解

Java并发编程:volatile关键字解析   volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。  volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模...

2018-10-09 23:52:46 72

原创 Java中常用垃圾回收算法

Java中常用的垃圾收集算法:(1).标记-清除算法:最基础的垃圾收集算法,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成之后统一回收掉所有被标记的对象。标记-清除算法的缺点有两个:首先,效率问题,标记和清除效率都不高。其次,标记清除之后会产生大量的不连续的内存碎片,空间碎片太多会导致当程序需要为较大对象分配内存时无法找到足够的连续内存而不得不提前触发另一...

2018-10-05 22:30:32 291

原创 Java虚拟机判断对象存活的两种方案:引用计数法与可达性分析算法

java堆和方法区主要存放各种类型的对象(方法区中也存储一些静态变量和全局常量等信息),那么我们在使用GC对其进行回收的时候首先要考虑的就是如何判断一个对象是否应该被回收。也就是要判断一个对象是否还有其他的引用或关联使得这个对象处于存活的状态。我们需要将不在存活状态的所有对象标记出,以便于GC进行回收。判断对象是否存活有两种比较常见的方法:引用计数法与可达性分析算法。引用计数法引用计数...

2018-10-05 20:03:19 227

原创 Java虚拟机方法区介绍

JAVA虚拟机方法区介绍1、JVM内存模型    大多数JVM将内存分配为Method Area(方法区)、Heap(堆)、ProgramCounter Register(程序计数器)、JAVA MethodStack(JAVA方法栈)、Native MethodStack(本地方法栈)。1.1 Method Area    线程共享,存储已经被虚拟机加载的类信息、常量、静态变量、即...

2018-10-04 21:29:56 514

原创 java虚拟机内存区域的划分以及作用简介

一、运行时数据区       什么叫运行时数据区呢,看下图就知道了,今天的重点就围绕这张图讲。                      1、程序计数器(寄存器)                       当前线程所执行的字节码行号指示器            字节码解释器工作依赖计数器控制完成            通过执行线程行号记录,让线程轮流切换各条线程之间计数器...

2018-10-04 20:38:49 252

原创 了解RESTful接口设计风格

1、RESTful发展背景及简介网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备......)。因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。这导致API构架的流行,甚至出现"APIFirst"的设计思想。RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。REST(Representati...

2018-10-03 21:20:13 4453

转载 MySQL数据类型详解

MySQL中数据类型介绍一、MySQL的数据类型主要包括以下五大类:整数类型:BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、 INT、 BIG INT浮点数类型:FLOAT、DOUBLE、DECIMAL字符串类型:CHAR、VARCHAR、TINY TEXT、TEXT、MEDIUM TEXT、LONGTEXT、TINY BLOB、BLOB、MED...

2018-09-27 19:13:27 72

原创 MySQL数据库设计总结

MySQL数据库设计总结规则1:一般情况可以选择MyISAM存储引擎,如果需要事务支持必须使用InnoDB存储引擎。注意:MyISAM存储引擎 B-tree索引有一个很大的限制:参与一个索引的所有字段的长度之和不能超过1000字节。另外MyISAM数据和索引是分开,而InnoDB的数据存储是按聚簇(cluster)索引有序排列的,主键是默认的聚簇(cluster)索引,因此MyISAM虽然...

2018-09-27 18:24:27 93

转载 了解分布式事务

微服务–分布式事务的实现方法及替代方案这两天正在研究微服务架构中分布式事务的处理方案, 做一个小小的总结, 作为备忘. 如有错误, 欢迎指正!概念澄清事务补偿机制: 在事务链中的任何一个正向事务操作, 都必须存在一个完全符合回滚规则的可逆事务. CAP理论: CAP(Consistency, Availability, Partition Tolerance), 阐述了一个分布式系统...

2018-09-27 12:06:13 71

原创 使用MyBatis-generator 自动生成MyBatis代码

Intellij IDEA  作为Java IDE 神器,接触后发现,非常好用,对它爱不释手,打算离开eclipse和myeclipse,投入Intellij IDEA的怀抱。     然而在使用的过程中会发现Intellij IDEA也有一些不尽如意的地方,难免会有些不爽:Intellij IDEA 的插件库远不及eclipse的丰富。 mybatis-generator在eclipse中有...

2018-09-20 16:12:19 95

转载 Mybaits一级缓存

0.写在前面        MyBatis是一个简单,小巧但功能非常强大的ORM开源框架,它的功能强大也体现在它的缓存机制上。MyBatis提供了一级缓存、二级缓存 这两个缓存机制,能够很好地处理和维护缓存,以提高系统的性能。本文的目的则是向读者详细介绍MyBatis的一级缓存,深入源码,解析MyBatis一级缓存的实现原理,并且针对一级缓存的特点提出了在实际使用过程中应该注意的事项。 ...

2018-09-20 15:54:13 79

原创 Dubbo集群容错方案

在集群调用失败时,Dubbo 提供了多种容错方案,缺省为 failover 重试。Failover Cluster失败自动切换,当出现失败,重试其它服务器。通常用于读操作,但重试会带来更长延迟。可通过 retries="2" 来设置重试次数(不含第一次)重试次数配置如下:<dubbo:service retries="2" />或<dubbo:refe...

2018-09-19 14:52:48 2579

原创 了解Jedis 数据操作

1、键操作:       2、字符串操作:       3、整数和浮点数操作:       4、列表(List)操作:       5、集合(Set)操作:       6、哈希(Hash)操作:       7、有序集合(Zsort)操作:       8、排序操作:        ...

2018-09-14 10:12:45 309 1

原创 Redis主从复制

一、Master&Slave是什么?         也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主。二、它能干嘛?       1、读写分离;       2、容灾恢复。三、怎么玩?       1、配从(库)不配主(库);       2、从库配置:slav...

2018-09-13 16:48:53 952

转载 Redis持久rdb与aof介绍

Redis 有两种持久化方案,RDB (Redis DataBase)和 AOF (Append Only File)。如果你想快速了解和使用RDB和AOF,可以直接跳到文章底部看总结。本章节通过配置文件,触发快照的方式,恢复数据的操作,命令操作演示,优缺点来学习 Redis 的重点知识持久化。RDB 详解RDB 是 Redis 默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作,...

2018-09-11 17:52:42 56

原创 常用Redis.conf配置文件说明

参数说明redis.conf 配置项说明如下:1. Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程  daemonize no2. 当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定  pidfile /var/run/redis.pid3. 指定Redis监听端口,默...

2018-09-07 17:29:45 177

转载 Redis五种数据类型以及相关命令

Redis目前支持5种数据类型,分别是:String(字符串) List(列表) Hash(字典) Set(集合) Sorted Set(有序集合)下面就分别介绍这五种数据类型及其相应的操作命令。1. String(字符串)String是简单的 key-value 键值对,value 不仅可以是 String,也可以是数字。String在redis内部存储默认就是一个字符串,...

2018-09-07 17:17:49 89

转载 CAP与ACID原则

1.  CAP原则       1.1 定义       CAP是“Consistency,Avalilability, Partition Tolerance”的一种简称,其内容分别是:       (1)强一致性:即在分布式系统中的同一数据多副本情形下,对于数据的更新操作体现出的效果与只有单份数据是一样的。       (2)可用性:客户端在任何时刻对大规模数据系统的读/写操作...

2018-09-06 14:09:28 253

转载 下载到本地的JAR包手动添加到Maven仓库

     首先需要安装配置maven的环境变量,在cmd中用mvn -v命令查看是否配置了maven的版本,如果没有配置环境变量,请配置好环境变量再往后操作,配置操作请点击链接查看 https://jingyan.baidu.com/article/acf728fd68b4bef8e510a31c.html常用Maven仓库网址:http://mvnrepository.com/http:...

2018-08-14 15:54:25 66

转载 微服务部署:蓝绿部署、滚动部署、灰度发布、金丝雀发布

目前有很多用于部署的技术,有的简单,有的复杂;有的得停机,有的不需要停机即可完成部署。本文的目的就是将目前常用的布署方案做一个总结。 一、蓝绿布署Blue/Green Deployment(蓝绿部署)1、定义蓝绿部署是不停老版本,部署新版本然后进行测试,确认OK,将流量切到新版本,然后老版本同时也升级到新版本。1、特点蓝绿部署无需停机,并且风险较小。2、布署过程第一步、部署版本1的应用(一开始的...

2018-06-14 09:35:11 396

转载 了解分布式事务

现今互联网界,分布式系统和微服务架构盛行。一个简单操作,在服务端非常可能是由多个服务和数据库实例协同完成的。在一致性要求较高的场景下,多个独立操作之间的一致性问题显得格外棘手。基于水平扩容能力和成本考虑,传统的强一致的解决方案(e.g.单机事务)纷纷被抛弃。其理论依据就是响当当的CAP原理。往往为了可用性和分区容错性,忍痛放弃强一致支持,转而追求最终一致性。分布式系统的特性在分布式系统中,同时满足...

2018-06-13 17:30:36 98

转载 什么是微服务?

微服务架构风格是一种将单个应用程序作为一套小型服务开发的方法,每种应用程序都在自己的进程中运行,并与轻量级机制(通常是HTTP资源API)进行通信。 这些服务是围绕业务功能构建的,可以通过全自动部署机制独立部署。 这些服务的集中管理最少,可以用不同的编程语言编写,并使用不同的数据存储技术。说了这么多概念,微服务有什么样的具体特点呢?1.独立部署,灵活扩展传统的单体架构是以整个系统为单位进行部署,而...

2018-06-07 10:52:29 1530 1

转载 熟悉RabbitMQ与AMQP协议

RabbitMQ与AMQP协议详解1. 消息队列的简介 RabbitMQ采用Erlang语言开发。Erlang语言由Ericson设计,专门为开发concurrent和distribution系统的一种语言,在电信领域使用广泛。OTP(Open Telecom Platform)作为Erlang语言的一部分,包含了很多基于Erlang开发的中间件/库/工具,如mnesia/SASL,极大方便了Er...

2018-03-01 16:50:21 237

原创 oss上传文件阿里云(Java与js版本)

阿里云后台管理、API 集成教程、Key/ 域名的查询1、查看上传的文件在哪?a 、百度阿里云,进入官网。然后进入管理控制台b、左侧菜单栏,进入对象存储 OSS c、进入 Bucket 管理页面,点击创建的bucket 名称d、进入bucket 管理界面,点击左侧菜单bucket属性 菜单查看bucket 域名object 管理  查看管理上传的文件图片处理   查看图片域名地址2、查看acces...

2018-03-01 13:11:18 15877 3

转载 java冒泡排序

Java冒泡排序  冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。  冒泡排序算法的运作如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。

2018-01-17 17:43:42 1498 1

原创 Spring七种事务传播行为

Spring七种事务传播行为:spring特有的事务传播行为,spring支持7种事务传播行为,确定客户端和被调用端的事务边界(说得通俗一点就是多个具有事务控制的service的相互调用时所形成的复杂的事务边界控制)下图所示为7钟事务传播机制o   传播行为含义PROPAGATION_REQUIRED(XML文件中为REQUIRED)

2018-01-02 10:58:27 273

原创 mysql执行计划分析

为什么要了解explain:想了解select查询的内部情况,查询优化器是如何工作的,是否使用到了索引,explain可以做到。MySQL查询优化器是如何工作的 :MySQL查询优化器有几个目标,但是其中最主要的目标是尽可能地使用索引,并且使用最严格的索引来消除尽可能多的数据行。最终目标是提交SELECT语句查找数据行,而不是排除数据行。优化器试图排除数据行的原因在于它排除数据行的速度

2017-12-26 17:16:35 194

原创 深入理解Spring IOC,实现简单IOC容器

深入理解Spring--动手实现一个简单的SpringIOC容器   主要思想:   提到IOC,第一反应就是控制反转,我以前以为SpringIOC就是控制反转,控制反转就是SpringIOC,当然这种理解是错误的,控制反转是一种思想,一种模式,而Spring的IOC容器是实现了这种思想这种模式的一个载体.    使用过Spring的人都熟知,SpringIOC容器可以在对象生成或初始

2017-12-22 16:18:23 170

原创 Java设计模式之代理模式

Java的三种代理模式1.代理模式代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法举个例子来说明代理的作用:假设我们想邀请一位明星,那么并

2017-12-15 16:53:16 193

码出高效非扫描版高清

码出高效非扫描版高清,

2019-04-17

java 23种设计模式视频讲解

java详解23种设计模式视频教程,讲得很详细,比较容易理解。

2018-10-03

java面试宝典

很详细的java面试宝典,答案讲得很详细,带有视频讲解

2018-10-03

java并发编程教程

java高并发程序设计视频全集,并发场景,死锁,活锁,阻塞,非阻塞

2018-09-16

尚硅谷dubbo百度云视频链接

尚硅谷2017年分布式dubbo教学全套百度云视频下载链接 免费视频,讲的很详细

2018-09-16

Redis API帮助文档(中文版)

如果打不开,那你看打开时是不是提示是否每次询问,把勾选去掉即可打开

2018-09-14

Java-html转pdf文件

Java-html转pdf文件,支持中文,支持换行,-----------------

2017-12-07

阿里巴巴Java开发手册(终极版)

阿里巴巴Java开发手册(终极版)阿里巴巴Java开发手册(终极版)

2017-11-09

Quartz 表达式自动生成插件

Quartz 表达式自动生成插件,可以自动CronTrigger表达式

2017-11-08

空空如也

空空如也

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

TA关注的人 TA的粉丝

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