
java
余韵啊
hello world
展开
-
Java多线程(五)——线程池任务队列LinkedBlockingQueue
这篇文章继续来介绍线程任务队列——LinkedBlockingQueue,LinkedBlockingQueue是基于链接节点的阻塞队列,它是线程安全的。LinkedBlockQueue是在jdk1.5之后出现的,先看看它的所继承或实现的超类的关系图。再看看LinkedBlockingQueue从超类里面所继承过来的方法,最主要的是看AbstractQueue和BlockingQueue直接看看BlockingQueue接口里面的方法。public interface BlockingQueue原创 2020-08-20 00:49:17 · 1111 阅读 · 0 评论 -
Java多线程(四)———线程池任务队列ArrayBlockingQueue
上面的一篇文章,我们介绍了线程池的拒接策列,这篇文章开始我们介绍线程池任务队列中的等待队列—— ArraBlockingQueue。先看看ArrayBlockingQueue的继承和实现的关系的图。ArrayBlockQueue是一个有界的队列,这个队列排列元素FIFO(先进先出),其中队列元素是用一个数组来保存的,创建时指定队列的大小,创建后,容量无法改变。从上面的图可以看到,ArrayBlockQueue是继承了AbstractQueue类,和实现了BlockingQueue接口。看一下Abs原创 2020-06-24 17:05:08 · 1174 阅读 · 0 评论 -
Java多线程(三)——线程池的拒绝策列
上一篇文章我们说了线程池的创建的五种方式,其实五种方法都是在 ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue workQueue,ThreadFactory threadFactory,RejectedExecutionHandler handler) 方法中填写不同参数而构成的。其中的参数 handler(拒绝策列)都是默认都是defa原创 2020-06-16 01:42:32 · 362 阅读 · 0 评论 -
Java多线程(二)——线程池的使用
上一篇文章我们说了创建线程的几种方式,按照上一篇文章,我们如果要创建多个线程,是不是就要多写几个实现多线程方式的类呢?要知道我们频繁创建和销毁线程是要耗费大量的资源的,为了减少不必要的资源开销,就有了线程池的出现,其实线程池就是想让我们复用里面的线程;减少不必要的开销。要了解线程池,就要先了解创建线程池的七大参数的一种。JUC包下面的 ThreadPoolExecutor类ThreadPoolExecutor(int corePoolSize, in原创 2020-06-15 01:41:34 · 290 阅读 · 0 评论 -
Java多线程(一)——创建线程的方式
在Java中有几种不同的方式创建线程,下面就说说创建线程的几种不同的方式。方式一、继承Thread继承Thread类,重写里面的run()方法public class ThreadDemo02 extends Thread{ @Override public void run() { System.out.println("线程名称:"+Thread.currentThread().getName()); } public static vo原创 2020-06-14 19:43:21 · 173 阅读 · 0 评论 -
Java动态代理——InvocationHandler和Proxy详解
Java 实现动态代理一共有两种方法,一种是JDK Proxy,另外一种是Cglib,下面就看看JDK动态代理的实现过程,和对实现JDK代理的一个接口InvocationHandler和一个类Proxy的详解。首先我们说说静态代理跟动态代理的概念:静态代理:就是由程序员自己创建或由特定工具自动生成源代码,在程序运行之前,代理类已经存在。(可参考设计模式中的代理模式)。动态代理:在程序运行时,利用反射机制动态创建而成的。JDK 代理要代理的目标对象(委托类)必须实现接口,代理类只能对接口进行代理,要原创 2020-06-01 12:46:17 · 1984 阅读 · 0 评论 -
(一)二叉查找树的API实现
最近在看数据结构,看到二叉查找树,为了加深自己对二叉查找树知识的印象,所以自己实现了一些于树相关的api。**二叉查找树的定义:**二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的...原创 2020-04-24 18:00:08 · 306 阅读 · 0 评论 -
Spring-Boot中结合Swagger-UI实现在线接口文档
1.Swagger是什么?Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。Swagger 的目标是对 REST API 定义一个标准且和语言无关的接口,可以让人和计算机拥有无须访问源码、文档或网络流量监测就可以发现和理解服务的能力。当通过 Swagger 进行正确定义,用户可以理解远程服务并使用最少实现逻辑与远程服务进行交互。与为底层...原创 2020-03-07 17:56:26 · 184 阅读 · 0 评论 -
Java中 “==” 与 equals
1. “==”的作用==:作用是判断两个对象的地址值是否相等。1.1 当比较的两个对象是基本数据类型的时候他们比较的是值基本数据类型有:bytecharlongdoublebooleanfloatshortint 可能有些同学回好奇,String 不是基本数据类型 但它们的 “str1 == str2”比较的结果却为 true;这是因为 String str = “...原创 2020-02-21 23:36:14 · 514 阅读 · 0 评论 -
解决web.WebXml.setVersion Unknown version
今天运行一个struts2的项目,发现控制台下面输出变红了,虽然项目能够运行,但是看起来很不爽,就想把它解决掉。查了一下资料,发现Tomcat8不支持web4.0的版本,所以才会出现这一行警告。解决这个问题有两种办法:1、把Tomcat换成9以上换Tomcat的方法就不展示了。2、手动修改web.xml的版本把这个换成4.0一下就好了。...原创 2019-10-20 22:47:05 · 1002 阅读 · 0 评论