自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

夏客柯

越努力,越幸运

  • 博客(30)
  • 资源 (1)
  • 收藏
  • 关注

原创 Spring boot集成sentinel限流服务

因为官网提供的Sentinel的jar是原始模式的,所以需要改造,所以我们需要拉取源码下来改造一下,然后自己编译jar包。Sentinel本身不支持持久化,项目通过下载源码改造后,将规则配置持久化进nacos中,sentinel重启后,配置不会丢失。Sentinel控制台的项目就改造完成了,用于生产环境就编译成jar包运行,如果是学习可以直接在IDEA运行。最关键的是FlowControllerV1的改造,这是规则配置的增删改查的一些接口。拉取下来之后,导入到IDEA中,然后我们可以看到以下目录结构。

2023-11-06 11:00:38 1562 1

原创 java面试基础知识点

java面试基础知识点

2023-07-10 11:47:43 1292

原创 Java线程队列的使用

Java提供了多种线程队列的实现,根据是否支持阻塞操作,可以分为阻塞队列和非阻塞队列。阻塞队列是指当队列满时,插入操作会被阻塞,直到有空闲的位置;非阻塞队列是指插入和获取操作不会被阻塞,而是返回特殊的值或抛出异常。在Java中,线程队列是一种数据结构,用于在多个线程之间传递数据。线程队列可以实现生产者-消费者模式,即一个或多个生产者线程向队列中放入数据,一个或多个消费者线程从队列中取出数据。线程队列可以保证数据的线程安全性,即在多线程的环境下,不会出现数据的丢失或混乱。

2023-06-28 17:31:41 483

原创 Java线程队列的使用-SynchronousQueue

SynchronousQueue是一种特殊的阻塞队列,它没有容量,也就是说每个插入操作必须等待一个获取操作,反之亦然。它不存储元素,而是直接将元素传递给消费者线程。如果公平参数被设置为true,那么线程将会按照FIFO的顺序访问队列;否则,访问顺序是不确定的。SynchronousQueue可以用于实现线程间的同步交换,例如下面的代码创建了一个SynchronousQueue,并在两个线程之间传递一个字符串。可以看到,生产者线程在插入字符串后被阻塞,直到消费者线程从队列中获取了字符串。

2023-06-28 17:26:16 277

原创 Java线程队列的使用-PriorityBlockingQueue

PriorityBlockingQueue可以用于实现优先级任务调度,例如下面的代码创建了一个PriorityBlockingQueue,并向其中添加了四个任务,每个任务有不同的优先级。PriorityBlockingQueue是一种带优先级的无界阻塞队列,它的元素必须实现Comparable接口,或者在创建时指定一个Comparator对象。它会根据元素的优先级顺序进行排序,优先级高的元素先被获取。可以看到,队列中的任务按照优先级的顺序被获取,即先获取优先级最高的任务,后获取优先级最低的任务。

2023-06-28 17:25:03 418

原创 Java线程队列的使用-LinkedBlockingQueue

LinkedBlockingQueue是一种基于链表的阻塞队列,它的内部维护了一个数据节点链表。它可以选择指定容量,也可以不指定。如果不指定,默认容量是Integer.MAX_VALUE,也就是无界队列。它采用分离锁(ReentrantLock)来维护生产者和消费者的同步。LinkedBlockingQueue可以用于实现无界缓冲区,例如下面的代码创建了一个默认容量的LinkedBlockingQueue,并向其中添加了10个元素。可以看到,插入操作不会被阻塞,因为队列没有容量限制。

2023-06-28 17:23:10 554

原创 Java线程队列的使用-ArrayBlockingQueue

ArrayBlockingQueue可以用于实现固定大小的缓冲区,例如下面的代码创建了一个容量为5的ArrayBlockingQueue,并向其中添加了10个元素。可以看到,当队列满时,插入操作会被阻塞,直到有空闲的位置。ArrayBlockingQueue是一种基于数组的有界阻塞队列,它在创建时需要指定容量大小,并且可以选择是否需要公平性。如果公平参数被设置为true,那么线程将会按照FIFO的顺序访问队列;否则,访问顺序是不确定的。

2023-06-28 17:20:19 291

原创 Java线程队列的使用-ConcurrentLinkedQueue

ConcurrentLinkedQueue可以用于实现高并发的场景,例如多个线程共享一个任务队列。例如,下面的代码创建了一个ConcurrentLinkedQueue,并向其中添加了10个任务。ConcurrentLinkedQueue是一种基于链表的非阻塞队列,它使用CAS算法来保证线程安全,性能比阻塞队列高。它是一个无界队列,可以无限制地向队列中添加元素。它是一个FIFO(先进先出)的队列,即先添加的元素先被获取。可以看到,三个线程并发地从队列中获取任务并执行,没有出现数据的丢失或混乱。

2023-06-28 17:18:37 719

原创 Java线程队列的使用-DelayQueue

