自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (9)
  • 收藏
  • 关注

原创 打开Redis分布式锁的正确方式

使用redis实现分布式锁的目的是防止多台机器共享同一资源,保证该资源只在某一台机器处理,且只处理一次,但是使用redis实现分布式锁时需要保证以下两点,(1)设置key和过期时间需要在同一个事务内完成(2)设置key和删除key的属于同一个客户端根据以上分析,我们使用spring-data-redis实现分布式锁的加锁和删除功能,talk is cheap,show your code.1、引用的包,核心包是: <!-- spring data redis -->

2020-11-30 11:10:17 154

原创 java中的反射与应用

摘要:本文主要讲解了反射的基础语法、反射在动态代理中的应用,动态代理主要讲解了JDK动态代理和Cglib的动态代理。两者的区别是JDK是面向接口的编程,Cglib是面向方法的编程,都有各自的应用场景。1、什么反射?Java程序在运行时,可以获取类的相关信息,可以动态调用对象的方法机制。类比:类是所有对象的抽象,类对象class是对所有类的抽象。(个人观点)2、反射的使用反射应用...

2019-03-17 20:33:40 137

原创 Spring4.0的学习-------源自尚硅谷

1. spring简介Spring是一个分层的JavaSE/EEfull-stack(一站式)轻量级开源框架。2.spring的模块3.Spring控制反转(IOC)需求调用一个类中的方法,比如创建一个Helloworld类,调用Helloworld中的sayHello方法3.1 传统的方式首先创建一个HelloWorld类public class Hel...

2018-06-10 11:56:29 1113

原创 Mybatis学习笔记-源自黑马程序员学习视频

JDBC简介JDBC(Java DataBase Connectivity)是Java和数据库之间的一个桥梁,是一个规范而不是一个实现,能够执行SQL语句。它由一组用Java语言编写的类和接口组成。各种不同类型的数据库都有相应的实现,本文中的代码都是采用MySQL数据库实现的。JDBC操作流程如下JDBC操作流程分析(1)根据AOP的设计思想,将公共的模块剥离出,让程序员更加关...

2018-06-02 09:25:22 1951

原创 Java学习资料库

1、Java基础知识总结 https://github.com/Snailclimb/JavaGuide面向对象:https://blog.csdn.net/qq_35813653/article/details/809790682、Cron表达式 https://www.cnblogs.com/GarfieldTom/p/3746290.html3、S...

2016-10-25 11:18:37 208

原创 基于maven的项目结构搭建

1、项目分层在进行项目开发的时候,需要项目结构搭建,本文主要讲解基本maven管理的项目结构搭建,在阿里规约中规定一般分为:(1)web层:主要是对访问控制进行转发,各类基本参数校验、异常处理等。(2)开放接口层:可直接封装 Service 方法暴露成 RPC 接口;通过 Web封装成 http 接口;进行 网关安全控制、流量控制等。(3)Service层:相对具体的业务逻辑服务层。(4)Manager 层:通用业务处理层,它有如下特征:(4.1)对第三方平台封装的层,预处理返回结果及转化异常信

2020-09-27 17:46:18 244

原创 JSON字符串转泛型类型

