自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JAVA8新特性

JAVA8的新特性主要有以下六点(平时用的多的)1、函数式编程的四个基本接口2、Lambda表达式3、optional类的使用4、stream流式编程5、方法引用6、接口默认方法实现1、基本函数式接口使用示例//没有入参,有返回值Supplier<Integer> supplier = () -> { return 10;};System.out.println(supplier.get());//返回异常类的对象Supplier&.

2020-08-07 15:55:50 197

原创 2.x springboot搭建druid客户端(亲身体验,简单快速)

师兄要求在springboot项目上搭建druid客户端,去监控数据流量的变化,本来是一个小小的很简单的任务,但是却花费了我很长的时间,在网上一篇一篇的找博客,最后却发现没有一个能用的,都是坑,最后还是借鉴老大写的配置文件,自己配置了一个druid客户端。说明一下,springboot 2.x以后的项目就只需要在配置文件中去写druid的一些配置就可以了,不需要在@Configuration配置类中给druid相关的bean加上@Bean注解,还有一些乱七八糟的,总而言之就是只需要改配置文件,其余的什么

2020-07-23 10:38:46 364

原创 创建型模式之原型模式

通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的方法创建出更多同类型的对象原型模式是用于创建重复的对象,同时又保证性能,这种设计模式属于创建型模式,它提供了一种创建对象的最佳方式。...

2020-05-27 13:31:12 147

原创 JAVA代码块的执行顺序

父静态块-》子静态块-》main方法-》父普通块-》父构造方法-》子普通块-》子构造方法父类-》子类

2020-05-26 18:53:28 152

原创 单例模式之创建型模式

