自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java的深度克隆和浅度克隆

 说到克隆,其实是个比较简单的概念,跟现实生活正的克隆一样,复制一个一模一样的对象出来。clone()这个方法是从Object继承下来的,一个对象要实现克隆,需要实现一个叫做Cloneable的接口,这个接口没有什么方法,和Comparable接口差不多,仅仅是起一个标志作用,实现了这个接口你就能实现克隆操作。  这里有两个概念,深度克隆和浅度克隆,这东西虽然平常不怎么用,但是了解一下还是有必要的。Object中的克隆方法是浅度克隆,JDK规定了克隆需要满足的一些条件,简要总结一下就是:对某个对象进行克

2022-02-07 10:47:35 286

原创 DelayedWorkQueue优先队列

DelayedWorkQueue优先队列该队列是定制的优先级队列,只能用来存储RunnableScheduledFutures任务。堆是实现优先级队列的最佳选择,而该队列正好是基于堆数据结构的实现。1.关于堆的一些知识堆结构是用数组实现的二叉树,数组下标可以表明元素节点的位置,所以省去指针的内存消耗;堆内元素节点的位置取决于节点的某一个属性的大小值,根据父节点是否大于左右节点分为最小堆和最大堆。即二叉树根节点最小则为最小堆,二叉树根节点最大则为最大堆;下面是最小堆和最大堆的示例:最小堆中,

2022-02-03 18:14:35 563

原创 线程池的一说(完成)

Java中创建线程池有2种方式,使用ThreadPoolExecutor类或者使用Executors类,其实这两种方式在本质上是一样的,都是通过ThreadPoolExecutor类的构造函数创建的,我们来分析一个参数最多的构造函数。public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keep

2020-11-28 20:43:47 150

原创 RabbitMQ 消息中间机制以及数据补偿策略

title:RabbitMQ 消息中间机制以及数据补偿策略了解RabbitMQ 机制RabbitMQ 能做什么一直工作中都有使用到RabbitMQ 而最近的工作同样遇到针对于RabbitMQ的问题无法解释甚至解决,意识到“好记性不如烂笔头” 的真理,借此机会,开始深入对rabbitMQ消息机制的深入认识。RabbitMQ 是实现了AMQP的面向消息的中间件,日常工作中常实现异步消息的交互,解耦拆分,消息推送等等。学习RabbitMQ 需要了解其AMQP 0-9-1模式的原理。AMQP协议.

2020-11-28 16:29:59 691

原创 基于RabbitMQ的可复用的事务消息方案

title: 基于RabbitMQ的可复用的事务消息方案什么是事务性消息可以认为是一个确保分布式系统中的最终一致性的两阶段提交(two-phase commit )的消息实现。事务性消息确保本地事务的执行和消息的发送是一个原子性操作。先扔一张图片欣赏下[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WXSNuGJJ-1590342632575)(rabbit-pic1.PNG)]我们要达到可复用的事务性消息至少要满足以下特点:1、消息发送确认机制2、.

2020-07-28 00:09:52 325

转载 Concurrent下的线程安全集合

Concurrent下的线程安全集合1.ArrayBlockingQueueArrayBlockingQueue是由数组支持的线程安全的有界阻塞队列,此队列按 FIFO(先进先出)原则对元素进行排序。这是一个典型的“有界缓存区”,固定大小的数组在其中保持生产者插入的元素和使用者提取的元素。一旦创建了这样的缓存区,就不能再增加其容量。试图向已满队列中放入元素会导致操作受阻塞;试图从空队列中提...

2019-05-02 16:12:24 643 2

转载 springCloud 实现原理图

服务注册发现组件Eureka工作原理服务网关组件Zuul工作原理跨域时序图Eureka与Ribbon整合工作原理解决分布式一致性级联故障流程断路器组件Hystrix工作原理分布式追踪Sleuth工作原理SpringBoot自动配置工作原理...

2019-04-21 21:07:04 353

转载 MySQL存储原理分析排序和锁的理解

先抛出几个问题1.为什么不建议使用订单号作为主键?2.为什么要在需要排序的字段上加索引?3.for update 的记录不存在会导致锁住全表?4.redolog 和 binlog 有什么区别?5.MySQL 如何回滚一条 sql ?6.char(50) 和 varchar(50) 效果是一样的么?索引知识回顾对于 MySQL 数据库而言,数据是存储在文件里的,而为了能够快速定位到某...