DelayQueue是一种延迟队列,它的元素必须实现Delayed接口,该接口定义了一个getDelay方法,用于返回元素的剩余延迟时间。DelayQueue会根据元素的延迟时间排序,只有当元素的延迟时间为0或负数时,才能从队列中获取。例如,下面的代码创建了一个DelayQueue,并向其中添加了四个元素,每个元素有不同的延迟时间。然后从队列中循环获取元素,并打印出来。可以看到,队列中的元素按照延迟时间的顺序被获取,即先获取延迟时间最短的元素,后获取延迟时间最长的元素。

2023-06-28 17:16:09 256

原创 Java 17新特性讲解与代码实例

Java 17是Java SE 17的开源参考实现,于2021年9月14日正式发布,是Java 11以来的又一个长期支持(LTS)版本。Java 17中有一些新的特性和改进,本文将对它们进行简要的介绍和示例。

2023-06-27 13:41:37 5188

原创 Java8 时间处理API(Date Time API)详解

在Java8之前,我们通常使用和DateCalendarDateCalendargetYear()getMonth()DateCalendar为了解决这些问题,Java8引入了一套全新的日期和时间API,在java.time包中。这套API基于规范设计,提供了一系列不可变且线程安全的类来表示日期、时间、时区、时段等概念。

2023-06-27 11:47:25 609

原创 java8函数式接口使用详解

Lambda表达式是一种简洁而紧凑的函数表示方式,它可以将函数作为参数传递给方法,或者将代码本身作为数据处理。可以看到,使用Lambda表达式后,代码变得更加简洁和清晰,不需要写很多冗余的代码。final那么,Lambda表达式和接口之间有什么关系呢?其实,Lambda表达式本质上就是一个匿名函数,它需要一个函数式接口来支持它。是指只有一个抽象方法的接口,它可以隐式地转换为Lambda表达式。例如上面的例子中,Greeting就是一个函数式接口,它只有一个抽象方法。

2023-06-27 11:25:26 1105

原创 java8 stream reduce()方法使用

java8 stream reduce()方法使用

2022-03-17 15:24:37 7241 2

原创 java8 stream List<Map>根据map的key分组,并且结果转换为list

java8 stream List根据map的key分组,并且结果转换为list

2022-03-15 17:06:35 9143

原创 java8 stream根据对象属性去重

java8 stream根据对象属性去重

2022-03-14 17:45:55 2168

原创 大数据学习(一):hadoop3.3.0单机版安装

1、hadoop下载Hadoop下载地址:http://hadoop.apache.org/2、在/home下创建hadoop目录,文件上传到指定目录cd /homemkdir Hadoopcd hadoop##解压tar -zxf hadoop-3.3.0.tar.gz3、在Hadoop下创建tmp、hdfs/name、hdfs/data文件夹mkdir tmpmkdir hdfsmkdir hdfs/datemkdir hdfs/name4、设置环境..

2021-01-06 15:18:30 1336

原创 tomcat X connection to localhost:10.0 host broken (explicit kill or server shutdown)异常处理

本来是愉快开心的写代码的一天,突然接到一个通知,服务器有点问题,需要重启一下。于是打开我的Xshell 6远程工具,连上服务器,一套熟练的命令启动服务器。本以为万事大吉,,突然,打开登录页面,验证码一直加载不出来,然后服务器就挂了,只有一行X connection to localhost:10.0 host broken (explicit kill or server shutdown)异常。...

2019-01-04 10:13:14 3999

原创 jenkins部署spring boot项目

jenkins部署spring boot跟以前部署到tomcat和 weblogic有点不一样,之前是已经有服务器在运行可以利用服务器的远程部署来完成,spring boot是内嵌服务器,所以需要通过jenkins的ssh插件将jar包发送到应用服务器,再通过linux脚本来启动服务器。结构图例:详细步骤:第一步:先配置jenkins的ssh插件Publish Over SSH...

2018-09-27 10:22:47 519

原创 mongoDB aggregate聚合分析

