自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

syh_IT

IT小白

  • 博客(62)
  • 收藏
  • 关注

原创 Linux 常用指令

1、帮助指令在我们刚使用Linux指令时 我们会对这些指令不熟悉。这时Linux就提供了帮助指令来帮助我们了解这些指令(不熟也可百度)man [命令或者配置文件]获得帮助信息 告诉你这些指令的作用help [命令或者配置文件]获得shell内置命令的帮助信息2、文件目录类指令2.1、pwd指令pwd显示当前工作目录的绝对路径2.2、ls指令ls [选项] [目录或者文件]常用选项-a : 显示当前目录所有的文件和目录,包括隐藏的。-l : 以列表的方式显

2020-08-21 17:21:32 4955 11

原创 简单聊聊ThreadLocal吧

ThreadLocal 并不解决线程间共享数据的问题ThreadLocal 适用于变量在线程间隔离且在方法间共享的场景ThreadLocal 通过隐式的在不同线程内创建独立实例副本避免了实例线程安全的问题每个线程持有一个只属于自己的专属Map并维护了ThreadLocal对象与具体实例的映射,该Map由于只被持有它的线程访问,故不存在线程安全以及锁的问题ThreadLocalMap的Entry对ThreadLocal的引用为弱引用,避免了ThreadLocal对象无法被回收的问题。

2022-09-20 11:11:40 346 1

原创 Spring中Bean的生命周期是怎么样的?

Spring Bean 生命周期大致分为4个阶段。实例化该Bean对象。

2022-09-12 10:21:05 330

原创 MyISAM 与 InnoDB 的区别是什么?

InnoDB支持事务,MyISAM不支持

2022-08-28 16:33:53 260

原创 聊一聊阻塞队列

阻塞对列是一个队列

2022-08-27 09:45:57 123

原创 Java当中谈谈你对volatile的理解

什么是内存屏障?如何保证可见性与有序性

2022-08-26 09:41:13 157

原创 聊一聊什么是缓存击穿、雪崩、穿透?如何解决?

什么是缓存击穿、雪崩、穿透?如何解决?

2022-08-24 17:03:30 296

原创 Java当中聊一聊String吧

聊聊String吧

2022-07-20 18:03:07 136

原创 聊一聊队列(Java实现 用数组模拟循环队列)

队列

2022-07-14 15:53:10 135

原创 SpringBoot+Spring Security+Vue实现通用的权限管理系统

Spingboot+vue实现通用的权限管理系统

2022-07-12 17:16:56 4087

原创 使用layuimini模块快速开发java后台系统模板(前后端分离)

含义源码,可自己下载下来进行学习,前后端分离的后台模板

2022-03-22 10:45:21 6804 27

原创 在Linux中安装MySQL8

1、在Linux中安装MySQL81.1、下载指定的版本在MySQL官网上1.2、解压下载的文件,上传到Linux上的opt目录下将刚在官网上下载的文件解压,上传到Linux的**/opt**上(不需要将全部解压的全部上传)1.3、确保环境没问题1.3.1、检查当前环境是否安装过mysqlrpm -qa | grep -i mysql1.3.2、若安装过,将安装过的mysql删除干净关闭 mysql 服务systemctl stop mysqld.service

2022-03-16 13:59:30 3093

原创 稀疏数组(Java代码的实现)

稀疏数组当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组 可以帮助我们节省空间其中稀疏数组的处理方法是:记录数组一共有几行几列,有多少个不同的值把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模稀疏数组的实战(五子棋的编写 并保存到文件当中)package com.song.sparse;import java.io.File;import java.io.FileReader;import java.io.Fil

2022-03-12 17:20:54 567

原创 说说CountDownLatch/CyclicBarrier/Semaphore的使用

1、CountDownLatch让一些线程阻塞直到另外一些完成后才被唤醒CountDownLatch主要有两个方法,当一个或有多个线程调用await方法时,调用的线程会被阻塞.其他线程调用countDown方法计数器减1(调用countDown方法时线程不会阻塞)当计数器的值变为0,因调用await方法而被阻塞的线程会被唤醒,然后继续执行该线程的操作package com.song.CountDownLatchTest;import java.util.concurrent.CountD