2019-04-12 09:51:55 243

转载 Docker常用命令

正文镜像:Docker 镜像是用于创建 Docker 容器的模板容器:容器是独立运行的一个或一组应用仓库:用来保存镜像,可以理解为代码控制中的代码仓库一个仓库中包含多个镜像,以镜像为模板可创建出多个容器,每个容器是独立运行的一个或者一组应用。 容器是镜像的实例,镜像是容器的模板 。简略:容器生命周期:run、start/stop/restart、kill、rm、pause/unpaus...

2019-04-09 23:32:44 182

原创 笔记

笔记1.)Boolean.parseBoolean(isEncryptStr);2)/queryOverDueSumByOrderId/ SELECT t.* FROM TB_AT_CREDITCARD_INSTALLMENT_REPAYMENT_RECORD t WHERE TO_DAYS(t.REPAYMENT_TIME) >= TO_DAYS(STR_TO_DATE(@s...

2018-03-18 17:16:40 241

原创 SpringBoot 常用注解的通俗解释

@ComponentScan 如果不设置basePackage的话 默认会扫描包的所有类,所以最好还是写上basePackage ,减少加载时间。默认扫描*/.class路径。在不声明任何参数的时候,默认是会扫描其同一个包,和子包下的类;@Configuration 表示这个类中定义了Bean,会把这个类中bean加载到spring容器中;@EnableAutoConfiguration sprin

2017-11-28 22:13:37 817

原创 @Controller和@RestController的区别?

@Controller和@RestController的区别?官方文档:@RestController is a stereotype annotation that combines @ResponseBody and @Controller.意思是:@RestController注解相当于@ResponseBody + @Controller合在一起的作用。

2017-11-26 18:24:55 304

转载 Redis分布式锁的正确实现方式(Java版)

前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。可靠性首先,为了确保分布式锁可用,我

2017-11-01 12:22:54 7564 7

转载 分布式锁的几种实现方式

分布式锁的几种实现方式目前几乎很多大型网站及应用都是分布式部署的,分布式场景中的数据一致性问题一直是一个比较重要的话题。分布式的CAP理论告诉我们“任何一个分布式系统都无法同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance),最多只能同时满足两项。”所以,很多系统在设计之初就要对这三者做出取舍。在互联网领域的绝大多数的场景

2017-10-20 11:30:58 829

转载 一分钟教你知道乐观锁和悲观锁的区别

悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改

2017-10-19 11:55:44 351

转载 Spring使用POI实现Excel导入导出

Apache POI 是创建和维护操作各种符合Office Open XML(OOXML)标准和微软的OLE 2复合文档格式(OLE2)的JavaAPI。用它可以使用Java读取和创建,修改MS Excel文件.而且,还可以使用Java读取和创建MS Word和MSPowerPoint文件。Apache POI 提供Java操作Excel解决方案(适用于Excel97-2008)。

2017-07-04 16:29:22 3054 1

转载 spring AOP自定义注解方式实现日志管理 详解

今天继续实现AOP,到这里我个人认为是最灵活,可扩展的方式了,就拿日志管理来说,用Spring AOP 自定义注解形式实现日志管理。废话不多说,直接开始!!!关于配置我还是的再说一遍。 在applicationContext-mvc.xml中要添加的                                

2017-06-06 00:45:51 633

原创 利用Spring AOP自定义注解解决日志和签名校验 详解

一、需解决的问题部分API有签名参数(signature),Passport首先对签名进行校验,校验通过才会执行实现方法。    第一种实现方式(Origin):在需要签名校验的接口里写校验的代码,例如:boolean isValid = accountService.validSignature(appid, signature, client_signature);

2017-06-06 00:35:59 887

转载 SpringAOP实例自定义Annotation形式详解

Spring除了支持Schema方式配置AOP,还支持注解方式:使用@AspectJ风格的切面声明。   1  启用对@AspectJ的支持       spring默认不支持@AspectJ风格的切面声明,为了支持需要使用如下配置:  [html] view plain copy  aop:aspectj-a

2017-06-04 21:14:06 558

原创 Redis 五种数据结构

巴拉巴拉啦更新中.....

2017-06-01 00:30:23 579

转载 JAXB注解 java 关于xml的注解,自动生成xml文件

Java和xml的互相转换,依靠强大的JAXBContext可以轻松实现。下面通过一个简单案例学习一下JAXBContext首先准备好一个JavaBean供实验:注意1、类文件注解:@XmlRootElement不可缺少2、2个Student的构造方法不能少[java] view plaincopy@XmlRootElem

2017-05-23 11:30:35 719

转载 JAXB简单样例 Java API for XML Building

参考网页:http://www.mkyong.com/java/jaxb-hello-world-example/JAXB完整教程:https://jaxb.java.net/tutorial/1.JAXB 依赖maven项目使用JAXB首先需要添加jaxb api和jaxb impl,jaxb core(因为jaxb api 2.2.11 版本之后不再支持annomationRead

2017-05-22 18:55:14 937 1

转载 Java正则表达式的语法与示例

java 正则表达式 语法 示例概要:Java正则表达式的语法与示例| |目录1匹配验证-验证Email是否正确2在字符串中查询字符或者字符串3常用正则表达式4正则表达式语法1匹配验证-验证Email是否正确Java | 复制123456789

2017-05-22 16:16:54 382

转载 XMLElement,XMLDocument 用法

一 前言先来了解下操作XML所涉及到的几个类及之间的关系  如果大家发现少写了一些常用的方法,麻烦在评论中指出,我一定会补上的!谢谢大家* 1 XMLElement 主要是针对节点的一些属性进行操作* 2 XMLDocument 主要是针对节点的CUID操作* 3 XMLNode 为抽象类,做为以上两类的基类,提供一些操作节点的方法清楚了以上的关系在操作XM

2017-05-22 15:15:23 557

转载 动态代理与静态代理区别

一、代理概念 为某个对象提供一个代理,以控制对这个对象的访问。 代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以用代理对象替代。代理类负责请求的预处理、过滤、将请求分派给委托类处理、以及委托类执行完请求后的后续处理。 图1:代理模式  从图中可以看出,代理接口(Subject)、代理类(ProxySubject)、委托类(RealSubject)形成一个

2017-05-19 10:59:59 334

转载 AOP的实现原理

1 AOP各种的实现 AOP就是面向切面编程,我们可以从几个层面来实现AOP。   在编译器修改源代码,在运行期字节码加载前修改字节码或字节码加载后动态创建代理类的字节码,以下是各种实现机制的比较。  类别机制原理优点缺点静态AOP静态织入在编译期,切面直接以

2017-05-17 12:18:41 462

转载 同步容器和并发容器

为了方便编写出线程安全的程序,Java里面提供了一些线程安全类和并发工具,比如:同步容器、并发容器、阻塞队列、Synchronizer(比如CountDownLatch)。今天我们就来讨论下同步容器。  以下是本文的目录大纲:  一.为什么会出现同步容器?  二.Java中的同步容器类  三.同步容器的缺陷  若有不正之处请多多谅解,并欢迎批评指正。

2017-05-11 23:56:37 572

原创 IntelliJ IDEA 配置

最近准备从eclipse转到IDE上去,由于eclipse占用的内存太大,而且IDE看着逼格还是比较大的,在转移项目的时候遇到好多的坑呀!在这里记录一下 这些没有自动创建,搞得人快崩溃了,然后换到最新的版本可以自动创建,从svn上拉去的项目也可以自动创建并自动创建Artifacts,项目必备的这些选项IntelliJ IDEA 配置svn配置地址:http:

2017-05-09 14:33:48 408

原创 安装mysql 5.7.XX

安装mysql-5.7.18-winx64win7 64位下如何安装配置mysql-5.7.18-m15-winx64距离上次安装MySQL已经过去好久了。步骤这些,有可能会忘记。简单记录一下吧。(参考了一些网络上的博客。)1.mysql-5.7.18-m15-winx64.zip下载官方网站下载地址:http://cdn.mysql.com/Downloads/MySQL-5

2017-05-08 11:31:53 405

转载 VMwarePro 12教程 简洁明快不装逼 快速学会使用虚拟机

诚意之作 欢迎鉴赏教程内容1.VM安装篇安装vm12为什么用12?中文支持 操作系统支持 RHEL7更改快捷键 虚拟机位置 禁用虚拟机共享和远程访问2.安装原版系统开机进入bios 安装删除虚拟机3.安装ghost版系统分区 激活C盘 安装4.安装linux系统选择正确的版本5.调教网络内网互联 nat

2017-04-09 19:33:20 621

原创 Tomcat 8/7 无法启动 [StandardEngine[Catalina].StandardHost[localhost].StandardContext

java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/myssm_v1.0]]at java.util

