自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Curry的博客

JAVA开发

  • 博客(158)
  • 收藏
  • 关注

原创 一次自定义字体文件读取导致硬盘容量暴增的问题解决

【背景】证书生成功能,因为需要调用大量java流处理操作和图片处理,需要占用大量的内存和io消耗,当并发量高时,容易造成容器OOM kill,因此将证书生成抽离成单独的定时任务前置预生成,避免瞬时大量即时生成对服务器造成的压力 【问题】经过一段时间的生成服务后发现 , 服务器硬盘的容量占比不断升高,其中linux 系统下的tmp文件夹不断扩大,一个月达到几十G的容量暴增 linux下tmp文件夹属于系统的临时文件夹,程序或者系统产生的临时文件将...

2020-12-04 10:02:18 505

转载 使用Redis分布式锁处理并发,解决超卖问题

一、使用Apache ab模拟并发压测1、压测工具介绍$ ab -n 100 -c 100 http://www.baidu.com/-n表示发出100个请求,-c模拟100个并发,相当是100个人同时访问。还可以这样写:$ ab -t 60 -c 100 http://www.baidu.com/-t表示60秒,-c是100个并发,会在连续60秒内不停的发出请求。使用...

2019-08-15 11:55:47 887 2

转载 JPA + SpringData 操作数据库原来可以这么简单 ---- 深入了解 JPA - 2

原创播客,如需转载请注明出处。原文地址:http://www.cnblogs.com/crawl/p/7704914.html--------------------------------------------------------------------------------------------------------------------------------------...

2019-03-18 19:51:18 424

转载 Java中Lambda表达式的使用

简介(译者注:虽然看着很先进,其实Lambda表达式的本质只是一个"语法糖",由编译器推断并帮你转换包装为常规的代码,因此你可以使用更少的代码来实现同样的功能。本人建议不要乱用,因为这就和某些很高级的黑客写的代码一样,简洁,难懂,难以调试,维护人员想骂娘.)Lambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表达式来代替功能接口。 lambda表达式就和方法一...

2019-03-08 10:43:34 216

转载 @Controller和@RestController的区别?

知识点:@RestController注解相当于@ResponseBody + @Controller合在一起的作用。 1) 如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。 2...

2019-02-22 09:38:04 178

转载 拦截器和过滤器的区别

过滤器和拦截器的区别:  ①拦截器是基于java的反射机制的,而过滤器是基于函数回调。  ②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。  ③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。  ④拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。  ⑤在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始...

2018-11-10 09:51:10 184

转载 SpringBoot和Mybatis的整合

这里介绍两种整合SpringBoot和Mybatis的模式,分别是“全注解版” 和 “注解xml合并版”。前期准备开发环境开发工具:IDEAJDK:1.8技术:SpringBoot、Maven、Mybatis创建项目    项目结构Maven依赖<?xml version="1.0" encoding="UTF-8"?><project ...

2018-11-08 08:34:00 133

转载 JAVA Future类详解

1. Future的应用场景        在并发编程中,我们经常用到非阻塞的模型,在之前的多线程的三种实现中,不管是继承thread类还是实现runnable接口,都无法保证获取到之前的执行结果。通过实现Callback接口,并用Future可以来接收多线程的执行结果。        Future表示一个可能还没有完成的异步任务的结果,针对这个结果可以添加Callback以便在任务执行成功...

2018-10-30 20:02:52 915

转载 CyclicBarrier用法

字面意思回环栅栏,通过它可以实现让一组线程等待至某个状态之后再全部同时执行。叫做回环是因为当所有等待线程都被释放以后,CyclicBarrier可以被重用。我们暂且把这个状态就叫做barrier,当调用await()方法之后,线程就处于barrier了。CyclicBarrier类位于java.util.concurrent包下,CyclicBarrier提供2个构造器: 1 ...

2018-10-30 19:38:26 1446

原创 CountDownLatch用法

CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。比如有一个任务A,它要等待其他4个任务执行完毕之后才能执行,此时就可以利用CountDownLatch来实现这种功能了。CountDownLatch类只提供了一个构造器: 1 public CountDownLatch(int count) {  };...

2018-10-30 19:19:02 141

转载 Comparable和Comparator的区别