2022-01-13 18:53:25 138 1

原创 java锁公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁

1、java锁之公平锁/非公平锁并发包ReentrantLock的创建可以指定构造函数的boolean类型来得到公平锁或者非公平锁 默认是非公平锁公平锁是指多个线程按照申请锁的顺序来获取锁类似排队打饭 先来后到。非公平锁是指在多个线程获取锁的顺序并不是按照申请锁的顺序,有可能后申请的线程比先申请的线程优先获取到锁,在高并发的情况下,有可能造成优先级反转或者饥饿现象1.1、为何要有公平锁与非公平锁? 为何默认为非公平锁恢复挂起的线程到真正锁的获取还是有时间差的,从开发人员来看这

2022-01-13 18:46:32 188

原创 Java当中如何理解CAS?

Java当中如何理解CAS?如果线程的期望值跟物理内存的真实值一样,就更新值到物理内存当中,并返回true如果线程的期望值跟物理内存的真实值不一样,返回是false,那么本次修改失败,那么此时需要重新获得主物理内存的新值比较并交换:现在主内存的值为1 线程A和线程B此时将值拷贝到自己的工作内存当中 ,这时线程A挂起来 ,线程B进行执行相关操作,因期望值与主内存的值一致都为1,这时B可以进行操作就将值改为2,这时主内存的值就变为了2。这时A线程开始执行,发现期望值与内存值不一致。则A线程本次修改失

2022-01-09 17:12:39 505

原创 设计模式7大原则

设计模式7大原则单一职责原则对类来说,一个类应该只负责一项职责。单一职责原则的作用在于降低类的复杂度,一个类只负责一项职责提高类的可读性,课维护性降低变更引起的风险接口隔离原则使用多个隔离的接口,比使用单个接口要好。它还有另外一个意思是:降低类之间的耦合度。既一个类对一个类的依赖应该建立在最小的接口上依赖倒转(倒置)原则高层模块不应该依赖底层模块,二者应该依赖其抽象抽象不应该依赖细节,细节应该依赖抽象核心思想是面向接口编程针对接口编程,依

2022-01-01 23:03:09 296

原创 SpringBoot与FastDFS整合

SpringBoot与FastDFS整合1、前言1.1、fastDFS介绍​ fastDFS是以C语言开发的一项开源轻量级分布式文件系统,他对文件进行管理,主要功能有:文件存储,文件同步,文件访问(文件上传/下载),特别适合以文件为载体的在线服务,如图片网站,视频网站等。1.2、分布式文件系统:​ 对等特性允许一些系统扮演客户端和服务器的双重角色,可供多个用户访问的服务器,比如,用户可以“发表”一个允许其他客户机访问的目录,一旦被访问,这个目录对客户机来说就像使用本地驱动器一样Fa

2021-12-08 10:15:33 902

原创 Docker中安装fastdfs

Docker中安装fastdfs相关安装资料链接:链接:https://pan.baidu.com/s/1mnf4MH49myglW-lvPzm2ew提取码:h97udocker load -i fastdfs.tardocker pull delron/fastdfs(慢)2.启动tracker服务docker run -d --network=host --name tracker -v /home/tracker:/var/fdfs delron/fastdfs tracker

2021-12-01 21:43:48 2165

原创 Docker中elasticsearch的安装

Docker中elasticsearch的安装相关安装资料链接:链接:https://pan.baidu.com/s/1mnf4MH49myglW-lvPzm2ew提取码:h97u安装elasticsearch1.下载镜像docker load -i elasticsearch.tardocker pull docker.elastic.co/elasticsearch/elasticsearch:6.8.1(慢)2.运行docker run -d -p 9200:9200 -

2021-12-01 15:51:17 2180

原创 Linux中RabbitMq的安装

