自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 EasyExcel的使用(包含动态表头)

动态表头

2022-11-14 22:42:14 7234 1

原创 RabbitMQ订阅发布模式

RabbitMQ订阅发布模式

2021-11-29 17:53:49 1380

原创 上传下载文件到服务器

上传下载文件到服务器将本地文件上传到云服务器将本地目录上传到云服务器从服务器下载文件到本地从服务器下载目录到本地将本地文件上传到云服务器在本地终端输入:scp 需要上传文件的绝对地址 用户名@服务器ip:文件上传到服务器的位置(如果加上文件的名字的话,可以自定义文件的名称)例如:scp /User/test.txt root@121.5.64.52:/mydata/yyp.txt上面就将test.txt文件改为了yyp.txt文件将本地目录上传到云服务器在本地终端输入:scp -r 需要

2021-11-29 14:53:37 580

原创 Docker安装RabbitMQ

Docker安装RabbitMQ使用Docker安装还需要这么麻烦吗?第一步:拉镜像这里我选择和尚硅谷安装的一样版本。docker pull rabbitmq:3-management第二步:安装docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3-management...

2021-11-25 10:49:15 1103

原创 Mac连接腾讯云服务器

Mac连接腾讯云服务器这下载什么XShell,多此一举。第一步:打开你的终端第二步:输入ssh -p 22 你的服务器角色一般是root@你的服务器公网第三步:输入密码第四步:点赞点赞点赞

2021-11-25 10:24:35 2037 1

原创 Mac安装Java开发环境

Mac安装Java开发环境建议使用sdk进行安装,一步到位不留失误sdk的安装步骤建议使用sdk进行安装,一步到位不留失误sdk的安装也是非常的简单这是sdk的官方网站:https://sdkman.io/installsdk的安装步骤...

2021-11-20 10:00:39 878

原创 Docker部署Mysqls,Redis等

Docker安装Mysqls,Redis等有了服务器不能闲着对不对,赶紧起床学习部署Mysql部署Redis有了服务器不能闲着对不对,赶紧起床学习部署Mysql首先我们要想部署Mysql就要先下载Mysql镜像。docker pull mysql:8.0.15我当时就傻了:这么简单?,其实就是这么简单可以用docker images查询已经拉取的镜像。下载镜像之后我们就要去启动我们的mysql了docker run -d -p 3306:3306 --name mymysql -e MYS

2021-11-12 11:22:03 1397

原创 ContOS 7安装docker

ContOS 7安装docker先知条件话不多说直接开整安装Docker安装工具包设置远程仓库安装盘Dcoker启动docker重启docker关闭docker先知条件本人是购买的腾讯云服务器,使用的XShell进行的一个连接。如果是虚拟机的话尽量保证可以通网络。话不多说直接开整安装Docker安装工具包yum install -y yum-utils 执行结果:Loaded plugins: fastestmirror, langpacksbase

2021-11-11 10:05:08 468 1

原创 2021-11-10

腾讯云服务器今后可以给大家更新关于服务器的一些东西(目前本人小白)

2021-11-10 14:43:50 500 1

原创 AQS的源码理解

AQS源码理解AQS的成员变量尝试获取锁(修改标志位),立即返回——tryAcquire获取锁(修改标志位),愿意进入队列等待,直到获取——acquire将当前线程封装成一个Node节点——addWaiter判断是否需要挂起当前线程——shouldParkAfterFailedAcquireAQS的成员变量private volatile int state :用于判断共享资源是否被占用的标记位。0表示未被占用Node head 、tail :两个节点,一个头结点,一个尾结点Node的成员变量2

2021-09-23 18:43:30 108

原创 数据结构之循环数组队列