初次碰到这个问题是之前有一次电话面试,问了一个小时的问题,其中有一个问题就问到Comparable和Comparator的区别,当时没答出 来。之后是公司入职时候做的一套Java编程题,里面用JUnit跑用例的时候也用到了Comparator接口,再加上JDK的大量的类包括常见的 String、Byte、Char、Date等都实现了Comparable接口,因此要学习一下这两个类的区别以及用法。...

2018-10-29 21:08:50 97

原创 CompletionService实例

CompletionService将生产新的异步任务与使用已完成任务的结果分离开来的服务。生产者 submit 执行的任务。使用者 take 已完成的任务,并按照完成这些任务的顺序处理它们的结果。例如,CompletionService 可以用来管理异步 IO ,执行读操作的任务作为程序或系统的一部分提交,然后,当完成读操作时,会在程序的不同部分执行其他操作,执行操作的顺序可能与所请求的顺...

2018-10-29 21:07:05 292

原创 BlockingQueue实例

BlockingQueue支持两个附加操作的 Queue,这两个操作是:检索元素时等待队列变为非空,以及存储元素时等待空间变得可用。BlockingQueue 不接受 null 元素。试图 add、put 或 offer 一个 null 元素时,某些实现会抛出 NullPointerException。null 被用作指示 poll 操作失败的警戒值。BlockingQueue 可以是限定...

2018-10-29 21:05:44 487

原创 ReentrantLock实例

ReentrantLock一个可重入的互斥锁定 Lock,它具有与使用 synchronized 方法和语句所访问的隐式监视器锁定相同的一些基本行为和语义,但功能更强大。ReentrantLock 将由最近成功获得锁定,并且还没有释放该锁定的线程所拥有。当锁定没有被另一个线程所拥有时,调用 lock 的线程将成功获取该锁定并返回。如果当前线程已经拥有该锁定,此方法将立即返回。可以使用 isH...

2018-10-29 21:04:23 1713

原创 Semaphore实例

Semaphore一个计数信号量。从概念上讲,信号量维护了一个许可集合。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并采取相应的行动。Semaphore 通常用于限制可以访问某些资源(物理或逻辑的)的线程数目。例如...

2018-10-29 21:03:19 377

转载 Java 四种线程池newCachedThreadPool newFixedThreadPool newScheduledThreadPool newSingleThreadExecutor

