自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java多线程(五)——线程池任务队列LinkedBlockingQueue

这篇文章继续来介绍线程任务队列——LinkedBlockingQueue,LinkedBlockingQueue是基于链接节点的阻塞队列,它是线程安全的。LinkedBlockQueue是在jdk1.5之后出现的,先看看它的所继承或实现的超类的关系图。再看看LinkedBlockingQueue从超类里面所继承过来的方法,最主要的是看AbstractQueue和BlockingQueue直接看看BlockingQueue接口里面的方法。public interface BlockingQueue

2020-08-20 00:49:17 988

原创 Java多线程(四)———线程池任务队列ArrayBlockingQueue

上面的一篇文章,我们介绍了线程池的拒接策列,这篇文章开始我们介绍线程池任务队列中的等待队列—— ArraBlockingQueue。先看看ArrayBlockingQueue的继承和实现的关系的图。ArrayBlockQueue是一个有界的队列,这个队列排列元素FIFO(先进先出),其中队列元素是用一个数组来保存的,创建时指定队列的大小,创建后,容量无法改变。从上面的图可以看到,ArrayBlockQueue是继承了AbstractQueue类,和实现了BlockingQueue接口。看一下Abs

2020-06-24 17:05:08 1031

原创 Java多线程(三)——线程池的拒绝策列

上一篇文章我们说了线程池的创建的五种方式,其实五种方法都是在 ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlockingQueue workQueue,ThreadFactory threadFactory,RejectedExecutionHandler handler) 方法中填写不同参数而构成的。其中的参数 handler(拒绝策列)都是默认都是defa

2020-06-16 01:42:32 308

原创 Java多线程(二)——线程池的使用

上一篇文章我们说了创建线程的几种方式,按照上一篇文章,我们如果要创建多个线程,是不是就要多写几个实现多线程方式的类呢?要知道我们频繁创建和销毁线程是要耗费大量的资源的,为了减少不必要的资源开销,就有了线程池的出现,其实线程池就是想让我们复用里面的线程;减少不必要的开销。要了解线程池,就要先了解创建线程池的七大参数的一种。JUC包下面的 ThreadPoolExecutor类ThreadPoolExecutor(int corePoolSize, in

2020-06-15 01:41:34 214

原创 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 142

原创 Java动态代理——InvocationHandler和Proxy详解

Java 实现动态代理一共有两种方法,一种是JDK Proxy,另外一种是Cglib,下面就看看JDK动态代理的实现过程,和对实现JDK代理的一个接口InvocationHandler和一个类Proxy的详解。首先我们说说静态代理跟动态代理的概念:静态代理:就是由程序员自己创建或由特定工具自动生成源代码,在程序运行之前,代理类已经存在。(可参考设计模式中的代理模式)。动态代理:在程序运行时,利用反射机制动态创建而成的。JDK 代理要代理的目标对象(委托类)必须实现接口,代理类只能对接口进行代理,要

2020-06-01 12:46:17 1606

原创 Spring Bean的生命周期

Spring Bean的生命周期也是高频的面试题目,下面我就写写Spring 中一个Bean从初始化到销毁的生命周期。先上图上面的图可以分成下面的几步:1.实例化Bean2.属性注入3.如果这个 Bean 已经实现了 BeanNameAware 接口,会调用它实现的 setBeanName(String) 方法,此处传递的就是 Spring 配置文件中 Bean 的 id 值4.如果这个 Bean 已经实现了 BeanFactoryAware 接口,会调用它实现的 setBeanFactory

2020-05-30 19:57:17 1085 1

原创 HashMap中的putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict)解读

在面试中我们会经常遇到关于HashMap的问题,这里我写了我对HashMap里面一个挺重要的方法 putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict)的理解,下面就是我对这个方法的理解。其实putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict)方法我们是没有办法直接调用的,其实在我们使用put(K key,V val)时,它里面的内部

2020-05-24 01:40:19 6174 8

原创 (一)二叉查找树的API实现