2017-03-19 16:55:12 20338 1

原创 An internal error occurred during: "reload maven project". java.lang.NullPointerException

j解决方法:1.找到workspace文件夹下的/.metadata文件夹,将其删除掉,然后在讲项目重新导入进去eclipse中。但是这个有一点不好的地方,之前对eclipse所做的配置也会恢复为默认配置2.在.metadata下搜索workbench.xmi文件,用记事本打开,ctrl+F搜索找到包含org.eclipse.e4.primaryDataStack的,将其删除然后保

2017-03-18 13:15:15 1175

原创 IOException parsing XML document from class path resource [springmvc-servlet.xml]; nested exception

解决方法1: 在web.xml中加入这些配置    contextConfigLocation     /WEB-INF/classes/applicationContext.xml 问题主要由于加载spring的默认配置文件位置一般是在/WEB-INF/下找applicationContext.xml文件。而Myeclipse文件自动生成的applic

2017-02-11 15:57:34 33689 1

转载 eclipse启动tomcat无法访问

症状:tomcat在eclipse里面能正常启动,而在浏览器中访问http://localhost:8080/不能访问,且报404错误。同时其他项目页面也不能访问。关闭eclipse里面的tomcat,在tomcat安装目录下双击startup.bat手动启动tomcat服务器。访问htt://localhost:8080/能正常访问tomcat管理页面。症状原因:

2017-02-09 22:08:09 325 1

原创 Spring Tool Suite首次使用pom.xml出现依赖异常解决办法

Ecplise 安装 spring-tool-suit首次使用pom.xml出现依赖错误解决方法  来自fair-j 转截请注明出处  首先这个问题会在第一次使用STS的时候发生  大体是新建一个带有maven支持的工程 或者直接从DashBorad中导入guide的时候  都会出现pom.xml的异常 导致项目不能被编译  会出现很多的依赖错误 我这边

2017-02-08 22:43:40 3047

转载 Linux命令大合集!

http://www.cnblogs.com/peida/tag/每日一linux命令/default.html?page=1坚持每天学习一个!

2017-02-05 21:35:28 276

转载 欢迎使用CSDN-markdown编辑器

用git提交的时候有很多不必要的文件也被提交了,现在就想,有没有一中办法吧不必要的文件进行忽略掉,百度了一下,找到了,就是新建.gitignore然后再里面声明要忽略的文件夹或者文件就可以了,不过麻烦又来了,因为是点开头,没有文件名,没办法直接在windows目录下直接创建,必须通过右键Git Bash,按照linux的方式来新建.gitignore文件。具体步骤如下: 1. 在需要创建 .gi

2017-01-24 21:44:17 306

转载 GitHub进一步了解

GitHub进一步了解为什么要引入Git:1)用简单一点的例子来讲:一个公司有几个甚至十几个人共同合作开发一款项目的时候,公司对项目代码有明确规范,不可能再像学校做的小项目一样,你觉得哪个同学的代码写的不好,或者和你的代码有冲突,’Duang’直接给别人改掉或删掉,也就是想怎么改就怎么改。这种情况对于十几个人合作的项目来说肯定是不行的。这个时候就需要版本的控制 2)版本

2017-01-24 21:34:30 476

转载 Spring注入中byType和byName的总结

Spring注入中byType和byName的总结1.首先,区分清楚什么是byType,什么是byName。"userServiceImpl" class="cn.com.bochy.service.impl.UserServiceImpl" autowire="byName"> "userDao"

2017-01-22 00:00:56 1390

原创 总结 mysql error 1130 hy000:Host'localhost'解决方案

那天刚刚安装好Mysql, 发现出了问题!思考了一下,1)应该是本机或远程机器的本地补丁不允许连接。2)出现原因: mysql只有一个root用户,修改root密码后选了MD5,提交后,重新 登陆出现“Host 'localhost' is not allowed to connect to this MySQL server..." 尝试另一个mysql库中的user表,

2017-01-18 01:11:27 750

空空如也

空空如也

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

TA关注的人

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