Jason@Lai
码龄13年
关注
提问 私信
  • 博客:91,343
    社区:708
    92,051
    总访问量
  • 17
    原创
  • 1,191,299
    排名
  • 10
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
  • 加入CSDN时间: 2012-02-27
博客简介:

Josn_Hao的博客

查看详细资料
个人成就
  • 获得43次点赞
  • 内容获得14次评论
  • 获得43次收藏
创作历程
  • 2篇
    2022年
  • 3篇
    2020年
  • 4篇
    2019年
  • 1篇
    2018年
  • 31篇
    2017年
成就勋章
TA的专栏
  • RabbitMQ
    1篇
  • spring
    13篇
  • mysql
    3篇
  • github
    2篇
  • Linux
    1篇
  • tomcat
    2篇
  • eclipse
    1篇
  • VMware
  • java
    13篇
  • Java并发
    2篇
  • Redis
    2篇
  • 数据库
    2篇
  • 分布式
    1篇
  • 分布式锁
    1篇
  • springboot
    3篇
  • 工作总结
  • Docker
  • 多线程
    2篇
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Java的深度克隆和浅度克隆

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

DelayedWorkQueue优先队列

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

线程池的一说(完成)

Java中创建线程池有2种方式,使用ThreadPoolExecutor类或者使用Executors类,其实这两种方式在本质上是一样的,都是通过ThreadPoolExecutor类的构造函数创建的,我们来分析一个参数最多的构造函数。public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keep
原创
发布博客 2020.11.28 ·
178 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

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

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

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

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

Concurrent下的线程安全集合

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

springCloud 实现原理图

服务注册发现组件Eureka工作原理服务网关组件Zuul工作原理跨域时序图Eureka与Ribbon整合工作原理解决分布式一致性级联故障流程断路器组件Hystrix工作原理分布式追踪Sleuth工作原理SpringBoot自动配置工作原理...
转载
发布博客 2019.04.21 ·
377 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

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

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

Docker常用命令

正文镜像:Docker 镜像是用于创建 Docker 容器的模板容器:容器是独立运行的一个或一组应用仓库:用来保存镜像,可以理解为代码控制中的代码仓库一个仓库中包含多个镜像,以镜像为模板可创建出多个容器,每个容器是独立运行的一个或者一组应用。 容器是镜像的实例,镜像是容器的模板 。简略:容器生命周期:run、start/stop/restart、kill、rm、pause/unpaus...
转载
发布博客 2019.04.09 ·
210 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

笔记

笔记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 ·
266 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SpringBoot 常用注解的通俗解释

@ComponentScan 如果不设置basePackage的话 默认会扫描包的所有类,所以最好还是写上basePackage ,减少加载时间。默认扫描*/.class路径。在不声明任何参数的时候,默认是会扫描其同一个包,和子包下的类;@Configuration 表示这个类中定义了Bean,会把这个类中bean加载到spring容器中;@EnableAutoConfiguration sprin
原创
发布博客 2017.11.28 ·
856 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

@Controller和@RestController的区别?

@Controller和@RestController的区别?官方文档:@RestController is a stereotype annotation that combines @ResponseBody and @Controller.意思是:@RestController注解相当于@ResponseBody + @Controller合在一起的作用。
原创
发布博客 2017.11.26 ·
336 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

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

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

分布式锁的几种实现方式

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

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

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

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 ·
3089 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

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

今天继续实现AOP,到这里我个人认为是最灵活,可扩展的方式了,就拿日志管理来说,用Spring AOP 自定义注解形式实现日志管理。废话不多说,直接开始!!!关于配置我还是的再说一遍。 在applicationContext-mvc.xml中要添加的                                
转载
发布博客 2017.06.06 ·
670 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

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

一、需解决的问题部分API有签名参数(signature),Passport首先对签名进行校验,校验通过才会执行实现方法。    第一种实现方式(Origin):在需要签名校验的接口里写校验的代码,例如:boolean isValid = accountService.validSignature(appid, signature, client_signature);
原创
发布博客 2017.06.06 ·
936 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SpringAOP实例自定义Annotation形式详解

Spring除了支持Schema方式配置AOP,还支持注解方式:使用@AspectJ风格的切面声明。   1  启用对@AspectJ的支持       spring默认不支持@AspectJ风格的切面声明,为了支持需要使用如下配置:  [html] view plain copy  aop:aspectj-a
转载
发布博客 2017.06.04 ·
596 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Redis 五种数据结构

巴拉巴拉啦更新中.....
原创
发布博客 2017.06.01 ·
614 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多