最近在看数据结构,看到二叉查找树,为了加深自己对二叉查找树知识的印象,所以自己实现了一些于树相关的api。**二叉查找树的定义:**二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的...

2020-04-24 18:00:08 264

原创 数据结构 ——哈希表

此篇文章只是记录一下学习hash表的知识点,并不涉及代码。概念:哈希存储是一种由关键字本身决定其储存位置的存储结构散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。(百度百科)把关键字K代入某个函数H...

2020-03-27 00:21:46 1042

原创 数据结构 ——树

此篇文章只是记录一下自己学习数据结构——树的笔记,不涉及代码;简单介绍一下树的各种概念,加深自己印象。树:概念:是一种数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个结点有零个或多个子结点;没有父结点的结点称为根结点;每一个非根结点有且只有一个父结点;除了根结点外,每...

2020-03-24 16:26:15 262

原创 数据结构 —— 图

图 —— 非线性数据结构概念:图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。无向图: 由没有方向的边构成的图无向图中的边由顶点的无序对组成(用圆括号表示) (v2,v1) (v1,v2)表示同一条边。邻接点: 无向图中,若存在一条边(vi,vj),则称vi和vj互为邻接点。有向图...

2020-03-20 15:59:03 1182

原创 Spring-Boot中结合Swagger-UI实现在线接口文档

1.Swagger是什么?Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。Swagger 的目标是对 REST API 定义一个标准且和语言无关的接口,可以让人和计算机拥有无须访问源码、文档或网络流量监测就可以发现和理解服务的能力。当通过 Swagger 进行正确定义,用户可以理解远程服务并使用最少实现逻辑与远程服务进行交互。与为底层...

2020-03-07 17:56:26 143

原创 Java中 “==” 与 equals

1. “==”的作用==:作用是判断两个对象的地址值是否相等。1.1 当比较的两个对象是基本数据类型的时候他们比较的是值基本数据类型有:bytecharlongdoublebooleanfloatshortint 可能有些同学回好奇,String 不是基本数据类型 但它们的 “str1 == str2”比较的结果却为 true;这是因为 String str = “...

2020-02-21 23:36:14 474

原创 mybatis的逆向工程

1.什么是mybatis中的逆向工程?通俗地来说就是mybatis中通过数据库中的表,生成pojo类、mapper接口、mapper.xml文件。2.怎么实现mybatis中的逆向工程?下面我就说说怎么实现mybatis中的逆向工程,我所用的ide为IDEA,和用了包管理工具maven。2.1 引入所需的依赖。 <dependency> <groupI...

2020-02-15 02:00:18 127

原创 Centos7下安装redis

本篇文章记录一下在centos7下面安装redis的过程,也方便自己而后查看。1.下载redisps:在这个网址下面有很多版本的redis : http://download.redis.io/releases/ 可根据自己需要下载不同版本的redis。wget http://download.redis.io/releases/redis-5.0.7.tar.gz2.解压tar -z...

2019-12-29 15:24:45 94

原创 webpack的使用入门笔记

1.webpack 的使用1.1先创建一个目录,再创建如图一下的文件1.2在项目根目录中运行 npm i webpack --save-dev 安装到依赖项目中1.3使用命令 npm init 初始化项目1.4使用 npm i 库名 --save 安装各依赖库1.5在main.js里面编写我们的函数1.6. 直接在页面上引用main.js会报错,因为浏览器不认识import这种...

2019-11-16 00:03:13 129

原创 解决web.WebXml.setVersion Unknown version

今天运行一个struts2的项目,发现控制台下面输出变红了,虽然项目能够运行,但是看起来很不爽,就想把它解决掉。查了一下资料,发现Tomcat8不支持web4.0的版本,所以才会出现这一行警告。解决这个问题有两种办法:1、把Tomcat换成9以上换Tomcat的方法就不展示了。2、手动修改web.xml的版本把这个换成4.0一下就好了。...

2019-10-20 22:47:05 865

空空如也

空空如也

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

TA关注的人

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