自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 springboot快速搭建redis环境

这两台在学习redis,不得不说redis作为非关系型数据库,其功能非常强大,我打算用redis对课程作业的后台进行升级,在一些经常访问的资源使用redis存储在服务器的内存中,当进行查找的时候,如果能使用redis查找到那么就直接返回,否则再使用mysql到数据库中进行查找。// 默认用的是用JdkSerializationRedisSerializer进行序列化的。// hash数据结构序列化方式,必须这样否则存hash 就是基于jdk序列化的。# Redis服务器连接密码(默认为空)

2023-07-18 14:45:12 83

原创 java多线程执行有返回值的Callable、Future使用方法

Callable的call()方法类似于Runnable接口中run()方法,都定义任务要完成的工作,实现这两个接口时要分别重写这两个方法,主要的不同之处是call()方法是有返回值的(其实还有一些区别,例如call方法可以抛出异常,run方法不可以),运行Callable任务可以拿到一个Future对象,表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并检索计算的结果。通过Future对象可以了解任务执行情况,可取消任务的执行,还可获取执行结果。应用小例子public cl

2021-01-07 02:44:43 362 1

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

函数式接口规范1、@FunctionalInterface标识为一个函数式接口只能用在只有一个抽象方法的接口上。2、接口中的静态方法、默认方法、覆盖了Object类的方法都不算抽象方法。3、@FunctionalInterface注解不是必须的,如果该接口只有一个抽象方法可以不写,它默认就符合函数式接口,但建议都写上该注解,编译器会检查该接口是否符合函数式接口的规范。自定义函数式接口//一个简单的函数式接口定义@FunctionalInterfacepublic interface

2021-01-07 01:51:55 106

原创 优雅的终止线程及interrupt、isInterrupted、interrupted的使用方法

java中终止一个线程大至可以用以下三种方式使用退出标志,使线程正常退出,也就是当 run() 方法完成后线程中止。 使用 interrupt 方法中断线程。 使用 stop() 方法强行终止线程(调用 stop() 方法会立刻停止 run() 方法中剩余的全部工作,不推荐使用这个方法,该方法已被弃用)。使用退出标志方式:public class MyThread extends Thread { public volatile boolean exit = false; .

2020-12-28 00:59:44 365

原创 线程安全三要素

一、原子性原子性指的是一个或多个操作,要么全部执行并且在执行的过程中不被其他操作打断,要么就全部都不执行。二、可见性可见性指多个线程操作一个共享变量时,其中一个线程对变量进行修改后,其它线程可以立即看到修改后的结果。三、有序生有序性指的是程序的执行顺序按照代码的先后顺序来执行。...

2020-12-28 00:23:22 980

转载 究竟什么时候该使用MQ?MQ的应用场景

任何脱离业务的组件引入都是耍流氓。引入一个组件,最先该解答的问题是,此组件解决什么问题。MQ,互联网技术体系中一个常见组件,究竟什么时候不使用MQ,究竟什么时候使用MQ,MQ究竟适合什么场景,是今天要分享的内容。MQ是什么?消息总线(Message Queue),后文称MQ,是一种跨进程的通信机制,用于上下游传递消息。画外音:这两个进程,一般不在同一台服务器上。在互联网架构中,MQ经常用做“上下游解耦”:(1)消息发送方只依赖MQ,不关注消费方是谁;(2)消息消费方也只.

2020-12-28 00:00:07 890

转载 SpringMVC的简介和工作流程

一、简介 Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。SpringMVC是一种web层的mvc框架,用于替代servlet(处理响应请求,获取表单参数,表单验证等)二、工作流程1、用户发送请求至前端控制器DispatcherServlet。2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、处理器映..

2020-12-27 00:23:28 110

转载 Queue操作中 add/offer,element/peek,remove/poll区别

add()和offer()区别add()和offer()都是向队列中添加一个元素。一些队列有大小限制,因此如果想在一个满的队列中加入一个新项,调用 add() 方法就会抛出一个 unchecked 异常,而调用 offer() 方法会返回 false。因此就可以在程序中进行有效的判断!poll()和remove()区别remove() 和 poll() 方法都是从队列中删除第一个元素。如果队列元素为空,调用remove() 的行为与 Collection 接口的版本相似会抛出异常,但是新的 pol.

2020-12-27 00:10:24 170

原创 java集合详解

一、集合与数组数组(可以存储基本数据类型)是用来存现对象的一种容器,但是数组的长度固定,不适合在对象数量未知的情况下使用。集合(只能存储对象,对象类型可以不一样)的长度可变,可在多数情况下使用。二、层次关系如图所示:图中,实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口Collection接口是集合类的根接口,Java中没有提供这个接口的直接的实现类。但是却让其被继承产生了两个接口,就是Set和List。Set中不能包含重复的元素。List是一个有序的集合,可以包含重复的元

2020-12-26 23:58:17 54

转载 实现一个固定长度的集合队列

在开发中,有时候我们会遇到这样的需求:对一个集合操作,提前为集合指定最大大小,在我们不断向集合中添加数据的时候,当数据内容超过最大值的时候,自动将最先入队的元素移除队列。实现方法很简单,代码如下:/** * 实现一个固定长度的集合队列 * * @author SHANHY([email protected]) * @date 2015年11月9日 * @param <E> */public class LimitQueue<E> implements Q.

2020-12-26 23:49:49 276

空空如也

空空如也

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

TA关注的人

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