介绍new Thread的弊端及Java四种线程池的使用,对Android同样适用。本文是基础篇,后面会分享下线程池一些高级功能。1、new Thread的弊端执行一个异步任务你还只是如下new Thread吗?new Thread(new Runnable() { @Overridepublic void run() {// TODO Auto-generated met...

2018-10-29 21:00:08 372

原创 newFixedThreadPool实例

newFixedThreadPool(固定大小线程池)创建一个可重用固定线程集合的线程池,以共享的无界队列方式来运行这些线程(只有要请求的过来,就会在一个队列里等待执行)。如果在关闭前的执行期间由于失败而导致任何线程终止,那么一个新线程将代替它执行后续的任务(如果需要)。import java.util.concurrent.ExecutorService;import java.ut...

2018-10-29 20:27:59 17083

转载 Runnable与Callable区别

Callable接口:public interface Callable<V> { V call() throws Exception;} Runnable接口:public interface Runnable { public abstract void run();} 相同点:两者都是接口;(废话) 两者都可用来编写多...

2018-10-29 20:13:59 206

转载 Java IO流学习总结一:输入输出流

转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/54292148本文出自【赵彦军的博客】Java流类图结构:流的概念和作用流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。IO流的...

2018-10-11 21:04:41 143

转载 Java集合框架实现自定义排序

Java集合框架针对不同的数据结构提供了多种排序的方法,虽然很多时候我们可以自己实现排序,比如数组等,但是灵活的使用JDK提供的排序方法,可以提高开发效率,而且通常JDK的实现要比自己造的轮子性能更优化。一 、使用Arrays对数组进行排序 Java API对Arrays类的说明是:此类包含用来操作数组(比如排序和搜索)的各种方法。 1、使用Arrays排序:Arrays使用非常简单,...

2018-10-10 11:16:29 459

转载 Collection框架的结构

Collection:List列表,Set集Map:Hashtable,HashMap,TreeMap Collection  是单列集合List   元素是有序的、可重复有序的 collection,可以对列表中每个元素的插入位置进行精确地控制。可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。 可存放重复元素,元素存取是有序的。List接口中...

2018-10-10 10:29:34 2004 1

转载 深入理解JVM—JVM内存模型

我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等待成本,但是随着CPU的发展,内存的读写速度也远远跟不上CPU的读写速度,因此,为了解决这一纠纷,CPU厂商在每颗CPU上加入了高速缓存,用来缓解这种症状,因此,现在CPU同内存交互就变成了下面的样子...

2018-09-28 21:10:50 110

转载 Java内部类详解

Java内部类详解Java内部类详解  说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉。原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法。今天我们就来一探究竟。下面是本文的目录大纲:  一.内部类基础  二.深入理解内部类  三.内部类的使用场景和好处  四.常见的与内部类相关的笔试面试题  若有不...

2018-09-26 20:59:50 89

原创 排序算法的优先选择方式

(1)若n较小(如n≤50),可采用直接插入或直接选择排序。     当记录规模较小时,直接插入排序较好;否则因为直接选择移动的记录数少于直接插人,应选直接选择排序为宜。(2)若文件初始状态基本有序(指正序),则应选用直接插人、冒泡或随机的快速排序为宜;(3)若n较大,则应采用时间复杂度为O(nlgn)的排序方法:快速排序、堆排序或归并排序。     快速排序是目前基于比较的内部排序中被认...

2018-09-19 12:03:31 1347

转载 子查询和关联查询 效率

MSDN对子查询的定义是这样的:     可以将一个查询的结果用作另一个查询的输入。可以将子查询的结果用作使用 IN( ) 函数、EXISTS 运算符或 FROM 子句的语句。     一条好的值得称赞的规则是尽量用连接代替所有的子查询。优化器有时可以自动将子查询“扁平化”,并且用常规或外连接代替。但那样也不总是有效。明确的连接对选择表的顺序和找到最可能的计划给出了更多的选项。当你优化一个特...

2018-09-17 19:57:09 18043 1

转载 SQL 子查询 EXISTS 和 NOT EXISTS

MySQL EXISTS 和 NOT EXISTS 子查询语法如下:SELECT … FROM table WHERE EXISTS (subquery)该语法可以理解为:将主查询的数据,放到子查询中做条件验证,根据验证结果(TRUE 或 FALSE)来决定主查询的数据结果是否得以保留。MySQL EXISTS 子查询实例下面以实际的例子来理解 EXISTS 子查询。下面是原始的数据...

2018-09-17 11:04:48 382

转载 MySQL中的索引详讲

序言         之前写到MySQL对表的增删改查(查询最为重要)后,就感觉MySQL就差不多学完了,没有想继续学下去的心态了,原因可能是由于别人的影响,觉得对于MySQL来说,知道了一些复杂的查询,就够了,但是我认为,不管有没有用,现在学着不懂的东西,说明就是自己薄弱的地方,多学才能比别人更强                                        --WH...

2018-09-16 18:34:22 123

转载 btree索引和hash索引的区别

Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。可能很多人又有疑问了,既然 Hash 索引的效率要比 B-Tree 高很多,为什么大家不都用 Hash 索引而还要使用 B-Tree 索引呢?任何事物都是有两面性的,Hash 索引也...

2018-09-16 11:51:43 124

转载 mysql的char,varchar,text,blob的几点个人理解

mysql的char,varchar,text,blob是几个有联系但是有有很大区别的字段类型,这算是mysql的基础吧,可是基础没有学好,恶补一下。先简单的总结一下:char:定长,最大255个字符varchar:变长,最大65535个字符(既是单列的限制,又是整行的限制)text:变长,有字符集的大对象,并根据字符集进行排序和校验,大小写不敏感blob:变长,无字符集的二进...

2018-09-15 10:30:57 4859 2

转载 MySQL常见的数据类型

   不多说,直接上干货!       MySQL常见的数据类型一、数据类型是什么?  数据类型是指列、存储过程参数、表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型。  有一些数据是要存储为数字的,数字当中有些是要存储为整数、小数、日期型等... 二、MYSQL常见数据类型  MySQL支持多种类型,大致可以...

2018-09-15 10:06:51 45215 1

转载 Spring的编程式事务和声明式事务

事务管理对于企业应用来说是至关重要的,当出现异常情况时,它也可以保证数据的一致性。Spring事务管理的两种方式spring支持编程式事务管理和声明式事务管理两种方式。编程式事务使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。 声明式事务是...

2018-09-12 20:53:31 118

转载 Spring集成MyBatis 事务管理

前言        spring事务管理包含两种情况,编程式事务、声明式事务。而声明式事务又包括基于注解@Transactional和tx+aop的方式。那么本文先分析编程式注解事务和基于注解的声明式事务。 编程式事务管理使用TransactionTemplate或者PlatformTransactionManager。对于编程式事务spring推荐使用TransactionTemplate。...

2018-09-12 20:31:08 15759 2

转载 数据库并发事务存在的问题(脏读、不可重复读、幻读等)

一个数据库可能拥有多个访问客户端,这些客户端并发访问数据库时,若没有采取必要的隔离措施,存在以下问题,这些问题分为5类,包括3类数据读问题:脏读、不可重复读和幻读。两类数据更新问题:第一类丢失更新、第二类丢失更新。1.脏读A事务读取B事务尚未提交的更改数据,并在这个数据的基础上进行操作,这时候如果事务B回滚,那么A事务读到的数据是不被承认的。例如常见的取款事务和转账事务: 2.不可重复...

2018-09-12 19:57:34 375

转载 JDBC处理事务

一、什么是事务?  在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务!二、事务是必须满足4个条件(ACID)事务的原子性( Atomicity):一组事务,要么成功;要么撤回。 一致性 (Consistency):事务执行后,数据库状态与其他业务规则保持一致。如转账业务,无论事务执行成功...

2018-09-12 19:39:07 172

转载 CLOB与BLOB的区别及用途

BLOB和CLOB都是大字段类型,BLOB是按二进制来存储的,而CLOB是可以直接存储文字的。其实两个是可以互换的的,或者可以直接用LOB字段代替这两个。但是为了更好的管理ORACLE数据库,通常像图片、文件、音乐等信息就用BLOB字段来存储,先将文件转为二进制再存储进去。而像文章或者是较长的文字,就用CLOB存储,这样对以后的查询更新存储等操作都提供很大的方便。CLOB 定义...

2018-09-12 17:29:46 38413

转载 数据库中char与varchar类型的区别

在建立数据库表结构的时候,为了给一个String类型的数据定义一个数据库的数据库类型,一般参考的都是char或者varchar,这两种选择有时候让人很纠结,今天想总结一下它们两者的区别,明确一下两者的区别。首先明确的是,char的长度是不可变的,而varchar的长度是可变的,也就是说,定义一个char[10]和varchar[10],如果存进去的是‘csdn’,那么char所占的长度依然为1...

2018-09-12 17:03:58 316

转载 七大查找算法

阅读目录1. 顺序查找 2. 二分查找 3. 插值查找 4. 斐波那契查找 5. 树表查找 6. 分块查找 7. 哈希查找  查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找。本文简单概括性的介绍了常见的七种查找算法,说是七种,其实二分查找、插值查找以及斐波那契查找都可以归为一类——插值查找。插值查找和斐波那契查找是在二...

2018-09-10 12:26:43 334 1

转载 十大经典排序算法(动图演示)

0、算法概述0.1 算法分类十种常见排序算法可以分为两大类:非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。 0.2 算法复杂度0.3 相关概念...

2018-09-10 10:43:34 98

转载 Linux系统下FastDFS分布式文件系统的安装与配置

1 分布式文件系统介绍分布式文件系统:Distributed file system, DFS,又叫做网络文件系统:Network File System。一种允许文件通过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间。特点:在一个分享的磁盘文件系统中,所有节点对数据存储区块都有相同的访问权,在这样的系统中,访问权限就必须由客户端程序来控制。分布式文件系统可能包含的...

2018-09-09 17:34:36 930 1

转载 Spring与ActiveMQ整合

在实际的项目中如果使用原生的ActiveMQ API开发会比较麻烦,因为需要创建连接工厂,创建连接等,我们应该使用一个模板来做这些繁琐的事情,Spring帮我们做了!Spring提供了对JMS的支持,需要添加Spring支持jms的包,如下:<dependency> <groupId>org.springframework</groupId&gt...

2018-09-08 09:58:16 259

空空如也

空空如也

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

TA关注的人

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