简介聚集操作实际上是对数据进行统计分析时使用的,简单的说,可以理解为SQL中的聚合操作,MongoDB中的聚集操作是为了大数据分析做准备的,这里简单介绍一下聚集框架aggregate的使用。管道模式聚集分析MongoDB的聚合框架是参考UNIX上的管道命令实现的,数据通过一个多步骤的管道,每个步骤都会对数据进行加工处理,最后返回需要的结果集。管道聚集是可以操作一个分片的集合的(The...

2018-07-27 14:35:51 1883

原创 jsp生成pdf(html2canvas.js使用)

前段时间有个电子签章的需求,需要将jsp页面内容生成pdf文件,然后传给电子签章。自己尝试过集中方法,有的集成麻烦,需要引入报表。再就是速度慢,流程很长,不适用于高并发。这里整理了一个了很简单灵活的方法,而且很方便理解。代码思路:jsp页面通过html2canvas.js来截取div转成image图片,然后将图片提交到服务端,服务端创建pdf文件将图片插进去。资源依赖:html2canvas.js...

2018-05-16 11:55:47 2009

原创 配置tomcat启动参数

这个启动参数出了设置jvm的内存大小之外,还有设置tomcat的编码,有些项目要求的的编码不是utf-8编码,这时候则需要修改tomcat的编码。修改文件catalina.sh或者catalina.bat,这个看环境首行加上JAVA_OPTS="-Xms1024m -Xmx1024m -Xss512K -XX:PermSize=256m -XX:MaxPermSize=256m $JAVA_OPT...

2018-05-16 11:24:10 22644

原创 Tomcat javax.naming.NameNotFoundException: Name [jdbc/inscloud] is not bound in this Context

javax.naming.NameNotFoundException: Name [jdbc/inscloud] is not bound in this Context. Unable to find [jdbc].遇到这个问题的时候,是spring的DataSource找不到jndi。解决方法:context.xml配置文件里面知道一下dbcp为:factory="org.apache.tom...

2018-05-16 11:14:46 1544

原创 Ubuntu Tomcat7 java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory

原因是Tomcat7的Ubuntu构建/包过程中的一个问题。如果我正确理解了这个问题,Apache就会构建tomcat-dbcp。jar来自二进制文件,而Ubuntu只从源代码构建包。Ubuntu项目最终需要改变Java包的名称,因为它会出BUG。gory的细节可能会在Ubuntu问题列表中找到。解决方法:context.xml数据源配置文件里面加上:factory="org.apache.com...

2018-05-15 09:22:16 6867

原创 jenkins+svn+ant+weblogic/tomcat持续化集成部署

1工具介绍Jenkins是一个独立的开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。前身是Hudson是一个可扩展的持续集成引擎。可用于自动化各种任务,如构建,测试和部署软件。Jenkins可以通过本机系统包Docker安装,甚至可以通过安装Java Runtime Environment的任何机...

2018-05-14 15:21:08 1142

转载 不安装Oracle使用PL/SQL 远程连接数据库

由于Oracle的庞大,有时候我们需要在只安装Oracle客户端如plsql、toad等的情况下去连接远程数据库,可是没有安装Oracle就没有一切的配置文件去支持。最后终于发现一个很有效的方法,Oracle的Instant client工具包可以很好地解决这个问题,而且小而方便。1、首先到Oracle网站下载Instant Client :http://www.oracle.com/us...

2018-02-28 15:49:27 242

转载 IntelliJ IDEA快速上手与使用技巧

IntelliJ IDEA 使用心得与常用快捷键那种酸爽,根本说不出来—————————————————————————— by: Jimi没有BondJimi是谁? 就是洒家啊!刚开始学习写Java的时候,用的eclipse,正式工作后,主要用的myeclipse,去年初在前辈的推荐下,在2折的时候买了正版的 IntelliJ IDEA 和 Pycharm,12.0版终生使用,一年更新。使用前早...

2018-02-26 11:34:02 1671 1

原创 java常用类——图片转换处理

图片转换处理主要是用在传输过程中需要。http传输图片,表单方式就不介绍了。如果采用的是通过编码的形式来传输图片,那么发送和接受都需要对图片和编码进行转换处理。这里也整理了一下开发中用过的方法。注意:图片转换成编码后,编码占用内存会比原来图片更大,甚至翻数。所以用大图片需要谨慎,不然极容易发生内存溢出。1.将图片转成base64编码字符串/** * @Description: 根据图片地址转换...

2018-02-26 10:48:58 475

原创 java常用类——java常用文件处理方法

开发过程中用到过的一些文件处理方法,整理了一下,方便以后查找参阅。1.获取指定文件夹下面文件名称集合       /** * 获取指定路径下所有文件名称集合 */ public static List<String> getFileList(String strPath) { List<String> filelist=new ArrayList<Str...

2018-02-26 10:32:36 307

原创 java常用类——java web接受文件表单时常用文件解析方法

之前在工作中,用到需要用servlet来接收文件表单,但是这种表单接收到的内容有文本又有文件。于是自己做了一个简单的封装,这个方法返回连个map,一个是文件map,一个是文本map。调用这个方法后,直接可以从map中去获取表单值。上代码。 /** * 上传文件的处理 * @throws Exception */ public static Map<Strin...

2018-02-26 09:46:00 393

翻译 spring boot 配置文件

开发的时候查找方便,不用每次去翻spring boot官网,用起来方便。#================================================= ================== #共同spring boot特性 # #此示例文件作为指导提供。不要在其中复制它 #完整到您自己的应用程序。^^^ #=========================...

2018-02-25 16:22:11 1269

dubbo-monitor-simple-2.5.3

dubbo-monitor-simple-2.5.3用windows做了一下压缩,下载请解压后安装

2018-03-16

空空如也

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

TA关注的人

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