自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 springcloud Hystrix

Hystrix的内部处理逻辑1构建Hystrix的Command对象, 调用执行方法.2Hystrix检查当前服务的熔断器开关是否开启, 若开启, 则执行降级服务getFallback方法.3若熔断器开关关闭, 则Hystrix检查当前服务的线程池是否能接收新的请求, 若超过线程池已满, 则执行降级服务getFallback方法.4若线程池接受请求, 则Hystrix开始执行服务调用具体逻辑run方法.5若服务执行失败, 则执行降级服务getFallback方法, 并将执行结果上报Metrics

2021-02-26 16:58:37 127

原创 事务 (数据库、Spring)

事务的四大特性(ACID)原子性(Atomicity)原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。一致性(Consistency)一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。拿转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,事务结

2021-02-26 15:03:33 136

原创 SpringBoot 启动类 @SpringBootApplication 注解

@SpringBootApplication : 是Sprnig Boot项目的核心注解,目的是开启自动配置@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan( excludeFilters = {@Filter( type = Filte

2021-02-26 14:45:51 273

原创 springboot+druid

Druid是一个数据库连接池,是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。引入依赖包<dependency> <groupId>com.alibaba</groupId> <artifact...

2020-01-16 14:04:46 245

原创 线程的5种状态

线程的状态图新建(NEW):新创建了一个线程对象1.实现Runnable接口和继承Thread可以得到一个线程类,new一个实例出来,线程就进入了初始状态可运行(RUNNABLE):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权1.可运行状态只是说你资格运行,调度程序没有挑选到你,...

2020-01-14 14:30:25 258

原创 springboot日志配置

引入依赖<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <scope>provided</scope></depend...

2020-01-14 13:33:45 1501

原创 synchronized

使用方法修饰一个方法,被修饰的方法称为同步方法,其作用范围是整个方法修饰一个代码块,被修饰的代码块称为同步代码块,作用范围是大括号{}括起来的代码修改一个静态方法,作用范围是整个静态方法修改一个类,作用范围是synchronized后面括号括起来的部分修饰代码块class SynchronizedTest implements Runnable{ private static ...

2020-01-14 11:10:10 131

原创 java线程基础

进程进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。线程线程与进程相似,但线程是一个比进程更小的执行单位。一个进程在其执行的过程中可以产生多个线程。与进程不同的是同类的多个线程共享同一块内存空间和一组系统资源,所以系统在产生一个线程,或是在各个线程之间作切换工作时,负担要比进程小得多,也正因为如此,线程也被称为轻量级...

2020-01-14 10:14:26 123

原创 ThreadPoolExecutor

ThreadPoolExecutorpackage com.zhw.learning.thread;import java.util.concurrent.*;/** * @author zhw */public class ThreadPoolExecutorTest { public static void main(String[] args) { ...

2020-01-08 15:07:32 124

原创 定时线程池(newScheduledThreadPool)

定时线程池(newScheduledThreadPool)package com.zhw.learning.thread;import java.text.SimpleDateFormat;import java.util.Date;import java.util.concurrent.Executors;import java.util.concurrent.ScheduledEx...

2020-01-08 14:02:24 6983

原创 单例线程池(newSingleThreadExecutor)

单例线程池(newSingleThreadExecutor)package com.zhw.learning.thread;import java.text.SimpleDateFormat;import java.util.Date;import java.util.concurrent.ExecutorService;import java.util.concurrent.Exec...

2020-01-08 13:48:49 2504

原创 固定数量线程池(newFixedThreadPool)

固定数量线程池(newFixedThreadPool)package com.zhw.learning.thread;import java.text.SimpleDateFormat;import java.util.Date;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executo...

2020-01-08 13:41:51 3030

原创 缓存线程池(newCachedThreadPool)

缓存线程池(newCachedThreadPool)package com.zhw.learning.thread;import java.text.SimpleDateFormat;import java.util.Date;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executor...

2020-01-08 13:33:47 1093

原创 线程池

优点:1.创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处理效率例如:记创建线程消耗时间T1,执行任务消耗时间T2,销毁线程消耗时间T3如果T1+T3>T2,那么是不是说开启一个线程来执行这个任务太不划算了!正好,线程池缓存线程,可用已有的闲置线程来执行新任务,避免了T1+T3带来的系统开销2.线程并发数量过多,抢占系统资源从而导致阻塞我们知道线程能共...

2020-01-08 10:37:05 147

原创 常见排序

冒泡排序:/** * @author zhw *比较相邻的元素。如果第一个比第二个大,就交换他们两个。 *对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 *针对所有的元素重复以上的步骤,除了最后一个。 *持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 * */public class BubbleSort...

2019-12-31 11:20:47 119

原创 Rabbitmq

AMQPAMQP,即 Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦和通讯。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。RabbitMQ是一个开源的AMQP实现,服务器端用 Erlang 语言编写,支持多种客户端,如:Python、...

2019-12-10 10:55:57 160

原创 堆、栈和队列

堆:堆是在程序运行时,而不是在程序编译时,申请某个大小的内存空间。即动态分配内存,对其访问和对一般内存的访问没有区别。堆是指程序运行时申请的动态内存,而栈只是指一种使用堆的方法(即先进后出)。**栈(stack):**先进后出,删除与加入均在栈顶操作堆栈的特性: 最先放入堆栈中的内容最后被拿出来,最后放入堆栈中的内容最先被拿出来, 被称为先进后出、后进先出。堆栈中两个最重要的操作是PUSH...

2019-11-18 11:26:34 121

原创 RestTemplate

getForEntity()/** * 参数1: String类型 或 URI类型的请求地址 * 参数2: 指定返回的实体类型,class对象 * 参数3: uri参数,可以是变长数组或map * 返回值:ResponseEntity<T>是Spring对HTTP响应的封装,包括了几个重要的元素,如响应码、contentType、contentLength、response ...

2019-11-14 16:21:33 149

原创 springboot+quartz

pom.xml:<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-quartz --><dependency> <groupId>org.springframework.boot</groupId> <ar...

2019-11-07 09:49:06 147

原创 springboot发送邮件

pom.xml:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>配...

2019-11-06 17:11:54 312

原创 MongoTemplate

配置:<!--mongo--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId></dependency>spr...

2019-10-29 15:17:28 908

原创 RedisTemplate

通用操作工具:分布式锁加强版 /** * 最终加强分布式锁 * @param key key值 * @return 是否获取到 */public boolean lock(String key) { String lock = LOCK_PREFIX + key; // 利用lambda表达式 re...

2019-10-23 15:23:44 385

原创 POI

pom:<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.0</version></depen...

2019-10-23 14:25:30 89

原创 二叉树

二叉树:是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树组成。1)每个结点最多有两颗子树,所以二叉树中不存在度大于2的结点。2)左子树和右子树是有顺序的,次序不能任意颠倒。3)即使树中某结点只有一棵子树,也要区分它是左子树还是右子树。斜树:所有的结点都只有左子树的二叉树叫左斜树。所有结点都是只有右...

2019-10-22 16:59:30 432

原创

树:树(tree)是包含n(n>=0)个结点的有穷集,其中:(1)每个元素称为结点(node);(2)有一个特定的结点被称为根结点或树根(root)。(3)除根结点之外的其余数据元素被分为m(m≥0)个互不相交的集合T1,T2,……Tm-1,其中每一个集合 Ti(1<=i<=m)本身也是一棵树,被称作原树的子树(subtree)。二叉树:每个节...

2019-10-22 16:21:31 85

原创 java递归算法

递归:就是在方法内部调用方法自己本身斐波那契数列:菲波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21,34,55,89,144…分析:这个数列从第三项开始,每一项都等于前两项之和public class FibonacciSequence { public static int fibonacci(int n){ if(n == 1){ ...

2019-10-22 15:09:02 116

原创 代理模式(Proxy pattern)

代理模式:代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。代理模式作用:在某些情况下,一个客户类不想或者不能直接引用一个委托对象,而代理类对象可以在客户类和委托对象之间起到中介的作用,其特征是代理类和委托类实现相同的接口。可以通过给代理类增加额外的功能来扩展委托类的功能,这样做我们只需要修改代理类而不需要再修改委托类,符合代码设计的开闭原则。代理类主要负责为委托类预处...

2019-09-29 15:29:51 110

原创 策略模式(Strategy pagttern)

策略模式:策略模式定义了一组算法,并将每一个算法封装起来,让它们可以相互替换。 策略模式让算法的变化独立于使用算法的客户。策略类超过四个,可以考虑混合模式。组成部分:1.抽象策略角色:策略类,通常由一个接口或者抽象类实现。2.具体策略角色:包装了相关的算法和行为。3.环境角色:持有一个策略类引用,给客户端调用。缺点:1.客户端自行决定用哪个策略类。只适用于客户端知道所有的算法或行为的...

2019-09-29 11:27:54 107

原创 springboot+mybatis plus

pom.xml: <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.1.2</ve...

2019-08-29 18:15:01 114

原创 swagger 注解

@Api:用在类上,说明该类的作用。可以标记一个Controller类做为swagger 文档资源属性名称 备注value url的路径值tags 设置这个值、value的值会被覆盖description 对api资源的描述basePath ...

2019-08-29 17:51:09 190

原创 SpringBoot+Swagger2

pom.xml<!--整合Swagger2--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <v...

2019-08-29 17:42:50 127

转载 SpringBoot @Async实现异步调用

同步方法调用的时候必须是按照顺序执行的,上一行代码执行完,才会执行下一行。而异步方法调用是相当于多个线程执行,不需要等待上一行代码的执行结果。首先要在启动类上面使用@EnableAsync开始异步方法调用,然后在你要调用的每一个方法上面都要添加@Async,表明异步调用该方法。相当于开启了新的线程,在调用该方法的时候不需要等待上一行代码是否执行完成。启动类:import org.spring...

2019-08-29 11:16:01 204

原创 alibaba fastjson

引入依赖包:<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version></dependency>JSON:fastJson的...

2019-08-27 12:50:02 209

原创 git常用命令

git branch -a查看远程分支git branch查看本地分支git checkout 分支名切换本地分支克隆代码 git clone 地址更新代码 git pull代码提交 git status git add . git commit -am"----" git push...

2019-08-22 15:30:10 111

原创 java注解

@Mapper:让DemoMapper能够让别的类进行引用,我们可以在DemMapper类上添加@Mapper注解@Mapper public interface DemoMapper { @Insert("insert into Demo(name) values(#{name})") @Options(keyProperty="id",keyColumn="id",useG...

2019-08-22 13:40:51 148

原创 java 通过发送json,post请求,返回json数据

1.工具类import java.io.*;import java.net.HttpURLConnection;import java.net.URL;public class HttpUtils { public static String sendPost(String param,String urls){ StringBuffer sb=new...

2019-08-22 13:27:29 1160

转载 java常见的几种调用机制(同步调用,异步调用,回调)

1、同步调用同步调用是最基本的调用方式,对象b中的方法直接调用对象a的方法,这个时候程序会等待对象a的方法执行完返回结果之后才会继续往下走。代码如下:public class A {public void methodA(){System.out.println(“this is class A method”);}}public class B {public void me...

2019-08-22 12:46:20 376

空空如也

空空如也

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

TA关注的人

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