在前面已经提到过饿汉模式和懒汉模式,这里就不再简述本文章主要讲的是登记式模式登记式模式就是利用一个map(登记簿)封装了一组单例模式的实例,将这些对象存放在登记簿当中对于已经存在的单例类,直接返回对于不存在的单例类,先实例化,然后注册,之后再返回package com.tth.createtype.regsingleton;import java.util.HashMap;/* 登记式单例模式 * 基本思想: * 登记式单例模式维护了一组单例类的实例, * 将这些实例都放

2020-05-21 21:29:58 242

原创 缓存穿透、缓存击穿、缓存雪崩及其解决方案

缓存穿透当用户恶意请求,在短时间内发送大量请求,访问一个一定不存在的key,这个时候请求就会集中跑到数据库中,数据库由于承受不了这么大的压力,就有可能发生系统崩溃。解决方案有很多种方法可以有效的解决缓存穿透问题,最常见的就是利用布隆过滤器,将那些可能存在的key存放在bitmap中,对于那些一定不存在的key就行过滤,被bitmap拦截掉,从而避免了对数据库的查询压力。还有一种办法就是,当查询到一个结果时,即使为空,也放到缓存当中,然后设置一定的过期时间,不要太长,最长不超过五分钟。缓存击穿一个

2020-05-21 19:14:24 83

原创 srping boot jar包启动报错

srping boot jar包启动报错:(IDE运行没有错误)java.lang.IllegalArgumentException用java运行jar文件:java -jar xxx.jar,报错java.lang.IllegalArgumentException: No auto configuration classes found in META-INF/spring.factories. If you are using a custom packaging, make sure that

2020-05-18 13:00:49 190

原创 Redis持久化之RDB和AOF

Redis是什么?Redis 是一个可基于内存亦可持久化的日志型、Key-Value 数据库既然Redis作为一个数据库,当然避免不了持久化和备份处理,接下来我们来讲讲Redis的两种持久化方案,RDB和AOF。这里我们就做一个简单的介绍RDB:RDB 是 Redis 默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作(注意是写操作,读操作并不会影响),则会将内存中的数据写入到磁盘中。即在redis.conf文件下指定目录去生成一个dump.rdb文件。Redis 重启会通过加载d.

2020-05-18 01:07:18 173

原创 设计模式之工厂模式

工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。工厂模式可以分为三类:1)简单工厂模式(Simple Factory)2)工厂方法模式(Factory Method)3)抽象工厂模式(Abstract Factory)这三种模式从上到下逐步抽象,并且更具一般性。 GOF在《设计模式》一书中将工厂模式分为两类:工厂方法模式(Factory Method)与抽象工厂模式(Abstract Factory)。 ...

2020-05-17 23:15:27 70

原创 银行家算法JAVA版本

银行家算法摘要:银行家算法来源于银行的借贷业务,一定数量的本金要应多个客户的借贷周转,为了防止银行家资金无法周转而倒闭,对每一笔贷款,必须考察其是否能限期归还。在操作系统中研究资源分配策略时也有类似问题,系统中有限的资源要供多个进程使用,必须保证得到的资源的进程能在有限的时间内归还资源,以供其他进程使用资源。如果资源分配不得到就会发生进程循环等待资源,则进程都无法继续执行下去的死锁现象。关键词:操作系统 银行家算法 java语言程序设计 进程 死锁Banker Algorithm..

2020-05-15 12:24:43 1254

转载 JAVA锁的详细介绍

Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组归类,再使用对比的方式进行介绍,帮助大家更快捷的理解相关知识。下面给出本文内容的总体分类目录:1. 乐观锁 VS 悲观锁#乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的不同角度。在Java和数据库中都有此.

2020-05-12 11:12:42 335

原创 阿里云Centos服务器配置JAVA环境

1、查看已经安装的jdkrpm -qa|grep jdk显示结果如下java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64java-1.8.0-openjdk-headless-1.8.0.161-0.b14.el7_4.x86_64copy-jdk-configs-2.2-5.el7_4.noarch2.用yum卸载openJDKyum -y remove java-1.8.0-openjdk-headless-1.8.0.161-0.b17.el7.

2020-05-09 23:09:53 180

原创 DCL(双检查锁)实现单例模式--饿汉模式和懒汉模式

单例模式是设计模式中比较简单的一种。在编程开发中主要解决的问题就是在一个系统中,需要一个单例对象被一个系统的不同模块的不同对象所访问,且保证访问的都是同一个对象,因此便需要一个全局的访问指针,这便是众所周知的单例模式的应用。但是如果编写出一个线程安全且高效的单例模式,却需要考虑很多很多问题,接下来我们就一步一步的分析。1、立即加载/“饿汉模式” 什么是立即加载?立即加载就是使用类的时候已经将对象创建完毕,常见的实现方法就是直接new实例化。而立即加载从中文的语境上看,有“着急”、“急迫”的含义...

2020-05-09 18:49:13 321

原创 生产者消费者问题JAVA版

生产者消费者是多线程里一个比较经典且古老的话题,通过生产者消费者问题,我们可以进行模拟现实生活中的生产消费问题,可以锻炼我们的代码动手能力,今天,就让我们去看一看生产者消费者问题优雅的解决方案。

2020-05-06 23:58:35 137

原创 LRU-最近最少使用算法

算法思想,当我们对查找、修改数据和添加数据的时候,就说有这种可能性,什么可能性呢?就是我们马上会用到这个数据,所以我们提前把这个数据放到链表头部,这样,下次再使用的时候,就可以更快的拿到我们所需要的数据。算法基本实现:通过双向链表,将数据连接起来,然后利用map检查链表中是否存在数据,使用map的原因就是效率高,map是键值对结构的,我们通过key去查找我们的LRUNode,时间复杂度O(1)...

2020-05-05 15:54:01 193

原创 JAVA Web如何配置IOC

SpringIOC容器( xml配置文件:applicationContext.xml中配置的bean 注解:@Controller/Service/Respository/Component )SpringIOC容器初始化: 1.将IOC容器中的所有bean实例化为对象 new对象 2.将依赖的属性值注入进去 ...

2020-05-05 15:15:10 331

原创 MYSQL数据库设计规范

数据库设计规范命名规范小写字母开头单词之间使用下划线分割 大小写敏感 禁止使用保留关键字不要超过32个字符临时表以tmp为前缀 时间为后缀备份表 bak为前缀 时间为后缀所有存储相同数据类型的列名和列类型必须一致所有表必须使用Innodb存储引擎原因:默认存储引擎 进行了很多优化 支持事务 支持行级锁 更好的恢复性 高并发下性能更好数据库和表的字符集统一使用U...

2020-05-05 15:13:17 145

原创 Spring简单入门

Spring简单入门IOC 控制反转(DI:依赖注入)控制反转和依赖注入其实就是一回事,这里先讲一下,后面我们会详细解释搭建spring环境 下载jar包 地址:http://maven.springframework.org/release/org/springframework/spring/ Dist存放二进制文件 Docs存放说明文...

2020-05-05 15:06:06 152

原创 Spring Boot Web开发

四、Web开发使用Spring Boot:1)、创建Spring Boot应用,选中我们需要的模块。2)、SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来3)、自己编写业务代码自动配置原理?这个场景Spring Boot帮我们配置了什么?能不能修改?能修改哪些配置?能不能扩展?XXXXXXXXXAutoCon...

2020-05-05 14:48:40 201

原创 Docker的入门与基本使用

SpringBoot与Docker1、Docker是一个开源的应用容器引擎;不是虚拟机,是一个轻量级容器技术,但却实现了虚拟机的功能。2、相关概念及介绍Docker主机(Host):安装了docker程序的机器(Docker直接安装在操作系统上面的);Docker客户端(Client):连接Docker主机进行操作Docker仓库(Registry):用来保存各种打包好的软件镜像;...

2020-04-28 21:48:04 104

原创 合并区间

public class Merge { //问题:合并区间 //解题思路: //我们首先分析两个区间的情况,然后再分析多个区间的情况,因为其实本质都差不多 //这个题目是合并区间,只有两个区间有交集的时候,这两个区间才能合并 //首先,为了方便后面的合并,我们将所有的区间按照开始的位置进行排序 //然后首先分析前两个区间,因为对初...

2020-04-28 18:15:03 164

原创 用两个队列实现栈

基本思路 队列是只能进行先进先出结构的,而栈是先进后出结构的 队列实现栈:思路是有两个队列,一个用来存放数据,一个用来作为辅助,两个队列循环使用。 当add()时,数据直接压入到数据队列中去就行 当pop()时,需要取出的数据是数据队列的尾部数据,显然直接取出是不可行的 这时,我们借助一个辅助队列,先将数据队列中的所有数据,除了最后一个数据外,都...

2020-04-28 15:42:04 167

原创 将下载后的jar包放入maven仓库

1、首先找到自己下载的jar包位置,我的是C:\Users\Archer\Downloads\bootstrap-4.4.1.jar2、然后解压缩打开jar包,我们进入META-INF文件下,看到如下目录然后,进入maven文件夹然后进入包名这里我们记一下artifactId就是bootstrap,待会会用到的然后我们快捷键打开命令行win+r,然后输入mvn in...

2020-01-15 20:32:02 649

原创 剑指offer 面试题3:数组中重复的数字 java版

面试题3:数组中重复的数字题目一:找出数组中重复的数字 在一个长度为n的数组里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3 public class Solution { ...

2019-10-09 18:43:59 101

原创 172. 阶乘后的零 leetcode java

172. 阶乘后的零给定一个整数 n,返回 n! 结果尾数中零的数量。示例 1:输入: 3输出: 0解释:3! = 6, 尾数中没有零。示例2:输入: 5输出: 1解释:5! = 120, 尾数中有 1 个零.说明: 你算法的时间复杂度应为O(logn)。来源:力扣(LeetCode)链接:https://leetcode-cn.com/prob...

2019-09-13 17:03:41 169

原创 462. 最少移动次数使数组元素相等 II

462. 最少移动次数使数组元素相等 II给定一个非空整数数组,找到使所有数组元素相等所需的最小移动数,其中每次移动可将选定的一个元素加1或减1。 您可以假设数组的长度最多为10000。例如:输入:[1,2,3]输出:2说明:只有两个动作是必要的(记得每一步仅可使其中一个元素加1或减1):[1,2,3] => [2,2,3] => [2,2,2]...

2019-09-13 16:25:25 224

原创 杭电ACM-2031-进制转换

进制转换Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 59689Accepted Submission(s): 32511Problem Description 输入一个十进制数N,将它转换成R进制数输出。Input 输入数据包...

2018-05-30 14:52:22 682

原创 杭电2030之汉字统计

汉字统计Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 55377    Accepted Submission(s): 29949Problem Description 统计给定文本文件中汉字的个数。 Input 输入文件首先包含一个整数...

2018-05-30 14:06:54 175

空空如也

空空如也

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

TA关注的人

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