Linux中RabbitMq的安装rabbitmq官网 可在官网上下载 也可找我要1、文件上传上传到自己的linux虚拟机上 /usr/local/software 若没有softwar文件夹 自己建一个2、安装文件rpm -ivh erlang-21.3-1.el7.x86_64.rpmyum install socat -y rpm -ivhrabbitmq-server-3.8.8-1.el7.noarch.rpm3、常用命令3.1、添加开机启动r

2021-07-19 19:08:46 195 1

原创 shiro整合Springboot

shiro整合Springboot1、创建Springboot项目(集成环境的搭建)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G7cNEryd-1625388439618)(/pom.xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <ar

2021-07-04 16:51:36 343 2

原创 Centos7中Docker的安装

Centos7中Docker的安装确定自己的centos7能上网1、yum安装gcc的相关yum -y install gccyum -y install gcc-c++2、安装需要的软件包若之前安装过 删除旧版本 yum -y remove docker docker-common docker-selinux docker-engineyum install -y yum-utils device-mapper-persistent-data lvm23、设置

2021-07-02 19:32:45 70

原创 Mybatis-Plus学习04-条件构造器

Mybatis-Plus学习04-条件构造器在Mybatis-Plus中为我们提供了条件构造器来帮助我们解决一些复杂的查询、删除和修改等操作Wrapper : 条件构造抽象类,最顶端父类AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件QueryWrapper : Entity 对象封装操作类,不是用lambda语法UpdateWrapper : Update 条件封装,用于Entity对象更新操作AbstractLambdaWrapper : Lam

2021-03-25 17:01:32 99

原创 Docker中zookeeper安装和启动

Docker中zookeeper安装和启动第一步先启动先启动网络 保证网络畅通systemctl start network第二步在centos7中启动systemctl start docker第三步查看自己docker中存在的镜像看是否安装过zookeeper docker images如何在docker中安装zookeeper并启动在docker查找zookeeper docker search zookeeper在docker将自己想要的版本拉下来 docker pull

2021-02-01 09:07:31 1071

原创 Mybatis-Plus学习03-代码生成器

MybatisPlus学习03-代码生成器可以快速帮我们生成Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码package com.song;import com.baomidou.mybatisplus.annotation.DbType;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.core.exceptions.My

2021-01-27 11:17:33 120

原创 shiro

1、shiro概述1.1、什么是shiroApache Shiro 是Java 的一个安全框架。Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE 环境,也可以用在JavaEE 环境。Shiro 可以帮助我们完成:认证、授权、加密、会话管理、与Web 集成、缓存等。1.2、shiro基本功能Authentication:身份认证/登录,验证用户是不是拥有相应的身份;Authorization: 授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能

2020-11-18 18:58:32 192

原创 SSM整合实战

SSM整合实战运用到的技术点ssm(Springmvc+Spring+Mybatis)前端框架-bootstrap数据库-mysql项目的依赖管理-Maven运行环境和配置IDEA2019.3.3Mysql5.7Maven3.6.3一、环境的搭建1、maven工程的创建2、maven工程中导入相关的依赖在pom.xml中添加<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://

2020-10-23 10:16:03 226

原创 Mybatis-Plus学习02——主键生成策略

# 日志配置mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl主键生成策略@TableId(type = IdType.AUTO)package com.song.pojo;import com.baomidou.mybatisplus.annotation.*;import lombok.AllArgsConstructor;import lombok.Data;import

2020-10-08 13:11:14 156

原创 Mybatis-Plus学习01-第一个mybatisplus程序

1、什么是MybatisPlusMyBatis-Plus(简称 MP)是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生2、使用MybatisPlus的好处无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使

2020-10-04 15:16:14 190

原创 集合类线程安全问题

ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常并发修改异常1、为何arraylist 线程不安全//ArrayList底层源码 没有synchronized 线程不安全public boolean add(E e) { ensureCapacityInternal(size + 1); // Increments modCount!! elementData[size++] = e;.

2020-09-29 21:52:41 153

原创 ThreadPool线程池

ThreadPool线程池为什么 使用线程池降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的销耗。提高响应速度。当任务到达时,任务可以不需要等待线程创建就能立即执行。提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会销耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控线程池的特点线程复用控制最大并发数管理线程1、线程池如何使用Java中的线程池是通过Executor框架实现的,该框架中用到了Executor,Execut

2020-09-20 22:02:57 300

原创 线程池的拒绝策略

线程池的拒绝策略1、是什么?等待队列已经排满了,再也塞不下新任务了同时,线程池中的max线程也达到了,无法继续为新任务服务。这个是时候我们就需要拒绝策略机制合理的处理这个问题。2、JDK内置的拒绝策略AbortPolicy(默认):直接抛出RejectedExecutionException异常阻止系统正常运行CallerRunsPolicy:“调用者运行”一种调节机制,该策略既不会抛弃任务,也不会抛出异常,而是将某些任务回退到调用者,从而降低新任务的流量。DiscardOldestP

2020-09-20 21:58:42 1116

原创 如何自定义线程池

如何自定义线程池//自定义线程池public class ThreadPoolExecutorDemo { public static void main(String[] args) { //得到自己电脑cpu是几核的 一般maximumPoolSize默认 为自己电脑cpu为几核 +1 或者 +2 System.out.println(Runtime.getRuntime().availableProcessors()); ExecutorSe

2020-09-20 21:51:08 3422

原创 Redis五大数据类型

Redis有五种基础的数据结构string(字符串)list(列表)hash(字典)set(集合)1、string(字符串)string是redis最基本的数据结构,可以理解成与Memcached一模一样的类型,一个key对应一个valueRedis中字符串是一种动态字符串,是可以修改字符串,内部结构的实现类似于java的ArrayList一个redis中字符串value最多可以是512M键值对:类似于hash当中的key 和 value,通过set和get来设置和获取字符串值

2020-09-13 22:26:08 99

原创 Docker中安装redis

Docker中安装redisredis.conf配置 :vim /SongUse/myredis/conf/redis.conf/redis.conf# Redis configuration file example.## Note that in order to read the configuration file, Redis must be# started with the file path as first argument:## ./redis-server /p

2020-09-13 12:39:15 416

原创 DockerFile解析

DockerFile解析1、DockerFile介绍1.1、DockerFile是什么Dockerfile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。类似于linux中的shell脚本。我们可以通过Dockerfile 来编写满足自己需求的镜像。1.2、如何构建编写Dockerfile文件docker build :产生一个镜像docker run:运行镜像1.3、Dockerfile内容基础知识每条保留字指令都必须为大写字母且后面要跟随至少一个参数指令

2020-09-08 16:39:26 106

原创 Docker常用命令

Docker常用命令1、帮助指令1.1、docker version显示docker的版本信息1.2、docker info显示docker系统信息,包括镜像和容器数量1.3、docker [命令] --help相当于docker命令说明文档查看images命令用法2、镜像命令2.1、docker images列出本机上的所有镜像各项说明REPOSITORY:表示镜像的仓库源TAG:镜像的标签IMAGE ID:镜像IDCREATED:镜像创建时间

2020-09-03 15:45:03 167

原创 Linux 组管理和权限管理

1、Linux组管理在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者,所在组,其他组的概率。所有者 :一般为文件的创建者,谁创建了这个文件,就自然的成为这个文件的所有者。所在组 :当某个用户创建了一个文件后,默认这个文件的所在组就是该用户所在的组。其他组 :除文件的所有者和所在组的用户外,系统的其它用户都是文件的其它组.1.1、文件/目录 所有者1.1.1、查看文件的所有者ls -ahl1.1.2、修改文件所有者chown 用户名 文

2020-08-23 21:31:04 258

原创 Linux 用户管理操作

Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。Linux的用户需要至少要属于一个组1、添加一个用户useradd 【选项】用户名当创建用户成功后,会自动的创建和用户同名的家目录也可以通过useradd-d 指定 目录新的用户名,给新创建的用户指定家目录2、给用户指定或者修改密码passwd 用户名删除用户userdel 用户名 : 删除用户 保留其家目录userdel.

2020-08-20 17:07:58 181

空空如也

空空如也

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

TA关注的人

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