1、定义一个泛型对象HttpResult2、将返回的JSON字符串解析成该类型,然后进行后续业务处理/*** 泛型转型* @param json JSON字符串* @param clazz 类型* @param 泛型* @return 转换之后的泛型*/private static HttpResult parseHttpResult(String json, Class clazz) {return JSONObject.parseObject(json, new TypeRef

2020-07-08 19:52:44 1183

原创 骚年,Java值传递你会吗

骚年,Java值传递你会吗值传递和引用传递Java中的值传递总结值传递和引用传递1、值传递是通过方法对传入值操作后,并不会改变传入的值2、引用传递是通过方法对传入的值操作后,会改变传入的引用指向数据Java中的值传递Talk is cheap, show your code。/** * @author : cuantianhou 2020/4/30 */public class...

2020-04-30 17:29:20 168 2

原创 Https的安全通信机制保证

1、加密方式2、Https安全通信机制参考文章:https://blog.csdn.net/guolin_blog/article/details/104546558?depth_1-utm_source=distribute.pc_feed.none-task-blog-alirecmd-12&request_id=&utm_source=distribu...

2020-04-17 16:01:53 121

原创 SimpleDateFormat线程安全测试用例

众所周知 SimpleDateFormat在多线程环境下是不安全的,具体可以参考https://blog.csdn.net/csdn_ds/article/details/72984646,其本质原因是多线程存在共享变量,导致数据处理结果不一致甚至错误,具体的解决方案:(1)将共享变量设置为局部变量,每个线程私有化;(2)在使用共享变量的时候进行加锁处理,虽然可以解决问题,但是效率低下;...

2020-04-08 17:35:11 202

原创 基于SpringBoot的Dubbo泛化调用的实现

Dubbo的泛化调用不需要引入调用方的接口,只需要指定接口的全类名,就可以调用服务,一般用于框架集成。接下来就基于SpringBoot实现了Dubbo的泛化调用。1、服务端定义1.1 服务定义及实现package com.smart.springboot.api;public interface HelloServiceFacade { void ...

2020-04-02 10:48:59 2038

原创 Springboot与dubbo的整合

SpringBoot与Dubbo的整合定义API定义服务提供者API的实现类SpringBoot的启动类配置文件Dubbo相关配置pom文件的配置定义服务消费者服务的引用(便于服务的管理)消费者的定义SpringBoot启动类配置总结定义API/** * @author : cuantianhou 2020/1/14 */public interface HelloServiceFac...

2020-03-27 11:13:06 95

原创 Spring注解开发之HelloWorld

通过文章,读者可以了解到注解的概念,以及Spring中如何使用注解进行开发。

2020-03-21 16:10:56 261

原创 Spring Bean的生命周期

1、spring生命周期的示意图2、实例2.1 创建 Car.class类package spring.annotation.day1.ioc.bean;import org.springframework.beans.BeansException;import org.springframework.beans.factory.DisposableBean;import...

2020-03-02 14:46:38 102

原创 第三方支付

第三方支付第三方支付概览第三方支付收单第三方支付代付第三方支付概览第三方支付为用户提供了快捷的支付能力一种服务。1、统一入口是给用户方便快捷的使用平台2、风控:主要是用于风险控制3、网关层的主要交易:充值、提现、退款4、账务:提供开户,账户余额管理功5、清算:将交易金额明细记录清楚,通知账务加减钱6、清分:提供对账能力服务,分为渠道对账和商户对账7、渠道:收单渠道和代付渠道,和...

2020-01-07 10:20:49 278

原创 你写了个Bug之集合判断包含元素

有时你会发现,Bug测试没测出来,结果生产跑出来了,只能一句mmp,无情啊。通常,我们会使用HashSet作为集合判断是否包含某一元素,show codepublic class Test{public static void main(String []args){ HashSet<String> setString = new ...

2020-01-02 19:37:51 324 1

原创 HashMap的put操作

1、HashMap的put操作(基于JDK1.7)问题1:初始化主要包括哪些操作?问题2:计算key的hash值?问题3:计算桶的位置?问题4:插入当前key和value?扩容?扩容安全吗,原因是什么?问题5:对比JDK1.7和JDK1.8 HashMap?问题6:HashMap 的最佳实践?...

2019-12-31 10:31:13 405

原创 linux常用命令记录

1、本地和linux传输文件(推荐工具winscp)rz:将远程文件传输的linux系统sz:将本地文件传输到远程(比如windows系统)2、查看日志的命令(1)tail -行数f 文件名(2)tail -f -n 行数 文件名(3)grep 关键字 文件名(4)less(7)more3、查看关键关键字的应用(1)查看某一应用进程ps -ef | gre...

2019-12-23 10:37:47 108

原创 二叉搜索树之红黑树

红黑树红黑树红黑树的性质红黑树的插入按照二叉搜索树的插入方法插入当前节点的父节点为空,将颜色置为黑色,结束。当前节点的父节点颜色是黑色,结束当前节点的父节点颜色是红色,看叔叔节点的颜色叔叔节点的颜色是红色叔叔节点的颜色是黑色三角型直线型红黑树的删除搜索删除节点查找替换节点删除节点操作删除节点有两个后代删除节点无后代删除节点有一个后代修改双黑问题红黑树只有红色和黑色节点、弱平衡的二叉查找树红黑...

2019-12-22 16:37:03 169

原创 数据结构之线性表(Java版本)

线性表的存储分为:顺序存储和链式存储顺序存储的一种实现:ArrayList,数据量大的情况下,查找的效率高,删除和新增的效率低链式存储的实现:LinkedList,数据量大的情况下,查找的效率低,删除和新增的效率低下面给出简单的实现:ArrayList:package ds.list;/** * @author : cuantianhou 2019/12/19 */...

2019-12-19 17:18:13 129

原创 Spring-Quartz添加定时任务失败

项目启动添加定时任务失败失败原因:case1:定时任务的cron表达式设置的时间早于当前时间 case2: 设置的定时任务额cron表达式不合法解决方案:solution1:保证任务设置的执行时间晚于当前时间 solution2:保证corn表达式的正确性...

2019-12-19 16:45:04 671

原创 二叉树的代码实现 JAVA 版本

本文主要实现二叉树的简单功能:(1)二叉树的生成(2)二叉树的遍历:前序遍历,中序遍历,后序遍历,层次遍历(3)二叉树的删除(3)判断节点是否存在的功能package ds.tree;import ds.link.Node;import java.util.LinkedList;import java.util.Queue;/** * @author : c...

2019-12-18 17:32:41 115

原创 排序算法之快排与归并排序

1、快速排序适合数据量大,排序时间短,具体代码如下:package ds.sort;/** * @author : cuantianhou 2019/12/16 */public class QuickSort { /** * 主要思路:取基准数据,从数据高位寻找小于基准数据的值,然后用目标值替换低位置的值, * 然后从低位置寻找大于基准数据的...

2019-12-16 15:13:03 119

原创 建索引的几大原则

1、最左前缀匹配原则,非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a=1andb=2andc>3andd=4如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整。2、=和in可以乱序,比如a=1and...

2019-12-15 14:52:27 114

原创 数据结构与算法

数据结构与算法数据结构数据结构的概念数据结构的存储顺序存储连续的存储空间链式存储非连续的存储空间 数据数据的逻辑机构集合结构线性结构 一对一数组 长度固定数组元素的添加step1: 创建一个新的数组step2: 遍历新的数组step3: 遍历到指定位置将元素添加进去数组元素的删除step1:创建一个数组step2:遍历旧的数组step3:遍历到指定位置将元素删...

2019-12-15 14:48:16 105

原创 异常处理

为了对异常统一处理,同时精简代码数量。public void dealException(Exception e){ if(e instance of 自定义异常){ 自定义异常处理代码块; return; } 系统异常处理代码块;}...

2019-12-11 10:27:40 109 1

原创 线程池执行流程图

1、通过ThreadpoolExecutor创建线程,关键的构造函数 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable> workQueu...

2019-12-10 14:29:11 458

原创 基于JDK1.8的HashMap源码分析

基于JDK1.8的HashMap源码分析What is HashMap?Data Structer of HashMapDiagram of HashMapHow to use HashMap?HashMap Source CodeWhat is HashMap?  The ability of appling one object to map another object is a go...

2019-11-26 15:10:28 119

原创 Generic

GenricWhat is Generic?Params are genericed. In order to implment generic, the java developer user type erasure to be compatible with the previous version of jdk. Therefor, the generic is not real ge...

2019-11-20 10:37:35 2790

原创 分布式事务

分布式事务分布式事务概念分布式事务解决方案XA协议分布式事务模型XA协议的两阶段提交XA协议的一阶段XA协议的二阶段TCC解决方案TryConfirmCancle分布式事务中间件阿里云GTS开源应用LCNLCNLCNLockConfirmNotify分布式事务概念  事务的参与者,支持事务的服务器,资源服务器以及事务管理者位于分布式系统不同节点上  举例说明:创建订单服务,创建订单服务包括:...

2019-11-17 18:54:25 124

原创 记一次Gradle编译Spring源码经历

1、教程 教程1:https://blog.csdn.net/u012211419/article/details/80445276 教程2:https://blog.csdn.net/lianjiaokeji/article/details/82177236 教程3:http://www.freesion.com/article/30077536...

2019-09-25 16:28:41 520 1

原创 线程那点事

1、进程与线程概念 进程是资源分配的基本单位,线程是资源调度的基本单位。2、从JVM角度看线程:线程私有的内存空间:程序计数器、本地方法栈、虚拟机栈程序计数器:线程不是总被执行的,与CPU的调度算法相关,当线程被中断后,需要记录执行的位置,当恢复执行时,自动按记录的位置执行。本地方法栈、虚拟机栈:防止其他线程访问自己的数据。3、并发与并行的区别并发:同一时间...

2019-08-29 15:00:16 360

原创 SpringBoot多数据源切换

SpringBoot多数据源切换(1)可以通过建立多个SqlFacotoryBean管理不同的数据源(2)可以建立同一个SqlFactoryBean管理不同的数据源今天主要讲解一下第二种方案。1、导入项目依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.o...

2019-08-21 19:59:13 236

原创 Java面试常问问题锦集

1、5个常用的java-api包主要使用的java-api包在rt.jar文件中,主要使用的api包如下:io:文件操作、流操作lang:java编程基础类math:数学函数net:网络编程工具sql:数据库编程工具util:java编程工具类补充其他:1.1 & 和 && 的区别1.2 == 和 equals的区别1.3 装...

2019-08-12 12:18:21 151

原创 从集合类中获取某一属性值

背景:获取学生记录后,可能要根据记录中的某一属性进行其他操作,这时候有两种方案(1)遍历获取的学生记录,然后查询相关记录,进行后续操作。(2)获取学生记录中的某一属性,放入集合,一次查询所有的记录。1、创建一个Student对象package com.smart.generic;import lombok.Getter;import lombok.Setter;impor...

2019-04-21 19:30:08 1063

原创 redis并发测试

1、使用redis实现简单的计数@Setter@Getterpublic class RedisUtil implements InitializingBean { @Autowired private StringRedisTemplate stringRedisTemplate; @Override public void afterPr...

2019-04-09 10:21:29 729

原创 多线程实现数据汇总

背景:当需要进行大规模数据计算的时候,整体处理的效率较低,因此需要将数据分块计算然后,最终得到结果。1、首先创建一个计算划分类package com.smart.generic;import lombok.Getter;import lombok.Setter;import lombok.ToString;/** * * @author smart 2019/4/6 *...

2019-04-06 11:03:47 1640 1

原创 zookeeper实现分布式锁

一、分布式锁产生的背景 多机抢夺共享资源二、分布式锁实现的三种方式(1)基于数据库锁的是实现(2)基于Redis的分布式锁实现(Reddisson)(3)基于Zookeeper的分布式锁的实现三、分布式锁实现满足的条件(1)互斥性(2)不会死锁(3)具有容错性(4)锁和解锁必须是同一个客户端四、基于Zookeeper的分布式锁实现(1)添...

2019-04-01 20:00:28 112

原创 Java8 新特性之函数式接口

函数式接口,就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口,let's coding。(1)Consumerpackage java.util.function;import java.util.Objects;/** * Represents an operation that accepts a single input argument and return...

2019-03-26 00:02:29 112

原创 Java 8 新特性尝试 系列之一Optional类

Optional类,可以使用该类来判断是否为空package optional;import javax.swing.text.html.Option;import java.util.Optional;/** * * @author smart 2019/3/25 */public class OptionalExercise { public static vo...

2019-03-25 23:24:38 307

project.zip

在进行项目开发的时候,需要项目结构搭建,本文主要讲解基本maven管理的项目结构搭建,项目基于搭建springboot项目的结构,对于使用springboot开发的小伙伴可以下载

2020-09-27

com.smart.spring.zip

本资源是作者根据尚硅谷基于SPRING注解开发系列教程,亲笔写的代码,希望可以帮助其他童鞋。代码主要分为两块:SPRING IOC 和 SPRING AOP 练习。

2020-04-02

spring+dubbo+mybatis+springMVC

代码开发工具:IDEA,操作系统:windows 7 64位,代码功能:对spring+springMVC+dubbo+mybatis的整合实现用户信息的增删查改,修改对于初学者可以有帮助。

2018-06-08

spring+dubbo+mybatis

代码开发工具:IDEA,操作系统:Windows 7 64位, 功能描述:代码实现了dubbo,spring,mybatis的整合,非常适合初学者,如果不懂的地方,下载后可以及时联系我,代码亲自编写,真实可用。

2018-06-08

MarkdownPad

MarkDownPad是一款文本编辑软件,具有强大功能。以下是它的证书网址:http://www.jianshu.com/p/8e6dc36f3a37

2016-07-29

inno_setup

可以将exe和dll以及执行文件所需资源文件打包成一个可执行文件

2016-05-12

ILMerger_1

该软件是一款支持dll和exe合并的工具

2016-05-12

postmark_1.51.orig.tar.gz

postmark是一款小文件压力测试工具,实用。

2016-05-09

ckeditor编辑器

为了减少手工的输入,采用文本编辑器可以大量减少时间提高效率,但是其中上传闻图片还要配合ckfinder可以实现或者单独写一个上传的页面

2014-07-01

空空如也

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

TA关注的人

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