数据结构之循环数组队列队列的特点队列的实现队列的基本信息队列的初始化判断队是否满判断队是否空入队出队总览(包括测试)队列的特点先进先出队列的实现队列的基本信息class ArrayQueue{ private int maxSize; private int front; private int rear; private int[] arr;}队列的初始化public ArrayQueue(int arrMaxSize){ maxSize

2021-08-17 11:17:43 133

原创 数据结构之稀疏数组

数据结构之稀疏数组原理Java实现转化为稀疏数组并存入磁盘从磁盘中读取,并且转化为原数组原理稀疏数组的基本介绍:就是将一个有很多相同值的数组用更少的空间储存起来的一种数据结构。简单的来说:就是用一种消耗更小储存空间的方式来存储有很多相同值的数组。举一个例子:加入有一个数组11行11列基本上全是0,有两个不一样的,第一个是第二行第二列为1,第二个为第三行第三列为2。我们就可以转化为下列稀疏数组。稀疏数组的行数有效值的位置的行数有效值的位置的列数值第0行11代表原数组一共有

2021-08-16 18:06:45 100

原创 什么是红黑树

什么是红黑树红黑树的特征有什么呢红黑树的特征有什么呢顾名思义红黑树就是有红有黑的树(哇参天大枫树啊),及有红节点和黑节点组成。根节点是黑色的每个叶子结点都是黑色的空节点每个红色节点的两个子节点都是黑色的从任意节点到其每个叶子结点的所有路径都包含相同数目的黑色节点。下图就是一颗典型的红黑树:上面这五条规则也保证了红黑树的自平衡。红黑树从很到叶子的最长路径不会超过最短路径的2倍当然当插入或者删除的时候,就会破坏我们的红黑树的结构,那么怎么办呢?不要慌问题不大,有两种方法:1. 变色。2.

2021-08-12 11:59:19 242

原创 Mysql数据库

Mysql数据库存储引擎的对比索引索引是什么存储引擎的对比对比项MyISAMInnoDB主外键不支持支持事务不支持支持行表锁表锁,即使操作一条记录也会锁住整个表,不适合高并发的操作行锁,操作时,只锁某一行,不对其他行有影响,适合高并发的操作缓存只缓存索引,不缓存真实数据不仅缓存索引还要缓存真实数据,对内存要求较高,而且内存大小对性能有决定性的影响表空间小大关注掉性能事务默认安装yy索引索引是什么索引是帮助My

2021-08-12 10:56:38 121

原创 JVM内存的结构

JVM的结构程序计数器(寄存器) 私有虚拟机栈 私有本地方法栈 私有堆 共有方法区JVM的组成有一下五部分:程序计数器虚拟机栈本地方法栈堆方法区程序计数器(寄存器) 私有作用:记住下一条JVM指令的执行地址特点:是线程私有的不存在内存溢出虚拟机栈 私有定义:每个线程运行时所需要的内存,成为虚拟机栈每个栈由多个栈帧组成,对应着每次方法调用时所占用的内存每个线程只能有一个活动栈帧,对应着当前正在执行的那个方法本地方法栈 私有Nativemethodstack(本地

2021-08-12 10:36:22 87

原创 JVM垃圾回收

JVM垃圾回收如何判断对象可以回收引用计数法可达性分析算法四种引用强引用软引用弱引用虚引用终结器引用垃圾回收算法标记清除标记整理复制分代垃圾回收垃圾回收器串行吞吐量优先响应时间优先如何判断对象可以回收引用计数法当对象被使用1次,计数器就加1,计数器为0的时候会触发垃圾回收机制。可达性分析算法从根对象开始,可以到达的对象,不是垃圾回收的对象,不可到达的对象就是垃圾回收的对象。四种引用强引用平常最常见也是我们用的最多的一种引用方式:强引用,作为生命力最强的引用,只要引用还存在着,垃圾收集器(GC

2021-08-04 16:42:14 129

原创 java高并发线程池

java高并发线程池线城池使用方式一池N线程一池一线程可扩容池线城池的底层原理线程池的七个参数的含义线城池底层工作流程拒绝策略AbortPolicy(默认)DiscardPolicyDiscardOldestPolicyCallerRunsPolicy线城池使用方式一池N线程package com.yyp.Executors;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;p

2021-07-29 18:09:28 91

原创 读写锁的案例

读写锁的案例package com.yyp.readwrite;import java.util.HashMap;import java.util.Map;import java.util.concurrent.TimeUnit;import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantReadWriteLock;//资源类class Mymap{ //创建

2021-07-29 12:24:13 131

原创 JUC的三大辅助类

JUC的三大辅助类减少计数CountDownLatch循环栅栏 CyclicBarrier计数信号量减少计数CountDownLatchCountDownLatch类可以设置一个计数器,然后通过countDown方法来进行减1的操作,使用await方法等待计数器不大于0,然后继续执行await方法之后的语句。”CountDownLatch主要有两个方法,当一个或多个线程调用await方法时,这些线程会阻塞其它线程调用countDown方法会将计数器减1(调用countDown方法的线程不会阻塞

2021-07-28 15:07:01 140

原创 Callable接口

Callable接口package com.yyp.callable;import java.util.concurrent.FutureTask;public class demo1 { public static void main(String[] args) { new Thread(new FutureTask<Integer>(()->{ System.out.println(Thread.currentThread(

2021-07-28 13:37:15 70

原创 多线程锁理解

多线程锁公平锁和非公平锁可重入锁死锁公平锁和非公平锁非公平锁:线程非常容易饿死、效率高公平锁:线程都会执行、效率相对低可重入锁当我们进入锁的内部之后,可以继续进入此锁,简单的来说,就是我们进入一个上锁的方法,我们在方法中可以继续调用此方法(此方法是加锁的,锁是相同的)。死锁两个或者两个以上进程在争夺资源过程中,因为争夺资源造成的一种现象。代码演示:import java.util.concurrent.TimeUnit;public class deadlock { priva

2021-07-28 11:44:40 120

原创 集合的线程安全

集合的线程安全集合线程不安全演示解决方案-Vector解决方案-Collections解决方案-CopyOnWriteArrayList集合线程不安全演示package com.yyp.demo10;import java.util.ArrayList;import java.util.List;import java.util.UUID;public class demo01 { public static void main(String[] args) { List

2021-07-26 21:38:46 65

原创 Lock接口

Lock接口SynchronizedLock接口Synchronized和Lock的区别带通知的实例Synchronized实例:三个售票员销售三十张票package com.yyp.demo02;//创建资源类class Ticket{ private int number = 300; public synchronized void sale(){ if (number>0){ System.out.println(Thread

2021-07-26 20:37:02 91

原创 进程和线程

进程和线程概念状态wait和sleep的区别并发和并行串行模式并行模式并发概念进程: 是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。程序是指令、数据及其组织形式的描述,进程是程序的实体。线程: 是操作系统能够进行运算调度的最小单位。它

2021-07-26 10:00:35 87

原创 Redis事务冲突问题

Redis事务冲突问题乐观锁悲观锁WATCH场景:很多人有你的账户,同时去参加双十一抢购有一个想买8000元商品有一个想买5000元商品有一个想买1000元商品你一共有10000元乐观锁乐观锁:所有人都能操作,但是修改数据库的时候,要检测一下版本号是否一致。悲观锁悲观锁:先上锁,操作,解锁WATCH...

2021-07-23 10:11:15 262 1

原创 Redis事务 锁机制 秒杀

Redis事务 锁机制 秒杀

2021-07-23 09:54:36 100

原创 SpringBoot整合Redis

SpringBoot整合Redis在pom.xml文件中引入依赖application.yaml配置redis配置创建Redis的配置类测试在pom.xml文件中引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactI

2021-07-22 16:33:32 83

原创 Jedis连接Redis

Jedis连接Redisredis.conf的配置文件关闭防火墙查看Linux的本机地址启动Redis后台服务器连接Redisredis.conf的配置文件bind:127.0.0.1前面加#号,表示可以接受任何地址的请求protected-mode yes改为protected-mode no,将本机访问保护模式设置为no关闭防火墙防火墙开的情况下是没办法连接的命令行界面输入命令“systemctl status firewalld.service”并按下回车键。然后在下方可度以查看得

2021-07-22 15:22:18 146 2

原创 Redis新数据类型

Redis新数据类型BitmapsHyperLogLogGeospatialBitmaps存入的都是0和1命令涵义setbit key offset value设置Bitmaps中的某个偏移量的值(简单的可以理解为设置第offset项为value,从0开始的)getbit key offset获取Bitmaps中某个偏移量的值bitcount key统计有多少个1(可以在后面添加开始位置和结束位置,开始位置和结束位置就是字节,也就是8位,且从0开始)bito

2021-07-21 16:39:20 63

原创 Redis的发布和订阅

Redis的发布和订阅首先我们要了解的是这是两个及以上的客户点来进行的,通俗一点来讲就像都已里面的关注一样,当我们的客户端订阅一个人频道之后,其他人在这个频道发布信息,我们就可以接受到信息。如上图,我们客户端1关注了频道channel1。客户端2在频道channel1中发布消息hello。接下来我们的客户端就1就收到了消息来自channel1的hello。...

2021-07-20 14:25:48 57

原创 Redis的五种数据类型和操作命令

Redis一级目录二级目录三级目录一级目录二级目录三级目录

2021-07-20 11:29:03 93

原创 vue脚手架版本切换

vue脚手架版本切换3.0以下的切换3.0以上3.0以下的切换3.0以上npm uninstall -g vue-clinpm install -g @vue/cli

2021-07-12 15:59:29 1420

原创 Java集合详解

Java集合详解集合大纲单列集合双列集合Collection接口方法collection接口实现类的特点集合大纲单列集合双列集合Collection接口方法collection接口实现类的特点collection实现子类可以存放多个元素,每个元素都可以是Object有些Collection的实现类,可以存放重复的元素(List),有些不可以(Set)有些Collection的实现类,有些是有序的(List),有些不是有序(Set)Collection接口没有直接的实现子类,是通过它的

2021-05-15 16:40:39 82

原创 SpringSecurity理解

SpringSecurity理解特点SpringSecurity的Hello项目创建一个项目运行这个项目SpringSecurity的本质SpringSecurity的本质就是过滤器链过滤器是如何加载的?SpringSecurity设置登录的用户名和密码1、用过配置文件2、3、自定义实现类设置SpringSecurity的重要核心功能是:用户授权、用户认证特点和Spring无缝整合全面的权限控制专门为Web开发而设计旧版本不能脱离Web新版本对整个框架进行了分层抽取,分成了核心模块和Web

2021-05-11 15:02:21 160

原创 数字三角形

数字三角形问题描述输入格式:输出格式:思路实现测试问题描述从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右边的那个数。此外,向左下走的次数与向右下走的次数相差不能超过 1。输入格式:输入的第一行包含一个整数 N,表示三角形的行数。下面的 N 行给出数字三角形。数字三角形上的数都是 0 至 100 之间的整数。输出格式:输出一个整数,表示答案。思路首先我们要

2021-04-09 16:20:25 291

原创 分割整数

整数的分割

2021-04-05 15:14:00 375 1

原创 棋盘覆盖问题

棋盘覆盖问题问题描述思路实现打印整个棋盘基本的算法测试全部代码结果问题描述在一个由2^k * 2^k个方格组成的棋盘中,若恰有一个方格与其他方格不同,称该方格为特殊方格,且称该棋盘为特殊棋盘。显然,特殊方格在棋盘中出现的位置有 4^k种不同的棋盘。我们要用3个方格组成的L型的方块将整个棋盘覆盖掉。思路首先,我们先考虑22的棋盘,无论特殊方格在哪,另外三个就是一个L型的方块,刚好将整个格棋盘覆盖掉。接下来我们考虑44的棋盘,我们首先将其分为四个22的棋盘,特殊方格必定在其中一个棋盘中,则这个棋盘

2021-04-05 15:09:15 520 2

原创 SpringBoot自动装配原理

原理初次探索自动配置pom.xml启动器主程序注解自动配置pom.xmlspring-boot-dependencies:核心依赖在父工程中!我们在写或者引入一些SpringBoot依赖的时候,不需要指定版本,就是因为有这些版本的仓库启动器 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot

2021-04-05 14:35:27 73 1

原创 适配器

适配器类适配器Computer类SDCard接口TFCard接口SDCardImpl实现类TFCardImpl实现类SDAdapterTF对象适配器电脑一般只能读取SD卡,而不能读取TF卡,那么我们想要读取TF卡应该怎么办呢?当然是通过一个读卡器(适配器)来完成我们的需求。那么我们的程序也是一样的,我们需要用的接口,和能使用的接口不一样怎么办呢——通过适配器就可以了。类适配器接下来我们就实现一下这个用例。首先我们先看一下我们使用的接口Computer类package com.yyp.Clas

2021-03-30 18:15:12 180

原创 一个干净的SSM框架的搭建

如何搭建一个SSM框架的项目首先要有哪些配置(准备工作1)环境要求数据库要求开始搭建项目(准备工作2)1、新建一maven空项目!添加web的支持2、导入相关的pom依赖3、Maven资源过滤设置(未解决资源大于配置的一些问题,如资源加载不了等问题。)搭建合适的包结构mybatis-config.xml文件编写实体类完成dao层Service层spring-dao.xml数据库配置文件四步曲:spring-service.xml三部曲(主要就是spring5的bean的东西)spring mvc的配置web

2021-03-20 10:06:01 142

空空如也

空空如也

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

TA关注的人

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